免费HTTPS证书生成指南及相关注意事项汇总
前言:此文档旨在记录生成免费https证书(Let's Encrypt
)流程以及在使用过程中需要注意的事项,不定期更新。感谢Rosbit的指导。
适用人群:使用阿里云服务器,登录阿里云控制台账号有管理HTTPDNS权限(AliyunHTTPDNSFullAccess
)、管理云解析(DNS)的权限(AliyunDNSFullAccess
)。
1.生成https证书
- 下载docker镜像
acme.sh
。
docker pull neilpang/acme.sh
- 生成证书
假设需要生成证书的域名为*.abc.com
,编写docker-compose.yml
文件如下所示:
运行命令:docker-compose run --rm acme
正确执行成功,会在acme.sh
文件中生成相关域名证书文件,部署到服务器即可。
如果生成证书失败,大部分原因是因为账号没有权限,请在设置好上述权限后重试。
2.Let's Encrypt证书相关注意事项
- 添加了https证书后,pc/android等设备访问正常,但是在ios系统上首次打开很慢。这是因为首次打开时,浏览器需要校验证书,而Let's Encrypt的域名被墙导致。
解决方案: 在服务器上手动设置域名解析如下:
23.44.51.8 ocsp.int-x3.letsencrypt.org
- 部分网站(如
Vue
)打开后,虽然显示证书详情有效,但是浏览器仍然显示不安全。
解决办法: 在网站index.html
中,添加如下信息:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">