阿里云域名免费泛型SSL证书申请[ACME.SH]

教程分享 (506) 2024-07-25 12:38:50

阿里云(原万网)域名,配合acme.sh 脚本申请免费的泛型SSL证书,开启HTTPS时代。

起因

从互联网推荐使用https开始,一直用的云服务商的免费DV SSL证书,一年一次替换。2024年某月开始所有服务商的免费证书都是3个月一次有效期了,所以还是替换为acme.sh脚本免费ssl方案吧,省心。

创建阿里云域名API账户

首先是创建阿里云的子账号赋予子账号域名DNS相关操作权限,参考:阿里云单个域名API授权管理权限-左搜 (leftso.com)

完成创建后你会获得用户的 AccessKey ID和 AccessKey Secret,保存好后面脚本要用。

 

创建docker-compse配置

docker-compose.yml文件内容:

services:
 acme.sh:
   image: neilpang/acme.sh:3.0.7
   container_name: acme.sh
   hostname: acme.sh
   restart: always
   command: daemon
   network_mode: host
   environment:
    - Ali_Key=对应你的AccessKey ID
    - Ali_Secret=对应你的AccessKey Secret
   volumes:
     - ./out:/acme.sh
     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
   deploy:
     resources:
       limits:
         memory: 256M

编辑启动脚本

deploy.sh

#!/bin/sh
work_path=$(dirname $0)
cd ${work_path}
work_path=$(pwd) 
echo $work_path
docker-compose --compatibility  build;docker-compose --compatibility down;docker-compose --compatibility up -d;docker image prune -f

执行脚本:

chmod 755 deploy.sh
sudo ./deploy.sh

SSL 证书生成脚本

install-key.sh

#!/bin/sh
#使用说明
# sudo ./install.sh *.example.com >> ./acme.log

domain_name=$1
echo $domain_name
sudo docker exec acme.sh --register-account -m domain@example.com --server zerossl
sudo docker exec acme.sh --issue --dns dns_ali -d $domain_name  

sudo docker exec acme.sh --install-cert -d $domain_name \
#    --key-file       /acme.sh/issue/$domain_name.key.pem  \
#    --fullchain-file /acme.sh/issue/$domain_name.cert.pem

执行脚本:

chmod install-key.sh
sudo ./install-key.sh *.yourdomain.com

提示:上面脚本的域名替换成你自己的即可。

阿里云域名免费泛型SSL证书申请[ACME.SH]_图示-dc924cd81bb24e73a280583152594f44.png
证书过程参考
阿里云域名免费泛型SSL证书申请[ACME.SH]_图示-3c086111b1a946f5be593c56332afdd9.png
生成证书相关文件参考

nginx配置主要用两个一个是

  • fullchina.cer证书
  • 域名.key   证书密钥

证书生成后就可以挂载到nginx容器或者直物理机配置指定到out目录下的具体证书了。

 

SSL到期自动签发

  • 注意:免费签发的证书一般只有3个月,所以需要配合定时任务进行自动签发
  • 注意:acme.sh docker内置了一个定时任务但是有时候不知道怎么不生效所以用宿主机进行了crontab

实现逻辑主要是通过Linux系统的定时任务,每隔一段时间执行一次脚本,比如我这里配置每天执行一次

sudo crontab -e

编辑定时任务

#ssl 每天晚上8点执行一次
00 20 * * * sudo /opt/docker/acme.sh/install-key.sh  *.yourdomain.com>> /opt/docker/acme.sh/acme.log
#nginx 重载配置让证书生效
#docker模式重载,每天晚上9点执行一次
00 21 * * *  docker exec -it nginx /bin/bash -c 'nginx -s reload'
# 主机模式重载
#00 21 * * *  sudo nginx -s reload

至此证书部分签发教程完毕。

 

 

https://www.leftso.com/article/2407251206115699.html

相关文章
阿里云(原万网)域名,配合acme.sh 脚本申请免费的泛型SSL证书,开启HTTPS时代。首先是创建阿里云的子账号赋予子账号域名DNS相关操作权限,参考:
acme.sh脚本docker方式使用获取免费SSL证书环境docker构建version:"3.8"services:acme.sh:image:neilpang/acme.sh:3.0.4c...
acme.sh说明acme.sh是一个Let's SSL证书颁发的官方推荐shell脚本开源免费安装acme.shcurl https://get.acme.sh | sh提示:普通用户和 ro...
acme.sh 获取let's encrypt免费ssl证书https
目的给阿里云单个域名提供API接口权限,目前主要用来申请免费的SSL证书。配置单个域名权限是为了安全,一个账户下如果只有一个域名也可直接配置最高权限无所谓。操作
acme.sh 安装证书使用解决Java证书无法验证问题acme.sh v3 换了ssl的证书签发机构,需要先注册一个邮箱acme.sh 注册邮箱acme.sh --register-accou...
2021年12月23日 ,更新:【优惠口令】com英文域名续费:商标优选即买即用cn英文域名续费:商标注册急速申报xin域名注册:只争朝夕xin域名续费:不负韶华
存储桶访问权限 存储桶访问权限分三种,分别是 私有读写; 公有读私有写; 公有读写; 理解: 私有读写:访问和编辑上传你存储的对象都需要验证权限; ...
接上一篇harbor2.10.x离线安装-左搜(leftso.com)安装了http版本,禁用了https,然后发现使用的时候没有https各种不方便。随即研究了下https的处理
前置说明,项目配置了个全局PATH,估计是为了方便复杂环境单容器多项目部署用的老项目配置方式var PATH = [[${#httpServletRequest.getScheme() + ":...
tomcat如何配置SSL或者说HTTPS,tomcat,https,SSL。为何需要使用SSL
NetSarang Computer,Inc.以过去10年免费提供强大的SSH和SFTP/FTP客户端而自豪。我们的免费许可证不仅是免费的价格,而且没有广告或其
idea maven https私服下载报错解决idea 打开设置菜单,找到setting-&gtl;Build,Excution,Deployment-&gtl;Build Tools&gtl...
部署目录结构tree -a ././├── conf.d #nginx 自定义配置映射目录│ ├── default.conf #存放一些通用配置(可选)│ ├