PHP程序員玩轉(zhuǎn)Linux系列 Nginx中的HTTPS詳解
PHP程序員玩轉(zhuǎn)Linux系列文章:
1.PHP程序員玩轉(zhuǎn)Linux系列-怎么安裝使用CentOS
2.PHP程序員玩轉(zhuǎn)Linux系列-lnmp環(huán)境的搭建
3.PHP程序員玩轉(zhuǎn)Linux系列-搭建FTP代碼開(kāi)發(fā)環(huán)境
4.PHP程序員玩轉(zhuǎn)Linux系列-備份還原MySQL
5.PHP程序員玩轉(zhuǎn)Linux系列-自動(dòng)備份與SVN
6.PHP程序員玩轉(zhuǎn)Linux系列-Linux和Windows安裝nginx
7.PHP程序員玩轉(zhuǎn)Linux系列-nginx初學(xué)者引導(dǎo)
創(chuàng)建一個(gè)HTTPS服務(wù)器
在nginx.conf配置文件中,在server塊里面通過(guò)listen指令指定ssl的參數(shù),設(shè)置好服務(wù)器證書和私鑰文件的路徑
server { listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ... }
服務(wù)器證書是一個(gè)公開(kāi)實(shí)體,它會(huì)被發(fā)送給每一個(gè)連接過(guò)來(lái)的客戶端.私鑰是一個(gè)安全實(shí)體,它應(yīng)該被存儲(chǔ)在一個(gè)限制權(quán)限的文件中.但是nginx的master進(jìn)程必須能夠讀到該私鑰文件. 私鑰也可以和證書放在一個(gè)文件里面.
ssl_certificate www.example.com.cert; ssl_certificate_key www.example.com.cert;
在這個(gè)例子里面,文件的訪問(wèn)權(quán)限應(yīng)該被限制.盡管證書和私鑰在一個(gè)文件里面,只有證書會(huì)被發(fā)送給客戶端.
ssl_protocols 和ssl_ciphers 指令可以被用來(lái)限制連接,只包含高版本的TLS和SSL/TLS的密碼
從nginx 1.0.5版本開(kāi)始,nginx默認(rèn)使用ssl_protocols SSLv3 TLSv1和ssl_ciphers HIGH:!aNULL:!MD5.從nginx 1.1.13 和 1.0.12 版本開(kāi)始,默認(rèn)更新成了 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2
一個(gè)單一的HTTP和HTTPS服務(wù)
可以配置一個(gè)服務(wù)同時(shí)支持HTTP和HTTPS請(qǐng)求, 在虛擬主機(jī)中使用listen指令,一個(gè)帶著ssl參數(shù),一個(gè)不帶參數(shù).
server { listen 80; listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ... }
在nginx 0.7.13和更早的版本中,SSL不能被單獨(dú)設(shè)置監(jiān)聽(tīng)socket.只能通過(guò)ssl指令為全部server開(kāi)啟SSL,才能實(shí)現(xiàn)HTTP/HTTPS同時(shí)支持.為了解決這一問(wèn)題,為listen指令添加了ssl參數(shù).因此在0.7.14和之后的版本中,ssl指令不能再用了.
基于名稱的HTTPS服務(wù)
一個(gè)很普遍的問(wèn)題出現(xiàn)了,那就是解決當(dāng)在一個(gè)ip地址配置監(jiān)聽(tīng)兩個(gè)或多個(gè)HTTPS服務(wù).
server { listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.crt; ... } server { listen 443 ssl; server_name www.example.org; ssl_certificate www.example.org.crt; ... }
使用這個(gè)配置,瀏覽器只能接收到默認(rèn)的證書,在這個(gè)例子中就是www.example.com證書.這個(gè)是因?yàn)镾SL協(xié)議本身造成的.SSL的連接是在瀏覽器發(fā)送HTTP請(qǐng)求之前建立的,因此nginx不知道請(qǐng)求的名稱.所以它只能提供默認(rèn)服務(wù)的證書.
解決這一問(wèn)題最好的方式是分配不同的IP地址給每一個(gè)HTTPS服務(wù)
server { listen 192.168.1.1:443 ssl; server_name www.example.com; ssl_certificate www.example.com.crt; ... } server { listen 192.168.1.2:443 ssl; server_name www.example.org; ssl_certificate www.example.org.crt; ... }
使用多個(gè)名稱生成SSL證書
這里有其他的方式解決上面的問(wèn)題,但是每一種都有各自的缺點(diǎn).一種方式是生成證書的時(shí)候更改SubjectAltName字段,比如: www.example.com 和 www.example.org 兩個(gè),但是這個(gè)字段有長(zhǎng)度限制.
另一種方式是證書名稱那里使用通配符,比如: *.example.org,但是 通配符名稱只能用在一級(jí)子域名上.這個(gè)名稱可以匹配www.example.org ,但是不能匹配example.org或 www.sub.example.org
這兩種方式可以結(jié)合起來(lái),在SubjectAltName字段里填上 example.org 和 *.example.org
最好把多域名證書和私鑰放在配置http塊中,這樣所有的服務(wù)都可以繼承這個(gè)配置
ssl_certificate common.crt; ssl_certificate_key common.key; server { listen 443 ssl; server_name www.example.com; ... } server { listen 443 ssl; server_name www.example.org; ... }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解阿里云LINUX服務(wù)器配置HTTPS(NGINX)
- Linux shell實(shí)現(xiàn)HTTP服務(wù)示例代碼
- Linux下nginx配置https協(xié)議訪問(wèn)的方法
- Linux下SVN服務(wù)器同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式且使用相同的訪問(wèn)權(quán)限賬號(hào)
- Linux服務(wù)器nginx訪問(wèn)日志里出現(xiàn)大量http 400錯(cuò)誤的請(qǐng)求分析
- Linux下Web性能壓力測(cè)試工具h(yuǎn)ttp_load使用教程
- Linux下模擬http的get/post請(qǐng)求(curl or wget)詳解
相關(guān)文章
bug分支和feature分支_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了bug分支和feature分支,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Linux學(xué)習(xí)之CentOS(二十二)--進(jìn)入單用戶模式下修改Root用戶的密碼
這篇文章主要介紹了Linux學(xué)習(xí)之CentOS(二十二)--進(jìn)入單用戶模式下修改Root用戶的密碼,有需要的可以了解一下。2016-11-11查看linux ssh服務(wù)信息及運(yùn)行狀態(tài)方法
今天小編就為大家分享一篇查看linux ssh服務(wù)信息及運(yùn)行狀態(tài)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07詳解Ubuntu 16.04 幾個(gè)國(guó)內(nèi)更新源
本篇文章主要介紹了詳解Ubuntu 16.04 幾個(gè)國(guó)內(nèi)更新源,可以在軟件更新中選擇源,一起跟隨小編過(guò)來(lái)看看吧2017-04-04CentOS7?minimal?最小化安裝網(wǎng)絡(luò)設(shè)置過(guò)程
這篇文章主要介紹了CentOS7?minimal?最小化安裝網(wǎng)絡(luò)設(shè)置過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Linux查看分區(qū)文件系統(tǒng)類型的方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于Linux查看分區(qū)文件系統(tǒng)類型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08