GetSSLforWebsite
宝塔
在宝塔网络管理,选择DNS验证,手动解析阿里云DNS,设置密钥后自动申请即可
阿里云平台
搜索:数字证书管理服务
在SSL证书管理中,可以申请免费的DigiCert证书,时效三个月,好处是对于部署在阿里云的cdn服务,在申请证书后,平台会自动更新cdn相关服务。
certbot自动
安装certbot和阿里云DNS插件
安装步骤在certbot (opens new window)的官网上有,而且很详细。但最大的问题是,官网上的安装方法要求使用snapd,而七牛云服务器(实际上是阿里云服务器)并不支持snapd,所以需要使用yum安装。
安装手动申请证书所需工具
1 | apt install certbot |
安装自动续期证书所需工具
1 | apt install certbot python3-certbot-nginx |
申请证书
手动申请证书
1 | certbot -d *.sunxiaolong.net -d sunxiaolong.net --manual certonly |
这个--manual
参数很重要,如果没有这个参数,就必须得用dns插件了~
随后会有提示,给域名添加一个TXT解析,按照提示去域名解析控制台添加对应记录。这里一定要注意这个解析记录不要区分大陆还是海外线路,否则可能会失败。
解析记录添加完成后,回到命令行按下回车键。
证书和私钥文件会保存到/etc/letsenctypt/live
下,命令行上有回显。
自动申请证书
将阿里云DNS的key写到本地,格式如下:
1 | dns_aliyun_access_key=******* |
随后保存到服务器上,如/opt/cert/aliyun-dns.conf
。access_key和access_key_secret是阿里云的多用户访问控制中相应用户的key和secret。
- 签发证书
1 | certbot certonly --authenticator=dns-aliyun --dns-aliyun-credentials='/opt/cert/aliyun-dns.conf' -d "*.sunxiaolong.net,sunxiaolong.net" |
然后就签发成功了~证书位置可以看回显,确认配置没错之后,reload一下nginx就可以了。
修改nginx配置
将nginx配置中对应域名的证书和私钥文件路径指定到certbot回显的路径上。
reload nginx
重新加载nginx即可生效
1 | NGINX_HOME/sbin/nginx -s reload |
验证是否生效
重新打开对应的HTTPS站点,不再提示证书不安全,且证书过期时间和certbot命令行回显能对应上即为成功。
配置自动续期
手动续期
待证书要过期,执行certbot renew
,再reload nginx即可。
自动续期
编辑crontab
1 | crontab -e |
添加记录,0 0 1 * * /root/renew-cert.sh
,表示每月1日0点执行续期脚本。
编写续期脚本 /root/renew-cert.sh
的内容如下:
1 | !/bin/bash |
重新加载crond服务。
1 | service crond reload |