使用ssl域名证书自动续期工具acme.sh的注意事项
-------------------------
更新:
1.查看已安装证书信息命令
acme.sh --info -d example.com
# 会输出如下内容:
DOMAIN_CONF=/root/.acme.sh/example.com/example.com.conf
Le_Domain=example.com
Le_Alt=no Le_Webroot=dns_ali Le_PreHook= Le_PostHook= Le_RenewHook= Le_API=https://acme-v02.api.letsencrypt.org/directory Le_Keylength= Le_OrderFinalize=https://acme-v02.api.letsencrypt.org/acme/finalize/23xxxx150/781xxxx4310 Le_LinkOrder=https://acme-v02.api.letsencrypt.org/acme/order/233xxx150/781xxxx4310 Le_LinkCert=https://acme-v02.api.letsencrypt.org/acme/cert/04cbd28xxxxxx349ecaea8d07 Le_CertCreateTime=1649358725 Le_CertCreateTimeStr=Thu Apr 7 19:12:05 UTC 2022 Le_NextRenewTimeStr=Mon Jun 6 19:12:05 UTC 2022 Le_NextRenewTime=1654456325 Le_RealCertPath= Le_RealCACertPath= Le_RealKeyPath=/etc/acme/example.com/privkey.pem Le_ReloadCmd=service nginx force-reload Le_RealFullChainPath=/etc/acme/example.com/chain.pem
通过最后三个,可以查看安装命令执行是否成功
2.查看自动更新证书的定时任务
crontab -l
56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
官方中文说明地址:说明 · acmesh-official/acme.sh Wiki · GitHub
---------------------------------------------
1.如果你的安装服务器位于中国大陆境内, 访问 github 可能会不成功. 所以安装可能会失败.
- 推荐从这里下载安装:
https://gitee.com/neilpang/acme.sh
根据 How-to-install#3-or-git-clone-and-install
根根据How-to-install#3-or-git-clone-and-install
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
2.中文说明里以腾讯云举例,其他DNS提供商的使用方法见页面:
DNS api usage:
https://github.com/acmesh-official/acme.sh/wiki/dnsapi
我们一般常用除了腾讯云,就是阿里云了,所以把阿里云的说明记录一下:
First you need to login to your Aliyun account to get your RAM API key. https://ram.console.aliyun.com/users
export Ali_Key="<key>"
export Ali_Secret="<secret>"
Ok, let's issue a cert now:
./acme.sh --issue --dns dns_ali -d example.com -d *.example.com
The Ali_Key
and Ali_Secret
will be saved in ~/.acme.sh/account.conf
and will be reused when needed.
注意:阿里的RAM用户创建后默认没有任何权限,需要手动添加以下两个权限:
AliyunDomainFullAccess - 管理域名服务的权限
AliyunDNSFullAccess - 管理云解析(DNS)的权限
3.Linux中如果你使用普通用户,而不是root,注意 服务如nginx存放证书的目录,当前普通用户要有写入权限
4.如果你的服务如nginx在Docker里运行,则记得修改reloadcmd。
我直接修改成 docker restart nginx(你的容器名),是有效的,如果你担心服务中断,可以试着自己改:1.进入容器 2.执行重新加载命令,但是我没尝试
5.测试是否生效
需要服务正常运行,然后访问,没有警告提示,一般就说明成功了,然后地址栏左侧会有一个小锁图标,点击锁,可以查看证书的相关信息,要查看更多信息,可以借助一些检测网站,如阿里云里就有,还发现一个同时能检测安全程度的网站:
可以根据提示对ssl相关的安全性进行升级调整
参考文章:
SSL 网站检查时:没有优先使用FS系列加密套件,降级为B问题解决
如何在 Nginx 中启用 HSTS?-腾讯云开发者社区-腾讯云