Nginx SSL模塊
阿新 • • 發佈:2018-05-29
Nginx openssl SSL和安全
Nginx通過SSL模塊提供安全的HTTP功能,但也提供了另外一個叫Secure Link的模塊。
Nginx通過SSL模塊提供安全的HTTP功能,但也提供了另外一個叫Secure Link的模塊。
SSL模塊
SSL模塊能夠提供HTTPS的支持,尤其是在SSL/TLS上的HTTP。它能夠通過提供證書來給網站提供安全訪問,使用一個證書和下面的指令定義的其他參數就可以實現。
使用環境:http、server ssl ssl on;或ssl off; 在指定服務器開啟HTTPS。該指令相當於對應的listen 443 ssl;或listen port ssl;但不如它們普遍。 ssl_certificate ssl_certificate path; 設置PEM證書的路徑 ssl_certificate_key ssl_certificate path; 設置PEM secret key文件的路徑 ssl_client_certificate ssl_client_certificate path; 設置客戶端PEM certificate的路徑 ssl_dhparam ssl_dhparam path; 設置 Diffie-Hellman參數文件的路徑 ssl_protocols ssl_protocols SSLv2 SSLv3 TSLv1; 指定使用的協議。 ssl_ciphers ssl_ciphers HIGH:!aNULL:!MD5; 指定使用的密碼,密碼可以由openssl ciphers生成 ssl_prefer_server_ciphers ssl_prefer_server_ciphers [ on | off ]; 指定是否服務器密碼優先於客戶端密碼 ssl_verify_client ssl_verify_client [ on | off ]; 開啟校驗客戶端提供的證書 ssl_verify_depth ssl_verify_depth 1; 指定校驗客戶端證書鏈的深度,默認1 ssl_session_cache ssl_session_cache [ off | none | builtin:size | shared:name:size ] 配置用於SSL會話的緩存 ssl_session_timeout ssl_session_timeout 5m; 開啟SSL會話功能後,該指令定義使用會話的期限(超時),默認5分鐘 有效變量: $ssl_cipher 指出當前請求使用的密碼 $ssl_client_serial 指出客戶端證書的序列號 $ssl_protocol 指出當前請求所使用的協議 $ssl_verify 如果客戶端校驗成功,那麽設置該變量為SUCCESS $ssl_client_s_dn和$ssl_client_i_dn 指出客戶端證書的主題(subject)值和客戶端證書發行者DN $ssl_client_cert和$ssl_client_raw_cert 返回客戶端證書數據
默認配置文件
# HTTPS server # #server { # listen 443 ssl; //在指定服務器開啟HTTPS # server_name localhost; # ssl_certificate cert.pem; //設置PEM證書的路徑 # ssl_certificate_key cert.key; //設置PEM secret key文件的路徑 # ssl_session_cache shared:SSL:1m; //配置用於SSL會話的緩存 # ssl_session_timeout 5m; //開啟SSL會話功能後,該指令定義使用會話的期限 # ssl_ciphers HIGH:!aNULL:!MD5; //指定使用的密碼 # ssl_prefer_server_ciphers on; //指定是否服務器密碼優先於客戶端密碼 # location / { # root html; # index index.html index.htm; # } #}
配置HTTPS參考:http://blog.51cto.com/gdutcxh/2113718
Secure link模塊完全與SSL模塊無關,該模塊提供了一個基本的保護,其做法是在允許一個用戶訪問一個資源之前,在URL檢查是否有一個特定的散列值
location /downloads/ {
secure_link_secret "secret";
if (secure_link= "") {
return 403;
}
rewrite ^ /downloads/$secure_link break;
}
通過這個配置,常規訪問 /downloads/下的資源將以403的錯誤碼返回
需要在文件名前帶上MD5的值,MD5(文件名+secure_link_secret 指令值)
Nginx SSL模塊