Bootstrap

linux 生成内网ssl证书

手动生成ssl证书

openssl genrsa -out server.key 2048
openssl req -new -x509 -key server.key -out server.crt -days 365  #有效期365天

自动定时更新ssl证书

1. 编写更新脚本

首先,创建一个脚本来生成新的 SSL 证书和密钥。以下脚本经实测验证,假设你将其保存为 /etc/nginx/ssl/update_ssl.sh:

#!/bin/bash

# 路径配置
KEY_PATH="/etc/nginx/ssl/server.key"
CRT_PATH="/etc/nginx/ssl/server.crt"

# 生成新的私钥
openssl genrsa -out $KEY_PATH 2048

# 生成新的证书
openssl req -new -x509 -key $KEY_PATH -out $CRT_PATH -days 365 -subj "/C=US/ST=State/L=City/O=Organization/OU=OrgUnit/CN=example.com"

# 设置适当的权限
chmod 600 $KEY_PATH
chmod 644 $CRT_PATH

# 重启 Nginx 或其他服务以使更改生效
# systemctl restart nginx

echo "SSL证书和密钥已更新"
2. 设置脚本权限

确保脚本是可执行的:

sudo chmod +x /etc/nginx/ssl/update_ssl.sh
3. 设置定时任务

使用 cron 来定期执行这个脚本。编辑 cron 表:

crontab -e

然后添加一行来设置定时任务。例如,以下行表示每 30 天运行一次脚本:

0 0 1 */1 /etc/nginx/ssl/update_ssl.sh

这条 cron 表示每个月的第一天(00:00)执行 update_ssl.sh 脚本。

4. 验证 cron 作业

使用以下命令查看 cron 作业是否已经设置好:

crontab -l
;