一键使用 Bash 脚本生成有效期至 2999 年的 SSL 证书并自动部署

#!/bin/bash

# 设置变量
CA_KEY="cakey.pem"
CA_CERT="ca.crt"
CA_SERIAL="ca.srl"
CLIENT_KEY="client.pri"
CLIENT_CSR="client.csr"
CLIENT_CERT="client.crt"
CACERT_PEM="cacert.pem"
OUTPUT_DIR="/root/ssl"
DOMAIN="ClientCert"
DAYS=$(( (2999 - $(date +"%Y")) * 365 ))

# 创建输出目录
mkdir -p "$OUTPUT_DIR"

# 生成 CA 私钥
openssl genrsa -out $CA_KEY 2048

# 生成自签名 CA 证书
openssl req -new -x509 -key $CA_KEY -out $CA_CERT -days $DAYS \
    -subj "/C=CN/ST=State/L=City/O=Company/OU=Org/CN=RootCA"

# 生成 PEM 格式 CA 证书(可选)
cp $CA_CERT $CACERT_PEM

# 生成客户端私钥
openssl genrsa -out $CLIENT_KEY 2048

# 生成客户端证书请求 (CSR)
openssl req -new -key $CLIENT_KEY -out $CLIENT_CSR \
    -subj "/C=CN/ST=State/L=City/O=Company/OU=Org/CN=$DOMAIN"

# 使用 CA 签发客户端证书
openssl x509 -req -in $CLIENT_CSR -CA $CA_CERT -CAkey $CA_KEY -CAcreateserial \
    -out $CLIENT_CERT -days $DAYS -sha256

# 移动文件到目标目录
mv $CA_KEY $CA_CERT $CACERT_PEM $CLIENT_KEY $CLIENT_CERT $OUTPUT_DIR

# 清理中间文件
rm -f $CLIENT_CSR $CA_SERIAL

echo "证书生成完成并已移动到 $OUTPUT_DIR"
ls -l $OUTPUT_DIR
posted @   郭小睿  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2022-12-23 《unittestreport》测试报告库
2022-12-23 rsync的三种传输模式及常见报错
2022-12-23 yum仓库报错dbenv->open:资源暂时不可用
2022-12-23 Linux系统磁盘扩容
点击右上角即可分享
微信分享提示