nginx如何配置ssl

單向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)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享