單向SSL配置實(shí)例:
server{ listen 443 ssl; server_name www.123.com; root /data/wwwroot/www.123.com/ ; index index.html ; 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; location / { } }
配置說明:
1. 443端口為ssl監(jiān)聽端口。 2. ssl on表示打開ssl支持。 3. ssl_certificate指定crt文件所在路徑,如果寫相對路徑,必須把該文件和nginx.conf文件放到一個(gè)目錄下。 4. ssl_certificate_key指定key文件所在路徑。 5. ssl_protocols指定SSL協(xié)議。 6. ssl_ciphers配置ssl加密算法,多個(gè)算法用:分隔,ALL表示全部算法,!表示不啟用該算法,+表示將該算法排到最后面去。 7. ssl_prefer_server_ciphers 如果不指定默認(rèn)為off,當(dāng)為on時(shí),在使用SSLv3和TLS協(xié)議時(shí),服務(wù)器加密算法將優(yōu)于客戶端加密算法。
注意:
nginx在源碼安裝的時(shí)候,默認(rèn)沒有開啟ssl模塊,需要重新編譯安裝,安裝命令如下:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
然后重啟nginx
雙線SSL配置示例
server{ listen 443 ssl; server_name www.123.com; root /data/wwwroot/www.123.com/ ; index index.html ; 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; location / { } }
說明:
就是比單向多了加粗的倆行,但是配置了雙向后,服務(wù)器還要對客戶端的證書進(jìn)行認(rèn)證,一般情況下,我們單向SSL使用較為普遍。
注:
因?yàn)槲覀兊淖C書為自建CA簽發(fā)的證書,瀏覽器并不信任該證書,所以在訪問的時(shí)候會(huì)提示“證書不受信任”。
這種情況,只需要把CA的根證書導(dǎo)入到瀏覽器中 “受信任的根證書頒發(fā)機(jī)構(gòu)” 中就不會(huì)再提示 “證書不受信任”。
導(dǎo)出為windows可用的證書方式如下:
[root@localhost root_ca]# openssl pkcs12 -export -inkey private/ca.key -in
導(dǎo)出的證書復(fù)制到windows上,雙擊安裝,按照向?qū)?dǎo)入到?“受信任的根證書頒發(fā)機(jī)構(gòu)” ,即可。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END