首页 > 其他分享 >利用 ACME 实现SSL证书自动化配置更新

利用 ACME 实现SSL证书自动化配置更新

时间:2024-10-10 14:02:22浏览次数:8  
标签:ACME acme 证书 -- SSL sh cn

最近收到腾讯云的通知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 protected]

修改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,密钥创建后要保存好后续无法查询。
image

配置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"

相关网址

acme 使用说明
dnsapi 使用说明

标签:ACME,acme,证书,--,SSL,sh,cn
From: https://www.cnblogs.com/barros/p/18455902

相关文章

  • 浏览器证书机构不正确
    现象某些网站使用的是let'sencrypt的免费证书,但是浏览器上查看证书提示机构为EndpointRootCA。这将会导致需要从浏览器导出证书时,得到的证书无法使用。常见的使用场景是导出这个证书到docker或containerd的私有证书信任/etc/docker|containerd/certs.d。解决方案目前......
  • SSL证书是否可以给多个域名使用?
    在当今数字化的网络环境中,SSL证书在保障网站安全、保护用户数据传输方面发挥着至关重要的作用。那么,SSL证书是否可以给多个域名使用呢?这是一个在网站开发、运营和安全管理领域备受关注的问题。SSL证书能够给多个域名使用吗?答案是视情况而定,不同类型的SSL证书在多域名使用方面......
  • 【javascript 编程】Web前端之JavaScript动态添加类名的两种方法、区别、className、c
    通过className来添加或删除类名添加类名获取元素el.className="类名1类名2...";多个类名用空格隔开。移除类名获取元素名el.className="";直接等于一个空字符串即可删除类名。通过classList来添加或删除类名添加一个类名获取元素名el.classList.add("类名");。......
  • 免费与付费SSL证书:为何差距如此之大?
    SSL证书已经越来越多的使用在网站,小程序和APP上,对于保障网络安全,加密数据信息有至关重要的作用。随着SSL证书市场的发展,各种类型的证书产品也在不断丰富,用户在选择SSL证书时,除了可以购买付费证书,也可以在部分证书平台申请免费SSL证书。出于对成本的考虑,使用免费SSL证书无可厚......
  • 揭秘SSL:如何成为您的在线隐私守护者
    2021年11月1日,在公民个人信息保护领域国家正式实施了一部具有重要意义的法律——《中华人民共和国个人信息保护法》,该部法律在个人信息保护方面做了相关规定,使得公民个人信息保护走上了法治的轨道,公民在保护个人信息方面开始有法可依。国家颁布实施的这部法律一方面彰显了在保......
  • QT5中引入GMSSL库
    近来项目中需要使用加密算法,对上/下位机之间的消息进行加密。客户要求使用国密算法库,不能使用国际上通用的AES、RSA等算法。国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。其中SM1没有开源,其他的均开源。源码编译开源的国密算法全网......
  • 网址显示证书错误?网站证书错误打不开
    遇到网站证书错误导致无法打开的情况,可以尝试以下几个步骤来解决问题:清除浏览器缓存和Cookies:清除浏览器中的缓存数据和Cookies,有时候这些数据可能已经过期或损坏。更换浏览器尝试:尝试使用不同的浏览器访问该网站,以排除当前浏览器的问题。检查系统时间:确认计算机......
  • 计算机毕业设计 基于Python的荣誉证书管理系统的设计与实现 Python毕业设计 Python毕
    博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌......
  • 监控证书有效期
    脚本监控域名证书有效期,超过60天邮件通知脚本路径:/opt/domain_script-check_public_domain_ssl.py-check_ssl_data#域名证书检查结果文件目录-domain_datasource#扫描域名列表目录-logs#记录日志]$cat/opt/domain_script/domain_datasource/public_domain_li......
  • 网站证书错误打不开网页怎么办
    遇到网站证书错误导致网页无法打开的情况,可以尝试以下几个步骤来解决:清除浏览器缓存和Cookies清除浏览器中的缓存数据和Cookies可能会帮助解决问题。更换浏览器尝试使用不同的浏览器访问该网站,有时候问题可能是浏览器特定的。检查日期和时间设置确保您的设备日期......