-k 2048
来指定秘钥长度。在浏览网站时,无意见看到有人询问有没有好的SSL免费域名证书推荐,有人推荐HiCA,引起了我极大的兴趣。
说到免费SSL证书,用的最多的应该是Let's Encrypt。HiCA相对于Let's Encrypt来说,优势有两个:一是证书有效期从3个月变成了半年;二是支持多域名跟纯IP申请域名证书。但是HiCA不支持GUI 工具,也禁止开发类似工具。
HiCA官方只支持ACME.sh,不支持其他客户端,这里请大家注意。
首先是先更新,因为我系统中本身已安装了acme.sh,所以无需再安装,只需要进行升级即可。
acme.sh --upgrade 另外还可以开启自动升级,不过境内用户因为经常无法访问GitHub,就不要开启了。
acme.sh --upgrade --auto-upgrade
然后再注册当前使用设备,否则HiCA不予签发证书。注意这里的my@example.com需要换成您可以正常访问的邮箱。
acme.sh --register-account --accountemail \ my@example.com \ --server http://acme.hi.cn/directory
如果提有以下提示,说明注册成功。
? acme.sh --register-account --accountemail \ <change@email.address> \ --server http://acme.hi.cn/directory [2022年 8月 2日 星期二 21时38分53秒 CST] Registering account: http://acme.hi.cn/directory [2022年 8月 2日 星期二 21时38分55秒 CST] Registered [2022年 8月 2日 星期二 21时38分55秒 CST] ACCOUNT_THUMBPRINT='pAQLaWoYYD5PXp1YbrqFtF3BcU_bv3Ns96c51VyT80
接下来就是做DNS验证或是HTTP验证。其中DNS验证主要是针对域名方式来进行验证,HTTP验证方式主要是针对IP地址签发证书。
我这里使用的是DNSPod,所以需要导入DNSPod的 API Key 。
export DP_Id="DNSPOD API TOKEN ID" export DP_Key="DNSPOD API TOKEN KEY"
添加完dns解析以后就可以直接通过以下命令申请证书了。
使用通配符证书请参考以下方式。
为了让?acme.sh
?在到期前30天尝试续期,建议您在申请证书时候,根据我们说明的实际期限,设置?--days
?参数。例如 180 天到证书设置?--days 150
,90 天到证书设置?--days 60
。
若提示 acme.sh 命令不存在,直接 cd 到 /home/.acme.sh目录下相对路径执行命令即可。
acme.sh --issue \ --dns dns_dp \ -d \*.nicky1605.com \ -d nicky1605.com \ --days 150 \ --server https://acme.hi.cn/directory
如果担心证书续费成功后的服务重启异常导致的服务中断,可以使用cron命令
crontab -l 40 * * * * /root/.acme.sh/acme.sh --cron --home /root/.acme.sh > /dev/null
另外如果未到更新日期,需要强制更新证书,可以添加--force参数。
签发完成以后证书就在服务器根目录下的acme.sh目录下对应的域名文件夹内。
如果是使用LNMP的话,位置一般在/usr/local/nginx/conf/ssl中对应的域名文件夹内。
需要手动复制证书(full_chain.pem和key.pem,以纯文本模式打开)粘贴到其他位置。
参考连接:
https://www1.hi.cn/docs/tutorial-expert/certificate-issuance
https://www1.hi.cn/docs/tutorial-expert/challenge/dns-challenge/dns_dp.sh
https://taurusxin.com/hica-ssl/
https://www.zhujizhen.com/2243.html
本文作者为Nicky,转载请注明。
已经开始收费了,垃圾证书!
@明月登楼IP证书收费了,现在acme.sh 新版都默认密钥长度是4096,这家命令行结尾加 -k 2048 来指定秘钥长度还是免费150天的