HTTPS证书使用由Let’s Encrypt提供的免费证书,有个很方便的小工具可以帮助快速获得证书,参见https://github.com/Neilpang/acme.sh
LNMP在使用acme.sh申请证书之前需要修改站点的nginx配置,否则会因无法验证导致申请失败。
1 | location ~ /\. |
这段配置删掉或注释掉或在这段配置前面加上
1 | location ~ /.well-known |
在使用acme.sh成功申请到证书后有三个文件。我同时申请了顶级域名mydomain.com和二级域名www.mydomain.com的证书,acme会自动将两个域名生成单目录多域名证书,这样也方便配置。(此处域名为示例)
1 | fullchain.cer |
在配置ssl时只需要使用fullchain.cer和www.mydomain.com.key,fullchain.cer包含有完整的证书链。如果使用www.mydomain.cer,则在手机浏览器上浏览网站会出现证书不受信任的提示,因为证书链不完整。站点nginx配置文件server段修改如下
1 | server |
上面的配置server_name只有www.mydomain.com,因为我要将顶级域名重定向到www二级域名。重定向的方法,在nginx配置文件最后面再添加一段server
1 | server |
修改完成后,重新加载nginx配置即可
1 | service nginx reload |