自己生成nginx的https證書


#自己生成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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM