生成自签名证书
先把用到的命令行放上来方便备查:
如不需要私钥密码,则删掉 -des3 参数即可
自签名:
# 1.生成私钥
$ openssl genrsa -out server.key 2048
# 2.生成 CSR (Certificate Signing Request)
$ openssl req -subj "/C=CN/ST=Tianjin/L=Tianjin/O=Mocha/OU=Mocha Software/CN=test.test.com/emailAddress=test@test.com" -new -key server.key -out server.csr
# 3.生成自签名证书
$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
私有 CA 签名:
# 1.创建 CA 私钥
$ openssl genrsa -out ca.key 2048
# 2.生成 CA 的自签名证书
$ openssl req -subj "/C=CN/ST=Tianjin/L=Tianjin/O=Mocha/OU=Mocha Software/CN=Server CA/emailAddress=test@test.com" -new -x509 -days 3650 -key ca.key -out ca.crt
# 3.生成需要颁发证书的私钥
$ openssl genrsa -out server.key 2048
# 4.生成要颁发证书的证书签名请求,证书签名请求当中的 Common Name 必须区别于 CA 的证书里面的 Common Name
$ openssl req -subj "/C=CN/ST=Tianjin/L=Tianjin/O=Mocha/OU=Mocha Software/CN=test.test.com/emailAddress=test@test.com" -new -key server.key -out server.csr
# 5.用 2 创建的 CA 证书给 4 生成的 签名请求 进行签名
$ openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
注:
- 指定证书数据内容
CN(company name) 内容为需要配置https域名
-subj /C=CN/ST=Guangdong/L=Shenzhen/O=PAX/OU=Common Software/CN=Server CA/emailAddress=test@test.com
- 去掉 key 加密的输入提示:去掉 -des3
- 不提问:使用 -batch 参数
2、配置nginx https
- 80/443端口
server {
listen 80;
listen 443 ssl;
server_name example.com;
ssl on;
ssl_certificate /etc/ssl/private/example_com.crt;
ssl_certificate_key /etc/ssl/private/example_com.key;
}
- 检查配置并重载配置
sudo nginx -t && sudo nginx -s reload
网友评论