Let‘s Encrypt基于阿里云DNS自动更新免费的SSL证书

第一步、申请阿里云的密钥,授权DNS管理 登录aliyun账号--权限与安全-accessKey ,点击进去创建一个子账号,然后授与该子账号dns full acess权限 第二步、下载并安装acme.sh 脚本,并设置好al...

第一步、申请阿里云的密钥,授权DNS管理

登录aliyun账号--权限与安全-accessKey ,点击进去创建一个子账号,然后授与该子账号dns full acess权限

第二步、下载并安装acme.sh 脚本,并设置好aliyun 申请的DNS apiKey和sceretKey

2.1 , 从github下载aceme脚本
git clone  https://github.com/acmesh-official/acme.sh.git

2.2 , 安装脚本

./acme.sh --install -m 266417775x@qq.com

-m 后面接邮箱名字

更高级用法见如下链接:

https://github.com/acmesh-official/acme.sh/wiki/How-to-install

https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

第三步、填入DNS API的 apiKey和secretKey,用与自动dns中添加txt记录

在安装的路径中(默认为/root/.acme.sh/) 编辑account.conf 文件添加如下内容:

#LOG_FILE="/root/.acme.sh/acme.sh.log"

#LOG_LEVEL=1

#AUTO_UPGRADE="1"

#NO_TIMESTAMP=1 

ACCOUNT_EMAIL='2664177758@qq.com'

UPGRADE_HASH='0a4500e85b9bce1ed1418c1ccff4f960ef519cc5'

SAVED_Ali_Key='xxxxx'

SAVED_Ali_Secret='yyyyyy'

USER_PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/data/midware/ali_jdk_8.16.17/bin'

主要是 SAVED_Ali_Key和 SAVED_Ali_Secret两项,邮箱在第二部安装脚本指定的邮箱会自动写入


第四步、使用命令申请证书(过程自动化)

acme.sh --issue --dns dns_ali -d tianyiluo.com -d blog.tianyiluo.com

上面默认生成的是ECC证书,如果想生成RSA证书需要加上  --keylength 2048(或4096)

阿里云的CDN或LBS都不支持 ECC证书上传,只能使用RSA证书


第五步、编译nginx的域名配置文件,填入证书名字并reload

     

第六步、证书到期前自动更新(续期)脚本


#!/bin/bash

##DESC:脚本获取公钥的过期时间,然后在到期15天前调用更新脚本更新证书,并把更新后证书替换原证书,从新reload nginx

# 设置 acme.sh 的路径和 home 目录

ACME_HOME="/root/.acme.sh"

CERT_DIR=tianyiluo.com_ecc

NGINX_CERT=/webdata/conf/ssl

NGINX_INSTALLED_DIR=/usr/local/nginx_new

cd $ACME_HOME

CERT_INVALID_TIME=$(openssl x509 -in $ACME_HOME/$CERT_DIR/fullchain.cer  -noout -enddate|awk -F '=' '{print $2}')

CERT_UNIXTIME=$(date -d "$CERT_INVALID_TIME" +%s)

CURRENT_UNIXTIME=$(date +%s)

DIFF_UNIXTIME=$(echo "$CERT_UNIXTIME - $CURRENT_UNIXTIME"|bc)

if [ $DIFF_UNIXTIME -le 1296000 ];then

# 如果证书过期时间小于15天,执行 acme.sh 命令进行证书续签

./acme.sh  --cron --home $ACME_HOME > /dev/null

cd $ACME_HOME/$CERT_DIR

\cp -rp fullchain.cer tianyiluo.com.key $NGINX_CERT

$NGINX_INSTALLED_DIR/sbin/nginx -s reload

fi



  • 发表于 2025-11-16 10:30
  • 阅读 ( 28 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
每天惠23
每天惠23

33 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章