Nginx配置單項SSL以及雙向SSL

Https安全協議的由來? 在實現 HTTPS協議前,咱們須要瞭解 SSL 協議,但其實咱們如今使用的更多的是 TLS 加密通信協議。 那麼TLS是怎麼保證實文消息被加密的呢?在OSI七層模型中,應用層是http協議,那麼在應用層協議之下,咱們的表示層,也就是 SSL 協議所發揮做用的一層,它經過(握手、交換祕鑰、告警、加密)等方式,使應用層 HTTP 協議沒有感知的狀況下作到了數據的安全加密。 php

#####Nginx配置示例(單向)html

server {
    listen 443 ssl;
    server_name www.oldxu.com;
    index index.html index.php;
    root /code;
    ssl on;
    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!eNULL;
    ssl_prefer_server_ciphers on;
    ...
}

#####Nginx配置雙向認證算法

單向認證,僅僅是客戶端須要檢驗服務端證書是不是正確的,而服務端不會檢驗客戶端證書是不是正確的。 雙向認證,指客戶端驗證服務器端證書,而服務器也須要經過CA的公鑰證書來驗證客戶端證書。windows

雙向驗證的過程: 1.客戶端say hello 服務端 2.服務端將證書、公鑰等發給客戶端 3.客戶端CA驗證證書,成功繼續、不成功彈出選擇頁面 4.客戶端將本身的證書和公鑰發送給服務端 5.服務端驗證客戶端證書,如不經過直接斷開鏈接 6.客戶端告知服務端所支持的加密算法 7.服務端選擇最高級別加密算法使用客戶端公鑰加密後發送給客戶端 8.客戶端收到後使用私鑰解密並生成隨機對稱密鑰key,使用服務端公鑰加密發送給服務端 9.服務端使用私鑰解密,獲取對稱密鑰key 10.後續客戶端與服務端使用該密鑰key進行加密通訊瀏覽器

#####服務端操做

server {
    listen 443 ssl;
    server_name www.oldxu.com;
    index index.html index.php;
    root /code;
    ssl on;
    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!eNULL;
    ssl_prefer_server_ciphers on;
   
    ssl_client_certificate ca.crt; //這裏的ca.crt是根證書公鑰文件
    ssl_verify_client on;
    ...
}


#####客戶端(瀏覽器)操做
若是不進行如下操做,瀏覽器會出現400錯誤。400 Bad Request(No required SSL certificate was sent)

# cd /etc/pki/ca_test/client
# openssl genrsa -out  client.key  //生成私鑰文件
# openssl req -new  -key client.key -out client.csr  //生成請求文件,填寫信息須要和ca.csr中的Organization Name保持一致

# openssl ca -in client.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out client.crt -days 3650 
//簽名client.csr, 生成client.crt,此步若是出現


#1.將client.key轉換爲pfx(p12)格式
# cd /etc/pki/ca_test/client
# openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx  //這一步須要輸入一個自定義密碼,一會在windows上安裝的時候要用到,須要記一下。

#2.將client.pfx拷貝到windows下,雙擊便可安裝。
相關文章
相關標籤/搜索