使用acme.sh实现服务器ssl证书自动签发续签

随着所有的厂商也免费ssl证书有效期从一年减少至3个月,技术人员不得不面对频繁签发证书的问题,以前一年搞一次现在一年搞4次,自动化变得非常有必要了。

工具介绍

acme.sh是一个实现从letsencrypt自动签发证书,自动更新续签证书的脚本。

大致了解流程之后,使用还是相对简单的。

(1)工具自己生成必要的ssl申请文件,无需干预

(2)设置好后,工具自动把文件生成到WEB目录下。(确保WEB能够HTTP访问,因为这类似于SSL证书申请步骤 文件认证)

(3)工具等待文件认证30次循环,如果成功,自动把证书放到用户指定的位置。(也就是nginx apache等服务器引用证书的路径)

(4)自动重载一下服务器软件,新证书生效


核心操作


./acme.sh --issue -d 域名 --webroot /data/home/public_html/www  -m 邮箱地址 --force
./acme.sh --install-cert -d 域名 --key-file   /usr/tmp/文件名.pem  --fullchain-file /usr/tmp/文件名.cert


脚本化

#!/bin/bash

# 定义变量
DOMAIN="www.abc1133aa.com"
EMAIL="vv20@vip.qq.com"
WEBROOT="/home/public_html/$DOMAIN"
SSL_DIR="/home/public_html/sslfile"
KEY_FILE="$SSL_DIR/$DOMAIN.key"
CERT_FILE="$SSL_DIR/${DOMAIN}_bundle.crt"

# 检查并删除已存在的证书文件
if [ -f "$KEY_FILE" ]; then
    echo "Removing existing key file: $KEY_FILE"
    rm "$KEY_FILE"
fi

if [ -f "$CERT_FILE" ]; then
    echo "Removing existing certificate file: $CERT_FILE"
    rm "$CERT_FILE"
fi

# 申请证书
./acme.sh --issue -d "$DOMAIN" --webroot "$WEBROOT" -m "$EMAIL" --force

# 安装证书
./acme.sh --install-cert -d "$DOMAIN" --key-file "$KEY_FILE" --fullchain-file "$CERT_FILE"

echo "Certificate installation completed for $DOMAIN"


工具地址

https://github.com/acmesh-official/acme.sh

猜你喜欢

简单三步实现Linux下mysql数据库定时备份

Linux下实现mysql数据库定时备份,只需要掌握这简单的三步即可。 1、你必须登录数据库创建一个用于备份的帐号密码,可以给大权限也可以细化。 #创建用户和密码 CREATE USER 'back...

Stable Diffusion的easynegative插件

Stable Diffusion的easynegative插件

有时候看到很多画图的负向词中会有“easynegative”这个单词,这是一个通用的负面模型,把一些常用的不需要AI画的东西全部集成进来了,除非你的负向词面面俱到,不然这个插件还是很有用的。 这是使...

Dell R720 R420 快速服务代码和服务编号大全

Dell查个资料,下个驱动都要输入服务代码或产品编号。 有时候没在机器边就记不住。 DELL R720 产品服务编号: BKZCS12 快速服务代码: 25213311974 Dell R420 快速...

基于http-x-forward的nginx并发限制与拦截屏蔽

网站经常被扫描工具,列表爬虫,导致服务器性能开销很大,有些恶意的刷网站,经常导致服务器负载过高。 因为使用了CDN加速,以前基于IP地址的频率限制,拦截,防火墙拦截都无效了。 必须使用基于http-x...

源格式转换 txt转m3u 在线工具及源码

源格式转换 txt转m3u 在线工具及源码

一般txt转m3u指的是不同播放器的源格式转换,而txt和m3u是两种流行的格式。 一般txt格式如下: 节目名称,节目URL 一般m3u格式如下: EXTINF:-1,节目名称 节目URL 有些节...

nginx图片不存在时以200状态码返回默认图片

这个场景主要是有些图片可能删除了,会在页面是出现叉叉。 可以通过nginx的404方式,设置返回默认图片,优化用户体验。 location ~ \.(jpg|gif|jpeg|png|txt)$ { ...