首页 > 其他分享 >一键使用 Bash 脚本生成有效期至 2999 年的 SSL 证书并自动部署

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

时间:2024-12-23 18:08:36浏览次数:4  
标签:2999 CA SSL CERT CLIENT DIR KEY Bash out

#!/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

标签:2999,CA,SSL,CERT,CLIENT,DIR,KEY,Bash,out
From: https://www.cnblogs.com/guowenrui/p/18624726

相关文章

  • 自签名SSL证书生成
    1、生成顶级CA的公钥证书和私钥文件##有效期15年(指定RSA2048bits,默认RSA1024bits)opensslreq-newkeyrsa:2048-x509-days5480-keyoutCARoot2048.key-outCARoot2048.crt2、为顶级CA的私钥文件去除保护口令openss1rsa-inCARoot2048.key-outCARoot2048.key3......
  • centos7.6 nginx配置ssl证书
    1、Linux(Centos7.6)Nginx安装部署并配置SSL证书(简单方便版)https://blog.csdn.net/m0_63684495/article/details/1287483102、解决nginx:[emerg]the“ssl“parameterrequiresngx_http_ssl_modulein/usr/local/nginx的问题https://blog.csdn.net/guo_qiangqiang/article/d......
  • Windows10如何安装OpenSSL并生成证书
    1.安装第三方软件FireDaemonOpenSSL下载地址:适用于MicrosoftWindows的OpenSSL3.4、3.3、3.0LTS、1.1.1LTS二进制文件安装过程中注意勾选“添加到环境变量”。2.进入到安装目录如C:\ProgramFiles\FireDaemonOpenSSL3\bin,确保目录下存在openssl.exe文......
  • CMake构建学习笔记19-OpenSSL库的构建
    1.概述OpenSSL是一个开源的加密工具包和库,主要实现了安全套接字层(SSL)和传输层安全(TLS)协议,以及各种加密算法、数字签名、消息摘要、加密证书等功能。这个库可以说是Web开发尤其是HTTPS通信的基石了。这里就具体讲解一下如何构建它。2.构建过程2.1Windows环境首先要说明的是O......
  • 宝塔面板SSL证书即将到期,如何续签?
    当宝塔面板中的SSL证书即将到期时,可以通过关闭现有证书并重新申请的方式来完成续签。以下是详细的步骤:登录宝塔面板:打开浏览器,输入你的宝塔面板地址和端口,例如:http://你的服务器IP:8888,使用管理员账号和密码登录。进入网站管理:在左侧导航栏中,选择“网站”。找到需要续......
  • [Git]Notes about how to use Git Bash
    通过GitBash方式创建仓库①新建文件夹-仓库名②初始化仓库生成.git文件夹-gitinit③拉取远程仓库-gitclone{网址}④配置文件-gitconfiguser.name{name}-gitconfig--globaluser.email{name}//global配置全局通过GitBash方式查看暂存区状态-gitstatus......
  • Geotrust OV 通配符SSL
    在数字化时代,网络安全已成为企业运营不可或缺的一部分。随着网络攻击手段的不断升级,保护网站数据传输的安全性和用户隐私变得尤为重要。SSL证书,作为确保网站安全通信的关键技术之一,扮演着至关重要的角色。在众多SSL证书中,GeoTrustOV(OrganizationValidation)通配符证书以其高效......
  • SSL或者说是TSL加密传输的过程
    TLS(TransportLayerSecurity)基本概述TLS是一种加密协议,用于在网络通信中提供安全保障。它的前身是SSL(SecureSocketsLayer),主要目的是在两个通信实体(如客户端和服务器)之间建立一个安全的通信通道,确保数据的保密性、完整性和认证性。TLS加密过程主要步骤握手阶段(Handsh......
  • 没有域名如何申请SSL证书
    SSL证书一般多应用于域名上,可以保证网站里面的数据不会被泄露,加强网站安全,也加强浏览者的信任度。但是有一种特殊的情况,在网站没有域名或者域名还没有准备好的时候,只有IP地址,能否安装SSL证书呢,答案是可以的,本文将介绍IPSSL证书的应用场景和申请方式。IPSSL证书是什么IPSSL证......
  • Idea常用插件BashSupport Pro - 在 JetBrains IDE中提供高质量的Bash语言支持
    Bash是一种广泛使用但复杂的语言,它有许多难以理解的地方。BashSupportPro通过在JetBrainsIDE中提供高质量的Bash语言支持,可以让您的Bash开发过程变得高效愉悦。它为您提供Bash开发过程中所需的各种功能:完善的代码编辑与格式化体验,强大的运行配置,代码调试器、测试......