怎么用acme.sh进行ssl申请和自动续约?

[复制链接]

975

主题

975

帖子

629

积分

高级会员

Rank: 4

积分
629
分享到:
发表于 2022-9-9 13:27:48 | 显示全部楼层 |阅读模式
本文以demo.example.com为例,详细介绍了使用acme.sh进行ssl申请和自动续约的方法
安装只需要用任意用户执行
curl get.acme.sh | shacme.sh 会安装到 ~/.acme.sh/目录下,并创建新的自动计划(cronjob)在凌晨0点检查所有证书
生成证书的方式主要有三种网站文件方式,适合于已经部署好apache或是nginx服务器的情况临时监听80端口方式,适合于没有部署好服务的服务器手动配置DNS,需要有手动配置DNS的权限,适合没有服务器或是不想更改服务器的情况1.文件认证acme.sh --issue -d <域名> --webroot <网站根目录>acme.sh --issue -d demo.example.com --webroot /home/wwwroot/demo.example.com/2.暂时监听80端口yum install socatacme.sh --issue -d demo.example.com --standalone3. DNS方式手动方式首先获得认证需要的解析记录
acme.sh --issue --dns -d demo.example.com然后在DNS服务商中添加记录
最后重新生成证书
acme.sh --renew -d demo.example.com使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。
自动方式dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证
首先需要在云上申请有DNS配置权限的账号密码
腾讯云参考:
操作方法
在dnspod官网上申请
login DP_Id="1234"export DP_Key="sADDsdasdgdsf"acme.sh --issue --dns dns_dp -d demo.example.com阿里云参考:
操作方法
在阿里云官网登录添加拥有DNS配置权限的子账户 login.htm Ali_Key="AccessKeyId"export Ali_Secret="AccessKeySecret"acme.sh --issue --dns dns_ali -d demo.example.com证书的安装默认生成的证书都放在安装目录下: ~/.acme.sh/

需要将证书“拷贝”到自定义位置,方便配置,这里的复制需要用acme.sh的自带工具用于日后自动更新
acme.sh --installcert -d demo.example.com ?\ ???--key-file ?/usr/local/nginx/ssl/demo_example_com.key \ ???--fullchain-file /usr/local/nginx/ssl/demo_example_com.cer \ ???--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"apache服务器的配置暂无
nginx服务器的配置nginx 设置类似如下
?server { ???listen 443 ssl; ???ssl on; ???ssl_certificate /usr/local/nginx/ssl/demo_example_com.cer; # 这里指向证书安装的位置 ???ssl_certificate_key /usr/local/nginx/ssl/demo_example_com.key; ??}让你的SSL更安全参考:https://mikemiao111.com/nginx%E5%A2%9E%E5%BC%BAhttps%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE/

nginx默认采用1024位的加密算法,如果需要的话可以使用2048位的代替,这样可以让加密更安全
首先生成 zjk_zoollcar_top.pem 文件到指定目录
openssl dhparam -out /usr/local/nginx/ssl/demo_example_com.pem 2048然后在nginx配置文件中设置
?server { ???listen 443 ssl; ???ssl on; ???ssl_certificate /usr/local/nginx/ssl/demo_example_com.cer; ???ssl_certificate_key /usr/local/nginx/ssl/demo_example_com.key; ???ssl_dhparam /usr/local/nginx/ssl/demo_example_com.pem; #新增 ??}可以用下面的网站测试SSL安全性
https://www.ssllabs.com/ssltest/

更新 acme.sh目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

升级 acme.sh 到最新版 :

acme.sh --upgrade如果不想手动升级, 可以开启自动升级:

acme.sh --upgrade --auto-upgrade之后, acme.sh 就会自动保持更新了.

你也可以随时关闭自动更新:

acme.sh --upgrade --auto-upgrade 0

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表