自簽名證書頒發及驗證

1.使用openSSL生成證書
一個根SSL證書是由頒發的證書信任的證書頒發機構(CA) 。
生成一個RSA-2048密鑰並保存到一個文件rootCA.key。該文件將被用作生成根SSL證書的密鑰。
命令:openssl genrsa -des3 -out rootCA.key 2048
您可以使用您生成的密鑰來創建新的根SSL證書。並將其保存爲rootCA.pem。
命令:openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
自簽名證書頒發及驗證
對應輸入的密碼爲:12345678

2.使用根SSL生成域SSL證書
創建一個新的OpenSSL配置文件,server.csr.cnf以便在創建證書時可以導入這些設置。

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=CN
L=Beijing
O=Senseshield
CN = Virbox SS Dom CA

創建v3.ext文件,以創建一個x509 v3證書。指定subjectAltName選項。

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
DNS.2 = test.sensese.com 

創建server.key,使用存儲在配置設置server.csr.cnf
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <(cat server.csr.cnf)

證書籤名通過我們創建的根SSL證書頒發,創建一個localhost及testsensese.com的域名證書。輸出一個名爲server,crt的證書文件。
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 3650 -sha256 -extfile v3.ext
3.驗證頒發的域證書是否生效。
搭建nginx,配置nginx.conf。配置內容如下:

 server {
        listen 80 default;
        server_name test.sensese.com;#這個根據上文中創建v3.ext文件定義的DNS.2 = test.sensese.com來填寫
        rewrite ^(.*)$  https://$host$1 permanent;
     }
    server {
    listen 443 ssl http2;#https默認使用443端口
    server_name test.sensese.com; 
    #ssl on;
    ssl_certificate /etc/nginx/key/server.crt; #這個即上文生成的域證書
    ssl_certificate_key /etc/nginx/key/server.key; #這個即上文生成的域證書祕鑰。
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;

        include /etc/nginx/default.d/*.conf;

        location / {
         root         /usr/share/nginx/html;
         index        index.html  index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

隨後在window上的瀏覽器訪問,在訪問前需要在window系統的證書界面中導入上文生成的SSL根證書。
Ctr+R ==》cmd==》 certmgr.msc,彈出如下:`
自簽名證書頒發及驗證
按順序執行:右擊【受信任的根證書頒發機構】-【所有任務】-【導入】-【證書導入嚮導】,導入rootCA.pem即完成。
最後,在本地配置host,即添加192.168.100.103 test.sensese.com;
192.168.100.103爲nginx地址(根據自己實際nginx配置)
用ie瀏覽器訪問頁面test.sensese.com正常打開,同時也跳轉到https.
自簽名證書頒發及驗證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章