如何设置SSL/HTTPS?
在设置https访问之前,请开启安全组的443端口,如果不开启,https访问是不可用的。
这里提供两种https的配置方案,请根据实际情况选择:
配置方式一:自己准备好了证书
如果您已经申请了证书(请保证证书可用),请参考如下的配置方式:
将证书上传到服务器证书目录:/data/cert(没有cert目录可以自己新建)
在/etc/nginx/conf.d目录打开需要配置https的网站的所对应的配置文件,例如:default.conf
拷贝下面内容到default.conf文件中(一定要放到最后的}之外),并保存
listen 443 ssl; ssl on; ssl_certificate /data/cert/xxx.crt; ssl_certificate_key /data/cert/xxx.key ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers if ($scheme != "https") { return 301 https://$host$request_uri; }
修改配置文件中相关项,并保存ssl_certificate #证书,务必填写网站实际路径 ssl_certificate_key #证书Key,务必填写网站实际路径
重启服务
~# systemctl restart nginx //重启nginx ~# systemctl restart php-fpm //重启php-fpm
配置方式二:自动生成免费证书
本LNMP环境提供了针对于已经配置好的http网站实现免费的证书自动生成方式,从而实现https访问的解决方案。步骤如下:
- 首先假设通过 http://域名/ 可以正常访问网站(假设域名是test.websoft9.cn,配置文件vhost.conf)
- 运行certbot命令开始为网站配置证书
- 运行成功会有提示
注:当前Cerbot官方提示此插件暂停使用
证书FAQ
证书的申请注意事项:
- 免费证书只能用于明细域名,例如: buy.example.com,或next.buy.example.com,
- example.com是通配符域名方式,不能用于申请免费证书
- 申请证书的时候,请先解析好域名,有些证书会绑定域名对应的IP地址,即一旦申请后,IP地址不能更换,否则证书不可用