#自己生成ssl证书 这里说下Linux 系统怎么通过openssl命令生成 证书。 首先执行如下命令生成一个key openssl genrsa -des3 -out ssl.key 1024 然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。 由于生成时候必须输入密码。你可以输入后再删掉。 mv ssl.key xxx.key openssl rsa -in xxx.key -out ssl.key rm xxx.key 然后根据这个key文件生成证书请求文件 openssl req -new -key ssl.key -out ssl.csr 以上命令生成时候要填很多东西 一个个看着写吧(可以随便,毕竟这是自己生成的证书) 最后根据这2个文件生成crt证书文件 openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt 这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。 如果需要用pfx 可以用以下命令生成 openssl pkcs12 -export -inkey ssl.key -in ssl.crt -out ssl.pfx 在需要使用证书的nginx配置文件的server节点里加入以下配置就可以了。 ssl on; ssl_certificate /home/ssl.crt; ssl_certificate_key /home/ssl.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; 然后重启nginx就大功告成了 server { listen 80; listen 443 ssl; #server_name example.com; location / { root html; index index.html index.htm; } ssl on; ssl_certificate /root/for_nginx/ssl.crt; ssl_certificate_key /root/for_nginx/ssl.key; } 注: [1] #一键生成证书脚本 #!/bin/bash openssl genrsa -des3 -passout pass:123456 -out ssl.key 2048 mv ssl.key xxx.key openssl rsa -in xxx.key -passin pass:123456 -out ssl.key rm xxx.key openssl req -new -key ssl.key -out ssl.csr -subj "/CN=RootCA/C=CN/ST=Hunan/L=ChangSha/O=MyCompanName/OU=IT" openssl x509 -req -days 3650 -in ssl.csr -signkey ssl.key -out ssl.crt ### rename the file NOW_DATE=`date "+%Y%m%d%H%M%S"` if [ x$1 != x ]; then #Have args NEW_FILE_NAME=$1 else #Not have args NEW_FILE_NAME=$NOW_DATE fi echo $NEW_FILE_NAME mv ssl.crt $NEW_FILE_NAME.crt mv ssl.csr $NEW_FILE_NAME.csr mv ssl.key $NEW_FILE_NAME.key
文/dream_bccb
来源:https://www.cnblogs.com/dream-bccb/p/5373302.html
如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。

