首页 > 极客资料 博客日记
利用 ACME 实现SSL证书自动化配置更新
2024-10-10 14:30:04极客资料围观16次
最近收到腾讯云的通知SSL证书要到期了,本想直接申请的发现现在申请的免费SSL证书有效期只有90天了,顺便了解了一下原因是包括Google在内的国际顶级科技公司一直都有在推进免费证书90天有效期的建议,免费证书加密等级低,难以应对今天日益复杂的网络环境,90天一更新有助于及时发现可能存在的安全漏洞,从而降低风险。这本意是好的但是苦了我们这些的IT 人了,不过好在有自动化的SSL证书更新神器
acme
,可以一键申请SSL证书,到期也会自动更新,省去了很多麻烦。
安装acme
首先下载安装 acme,后面的 email修改为自己的用于收取SSL证书相关的消息,acme 默认会安装在~/.acme.sh/
目录下。
curl https://get.acme.sh | sh -s email=mymail@mail.com
修改SSL证书服务商
默认SSL 证书服务商为 ZeroSSL,申请过程比较容易出错建议修改为letsencrypt,
acme.sh --set-default-ca --server letsencrypt
证书申请
证书申请过程需要一个域名验证操作,acme 支持两种验证方式:http 验证和 dns 验证,这里我们采用 dns 验证方式,dns 验证可以手动添加CNAME记录也可以通过 dns 厂商提供的 api 进行添加,后者更方便一下,提供 dns 服务的厂商也很多这里以 dnspod 为例进行说明。
申请DNSAPI
登录 DNSPod通过 API 密钥创建 DNSPod Token,密钥创建后要保存好后续无法查询。
配置DNSAPI
将上一步申请的DNSPod Token的 ID 和 Token导入到环境变量中
export DP_Id="511111"
export DP_Key="2d111111111"
执行申请操作
使用issue
命令申请证书, 参数-d 用户指定要申请证书的域名,*.domain.cn是泛域名,domain.cn是根域名,test.domain.cn是单域名,此处需要注意要确定前面指定的SSL证书服务商是否支持申请泛域名,如果不支持就需要多次重复此步操作申请多个 SSL 证书,letsencrypt支持申请泛域名证书;参数 dns 用于指定 dns 服务厂商,执行器需要需要确保上一步的环境变量已经正确导入,可以检查~/.acme.sh/
目录下的account.conf文件内容进行确认;命令执行后会通过dnsapi 自动添加CNAME记录并进行验证,验证通过后会在~/.acme.sh/domain.cn
目录生成申请好的证书。
申请过程请关注输出信息,存在异常时可以通过添加--debug
参数输出更多信息以便排查。
acme.sh --issue -d domain.cn -d *.domain.cn --dns dns_dp
证书安装
证书申请成功还需要安装到对应的位置,需要使用--install-cert
命令,这里以 nginx 为例进行说明,-d
参数指定域名,需要和安装的证书文件一一对应,--key-file
指定证书私钥的安装位置,--fullchain-file
指定证书文件的安装位置,--reloadcmd
指定证书文件安装完成应用的重启命令,执行成功会提示 success,可以通过访问自己的域名进行验证,同时命令为添加一条自动化任务"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
用于定时自动更新 SSL 证书,可以通过crontab -l
命令查看。
acme.sh --install-cert -d domain.cn \
--key-file /usr/local/nginx/conf/cert/domain.cn.key \
--fullchain-file /usr/local/nginx/conf/cert/domain.cn.cer \
--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
相关网址
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”