shell nginx 自签证书一键生成
时间: 2023-10-13 18:03:22 浏览: 208
在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使用该证书。
阅读全文