博客搭建之后,要申请一个ssl证书,https是标配,这个环节必不可少,免费的SSL证书一般都是通过acme.sh脚本去申请,网上搜索了很多文章,写的都不太清楚,看得让人非常浪费心智, 建议所有程序员都去读一下面这本书,能够稳定高效的输出
踩过的坑
- 不要用主机申请,直接用域名验证申请
- 只用RSA格式证书,不用ECC,ecc浏览器兼容性不好,需要nginx特殊配置
安装
curl https://get.acme.sh | sh
就是一步,很简单
通过域名验证申请
先在阿里云网站上获得你的 Key和Secret,然后注入到环境变量中,执行申请 (同时申请了主域名,和泛域名)
如何获取阿里云云账号AccessKey ID和AccessKey Secret
export Ali_Key="xxxxxx"
export Ali_Secret="xxxxxx"
acme.sh --issue --dns dns_ali -d victorc.top -d *.victorc.top
执行需要5分钟左右,会输出如下结果
[Sat 30 Apr 2022 04:23:57 PM CST] Your cert is in: /home/admin/.acme.sh/victorc.top/victorc.top.cer
[Sat 30 Apr 2022 04:23:57 PM CST] Your cert key is in: /home/admin/.acme.sh/victorc.top/victorc.top.key
[Sat 30 Apr 2022 04:23:57 PM CST] The intermediate CA cert is in: /home/admin/.acme.sh/victorc.top/ca.cer
[Sat 30 Apr 2022 04:23:57 PM CST] And the full chain certs is there: /home/admin/.acme.sh/victorc.top/fullchain.cer
/home/admin是我用户的根目录,acme.sh 会默认把证书下载到根目录的 .acme.sh/ 中
证书申请成功之后,直接用,不需要安装
修改nginx配置并重启
在nginx里面直接加入下面配置
server {
listen 443 ssl;
server_name victorc.top;
ssl_certificate /home/admin/.acme.sh/victorc.top/fullchain.cer;
ssl_certificate_key /home/admin/.acme.sh/victorc.top/victorc.top.key;
index index.html index.htm index.nginx-debian.html;
root /var/www/html/blog;
location / {
try_files $uri $uri/ =404;
}
}
然后重启nginx,用nginx -s reload 可能有问题,最好直接用 systemctl restart nginx
搞定~,到这里查看效果 https://victorc.top
扫描二维码关注公众号,回复:
15899498 查看本文章