之前本站一直用的是 AlphaSSL 野卡通配符证书,价格30元一年,免费通配符证书可以选择 Let's Encrypt,不过证书有效期只有90天,过期后就需要重新签发。虽然可以通过 acme.sh 脚本来实现自动续期,但是如果使用了 CDN 的话,CDN 上的证书还是只能通过手动更新。
近期 ACME 支持了有效期半年的免费通配符SSL证书,而且还支持签发免费 IPv4 & IPv6 证书,嗨CA项目官网:https://www1.hi.cn/,注意不支持 .ru
、.by
、.su
俄罗斯域名,话不多说直接看教程。
签发教程
注意免费证书有所限制,当需要以下特性的时候:超过1个通配符、超过3条多域名、IP 证书、通配符追加多域名、RSA 4096 密钥、ECC 密钥,会自动触发收费流程。如果只是签发 RSA 2048 密钥单域名通配符证书,目前为止仍然是免费的。
- 首先 SSH 连接服务器,安装 acme.sh
# 注意修改邮箱地址 curl https://get.acme.sh | sh -s [email protected] # 设置 acme.sh 自动升级 cd ~/.acme.sh/ acme.sh --upgrade --auto-upgrade
- IP 证书
需要确保 80 端口可以正常访问,否则无法签发,由于 acme.sh 默认60天会自动续签证书,而 IPv4 证书的有效期是180天,所以这里还需要使用
--days
参数自定义续签时间。acme.sh --issue -d [你的IP] --webroot [你的网站目录] --server https://acme.hi.cn/directory --days 150 # 例: ## IPv4 acme.sh --issue -d 1.2.3.4 --webroot /home/wwwroot/ --server https://acme.hi.cn/directory --days 150 ## IPv6(CA 限制,有效期90天) acme.sh --issue -d 240e:3a0:20f:2d97:274:79c7:9b53:4789 --webroot /home/wwwroot/ --server https://acme.hi.cn/directory
- 通配符证书
需要先确认你的 DNS 服务商,这里以 DNSPod.cn 为例,首先获取你的 API Key 和 ID,登录 DNSPod 控制台 选择 DNSPod Token 申请即可,然后将你的 DNSPod API Key 和 ID 用下方命令设置成临时变量:
export DP_Id="1234" export DP_Key="sADDsdasdgdsf"
好了现在就可以申请你的证书了,用 acme.sh 的 DNS API 模式申请证书会自动给你的域名添加一条 txt 记录用于认证,申请完后可以自行删除,将下方命令中的
example.com
改成你要申请的域名即可。acme.sh --issue -d \*.example.com -d example.com --dns dns_dp --server https://acme.hi.cn/directory --days 150 -k 2048
稍等片刻你的证书就签发成功了,证书文件保存在
~/.acme.sh/
目录下以你域名或 IP 命名的子目录,如果你是其他的 DNS 服务商,参考:How to use DNS API。 部署
宝塔面板(Nginx)部署只需要复制
[你的IP/域名].key
的内容到面板的密钥(KEY)
文本框中,然后复制[你的IP/域名]/fullchain.cer
到证书(PEM格式)
文本框中,保存即可使用。
补充说明
- 卸载脚本
# 使用下方的命令即可卸载,然后手动删除 ~/.acme.sh/ 目录和 crontab 的定时任务即可 acme.sh --uninstall
- 删除证书
# 查看证书列表 acme.sh list # 吊销证书,删除证书并不会吊销证书 acme.sh revoke <SAN_Domains> # 删除证书,执行完毕后根据提示手动移除证书目录即可 acme.sh remove <SAN_Domains>
- 强制续签
默认自动续签时间是2个月,到期后会自动续签,在命令后加上
--force
参数,可以强制续签acme.sh --issue -d \*.example.com -d example.com --dns dns_dp --server https://acme.hi.cn/directory -k 2048 --force
Comments | 1 条评论
博主 460898687
我好喜欢