生成自签名证书脚本

rm *.pem

# 1.生成CA的私钥和自签名证书
openssl req -x509 -newkey rsa:4096 -days 365 -nodes -keyout ca-key.pem -out ca-cert.pem -subj "/C=CH/ST=SiChuan/L=ChengDu/O=Study/OU=Go/CN=Tony/emailAddress=Tony@email.com"

echo "CA's self-signed certificate"
openssl x509 -in ca-cert.pem -noout -text

# 2.生成服务器的私钥和证书签名请求(CSR)
openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem -subj "/C=CH/ST=GuangDong/L=GuangZhou/O=Computer/OU=Go/CN=Harry/emailAddress=Harry@email.com"

# 3.使用CA的私钥签署服务器的CSR并生成签名证书
echo "subjectAltName=DNS:*.study.com,DNS:*.study.org,IP:0.0.0.0" > server-ext.cnf
openssl x509 -req -in server-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile server-ext.cnf

echo "Server's certificate signed by CA"
openssl x509 -in server-cert.pem -noout -text

echo "Verify ca-cert.pem server-cert.pem"
openssl verify -CAfile ca-cert.pem server-cert.pem

# 4.生成客户端的私钥和证书签名请求(CSR)
openssl req -newkey rsa:4096 -nodes -keyout client-key.pem -out client-req.pem -subj "/C=CH/ST=FuJian/L=XiaMen/O=Client/OU=Gopher/CN=Alice/emailAddress=Alice@email.com"

# 5.用CA的私钥签署客户端的CSR并生成签名证书
echo "subjectAltName=DNS:*.client.com,DNS:*.client.org,IP:0.0.0.0" > client-ext.cnf
openssl x509 -req -in client-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile client-ext.cnf

echo "client's certificate signed by CA"
openssl x509 -in client-cert.pem -noout -text

echo "Verify ca-cert.pem client-cert.pem"
openssl verify -CAfile ca-cert.pem client-cert.pem

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Shell脚本中一键生成签名证书来配置Nginx,可以使用OpenSSL工具来完成该任务。以下是一个大致的Shell脚本的示例代码: ```bash #!/bin/bash # 生成签名证书的相关信息 COMMON_NAME="example.com" # 自己的域名或IP地址 COUNTRY="CN" STATE="Beijing" CITY="Beijing" ORGANIZATION="My Organization" ORG_UNIT="IT" PASSWORD="mypassword" # 可选,为证书设置密码 # 生成私钥 openssl genrsa -des3 -out server.key -passout pass:$PASSWORD 2048 # 生成证书签名请求(CSR) openssl req -new -key server.key -out server.csr -passin pass:$PASSWORD -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORG_UNIT/CN=$COMMON_NAME" # 生成签名证书 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt -passin pass:$PASSWORD # 配置Nginx使用自签名证书 cat > /etc/nginx/conf.d/example.conf <<EOF server { listen 443 ssl; server_name $COMMON_NAME; ssl_certificate /path/to/server.crt; ssl_certificate_key /path/to/server.key; # 其他Nginx配置 # ... } EOF # 重启Nginx服务 systemctl restart nginx ``` 上述脚本生成`server.key`和`server.crt`两个文件作为自签名证书。其中,`server.key`是私钥文件,`server.crt`是证书文件。脚本还会将Nginx的配置文件`example.conf`写入到`/etc/nginx/conf.d/`目录下,从而配置Nginx使用生成证书。 请注意,在脚本中需要将`COMMON_NAME`变量设置为自己的域名或IP地址,并根据需要修改其他的证书信息。同时,确保正确设置了Nginx的配置文件路径。 使用该脚本,通过执行`bash script.sh`命令,即可一键生成签名证书并配置Nginx使用该证书

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值