← 返回文章列表
POST / 2024-11-21

https证书配置

首先我们要做一下准备工作,假设你域名是  example.com ,解析到你的服务器让其生效后,我们建立一个目录: 我们的目的是绑定  http://example.com/.well-known/acme-challenge  到这个目录。 nginx配置 生成证书 安装证书

# 安装,需要修改email为自己的邮箱
curl https://get.acme.sh | sh -s email=my@example.com

# standalone需要安装socat
apt-get install  socat -y
# 生成证书
acme.sh --issue -d left2east.com --standalone
#复制到nginx目录下
cp /root/.acme.sh/left2east.com_ecc/left2east.com.cer /etc/nginx/ssl/
cp /root/.acme.sh/left2east.com_ecc/left2east.com.key /etc/nginx/ssl/

首先我们要做一下准备工作,假设你域名是 example.com,解析到你的服务器让其生效后,我们建立一个目录:

mkdir -p /var/www/letsencrypt

我们的目的是绑定 http://example.com/.well-known/acme-challenge 到这个目录。

nginx配置

server {
	listen 80;
	listen [::]:80;
	server_name example.com;

	location /.well-known/acme-challenge {
		root /var/www/letsencrypt;
	}

	location / {
		rewrite	^/(.*)$ https://$host/$1 permanent;
	}
}

生成证书

acme.sh --issue -d example.com -w /var/www/letsencrypt

安装证书

acme.sh --install-cert -d example.com \
--key-file       /etc/nginx/ssl/example.com.key  \
--fullchain-file /etc/nginx/ssl/example.com.crt \
--ca-file        /etc/nginx/ssl/example.com.ca.crt \
--reloadcmd     "systemctl restart nginx"

nginx配置

ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_trusted_certificate /etc/nginx/ssl/example.com.ca.crt;

过期重新申请的脚本

# 获取证书信息并提取过期时间
expiry_date=$(echo | openssl s_client -servername www.left2east.com -connect www.left2east.com:443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)

# 转换为时间戳
expiry_timestamp=$(date -d "$expiry_date" +%s)
current_timestamp=$(date +%s)

# 检查并计算天数
if [ $current_timestamp -gt $expiry_timestamp ]; then
    echo "证书已过期!"
else
    days_remaining=$(( (expiry_timestamp - current_timestamp) / 86400 ))
    echo "证书有效,剩余天数: $days_remaining"
    exit
fi
/usr/sbin/nginx -s stop
acme.sh --issue -d www.left2east.com --standalone
cp /root/.acme.sh/www.left2east.com_ecc/www.left2east.com.cer /etc/nginx/ssl/www.left2east.com.crt
cp /root/.acme.sh/www.left2east.com_ecc/www.left2east.com.key /etc/nginx/ssl/www.left2east.com.key
cp /root/.acme.sh/www.left2east.com_ecc/ca.cer /etc/nginx/ssl/www.left2east.com.ca.crt
/usr/sbin/nginx