事情是这样的
你是不是也有一年又一年的新项目接入,对于要求https协议的网站,每3个月的TSL证书更新需求都要自己手动去申请
参考资料
acme.sh安装
使用源码安装:
1 2 3 4 5 6 7 8 9 10 11 12
| git clone --depth 1 https://github.com/acmesh-official/acme.sh.git # 国内访问 github 便秘 就用gitee git clone --depth 1 https://gitee.com/neilpang/acme.sh.git cd acme.sh # 请注意替换 username@example.com 为你自己的邮箱,避免无法收到上游证书的邮件通知。 ./acme.sh --install -m username@example.com # 安装完成后重新加载 Bash source ~/.bashrc #检查是否生效 acme.sh -v # 更改默认 CA 颁发者为 Let’s Encrypt acme.sh --set-default-ca --server letsencrypt
|
配置 DNS API
需要先配置DNS
登陆阿里云控制台 - 访问控制 RAM - 身份管理-用户
创建用户-勾选 使用永久 AccessKey 访问
通过以上配置后拿到key和secret
acme.sh 程序目录为隐藏目录.acme.sh存放在当前用户家目录下.执行以下命令进入目录,并编辑account.conf,根据上文获取的 API 格式,复制粘贴到文件中保存.
1 2 3 4 5 6
| cd cd .acme.sh vi account.conf
export Ali_Key="...." export Ali_Secret="....."
|
自动更新脚本拿走
详情见第4篇资料,此处用的阿里云
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/bash # 备份旧证书 /bin/cp -rf /usr/local/nginx/conf/cert/*.* /usr/local/nginx/conf/cert/sslbak # 使用 acme.sh 生成新证书,此处使用了绝对路径来运行acme脚本,请按照实际情况操作。/home/ecs-user是我当前用户的家目录。 /root/.acme.sh/acme.sh --issue --dns dns_ali -d e1.test.com --fullchain-file /home/setup/sslkey/e1.test.com.pem --key-file /home/setup/sslkey/e1.test.com.key --force /root/.acme.sh/acme.sh --issue --dns dns_ali -d e2.test.com --fullchain-file /home/setup/sslkey/e2.test.com.pem --key-file /home/setup/sslkey/e2.test.com.key --force
# 将新证书拷贝到 Nginx 证书目录 /bin/cp -rf /home/setup/sslkey/* /usr/local/nginx/conf/cert
# 重启 Nginx 以应用新证书(请根据实际情况选择适当的重启方式) /usr/sbin/nginx -s reload
|
完结