记一次nginx配置https
本文写于2018年03月21日。
最近买了阿里云的ECS实例,想在上面搭建HTTPS服务。
首先上配置环境:
CentOS 7
php7
nginx-1.13
准备工作
搭建HTTPS服务必须要有一个域名。于是在阿里上申请了个免费域名,并且做好备案一系列的手续。域名终于可以正常使用了,高兴得不行。然后去申请SSL证书,阿里上有免费的证书可以申请。
不用多久证书签发下来了,有效期为一年。
然后我们需要把证书下载下来,解压得到两个文件 .pem 和 .key ,把这两个文件上传到服务器上,在nginx目录中建立一个cert文件夹存放。
Nginx设置
首先要确认你的nginx是否已经编译了http_ssl模块
linux-test:~ # /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.6.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.0.1/
修改配置,设置全局https访问,让http访问跳转到https上。
测试配置是否正确:
/usr/local/nginx/sbin/nginx -t
重新加载配置:
/usr/local/nginx/sbin/nginx -s reload
防火墙开放443端口
firewall-cmd --permanent --zone=public --add-port=443/tcp;
原以为这样结束了,结果用浏览器访问还是无法请求到。原来我忘记了在阿里云上的安全组规则中开放443端口。
终于可以访问啦!!!