nginx域名怎么驗(yàn)證 nginx配置域名訪問到指定頁面

NGINX 配置 SSL 雙向認(rèn)證

對于 NGINX 的 HTTPS 配置,通常情況下我們只需要實(shí)現(xiàn)服務(wù)端認(rèn)證就行,因?yàn)闉g覽器內(nèi)置了一些受信任的證書頒發(fā)機(jī)構(gòu)(CA),服務(wù)器端只需要拿到這些機(jī)構(gòu)頒發(fā)的證書并配置好,瀏覽器會自己校驗(yàn)證書的可用性并通過 SSL 進(jìn)行通訊加密。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了貴池免費(fèi)建站歡迎大家使用!

但特殊情況下我們也需要對客戶端進(jìn)行驗(yàn)證,只有受信任的客戶端才能使用服務(wù)接口,此時我們就需要啟用雙向認(rèn)證來達(dá)到這個目的,只有 當(dāng)客戶端請求帶了可用的證書才能調(diào)通服務(wù)端接口 。

CA 與自簽名

CA 是權(quán)威機(jī)構(gòu)才能做的,并且如果該機(jī)構(gòu)達(dá)不到安全標(biāo)準(zhǔn)就會被瀏覽器廠商“封殺”,前不久的沃通、StartSSL 就被 Mozilla、Chrome 封殺了。不過這并不影響我們進(jìn)行雙向認(rèn)證配置,因?yàn)槲覀兪亲越?CA 的..

為了方便,我們就在 NGINX 的目錄下進(jìn)行證書相關(guān)制作:

cd /etc/nginx

mkdir ssl

cd ssl

制作 CA 私鑰

openssl genrsa -out ca.key 2048

制作 CA 根證書(公鑰)

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

注意:

Common Name 可以隨意填寫

其他需要填寫的信息為了避免有誤,都填寫 . 吧

服務(wù)器端證書

制作服務(wù)端私鑰

openssl genrsa -out server.pem 1024

openssl rsa -in server.pem -out server.key

生成簽發(fā)請求

openssl req -new -key server.pem -out server.csr

注意:

Common Name 得填寫為訪問服務(wù)時的域名,這里我們用 usb.dev 下面 NGINX 配置會用到

其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)

用 CA 簽發(fā)

openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

客戶端證書

和服務(wù)端證書類似:

注意:

Common Name可以隨意填寫

其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)

至此需要的證書都弄好了,我們可以開始配置 NGINX 了。

其中 ssl_client_certificate /etc/nginx/ssl/ca.crt; 的意思是使用 CA 證書來驗(yàn)證請求帶的客戶端證書是否是該 CA 簽發(fā)的。

配置好后就就重新加載 NGINX 吧:

service nginx reload

好了,下面我們可以開始驗(yàn)證了。

請求驗(yàn)證

驗(yàn)證過程可以選擇在其他機(jī)器或是本機(jī),為了能夠解析 usb.dev,還需要配置一下 /etc/hosts:

127.0.0.1 usb.dev

如果用瀏覽器驗(yàn)證,需要把客戶端證書導(dǎo)出成 p12 格式的,這里略過。我們重點(diǎn)是通過 curl 進(jìn)行驗(yàn)證:

curl --insecure --key client.key --cert client.crt ' '

其中 --insecure 是忽略自建 CA 的非權(quán)威性。如果你驗(yàn)證正常那說明你運(yùn)氣好,因?yàn)檫@里有個 深坑:某些版本的 curl 會報(bào)錯:

這些報(bào)錯版本的 curl 居然要嚴(yán)格要求 --cert 實(shí)參的路徑要完全正確,比如當(dāng)前目錄下面要用 --cert ./client.crt,用 --cert client.crt 是錯誤的。爬坑過程是啟用了 -v 參數(shù)來觀察完整的過程,發(fā)現(xiàn)其中有一條告警:

轉(zhuǎn)自:

怎么驗(yàn)證nginx配置域名ssl證書成功

配置完成后重啟服務(wù)器,然后用https訪問來測試是否配置成功。Nginx配置SSL參考教材

nginx動態(tài)域名解析

原文鏈接:

接 上篇文章 中提到的 Nginx 解析域名地址的問題,用一句話描述就是“proxy_pass 中如果配置的是域名地址,Nginx 只有在 start / restart / reload 時,才會連接一次域名服務(wù)器解析域名,緩存解析的結(jié)果,后續(xù)則 不會根據(jù)解析結(jié)果的 TTL 進(jìn)行自動更新 ”,如果遇到了域名地址配置有多個 IP ,且還在動態(tài)變化,那就會出現(xiàn) Nginx 把請求轉(zhuǎn)發(fā)到一個過期的 IP 地址的情況,連接超時的報(bào)錯日志類似這樣:

這個說法在 官方的一篇 2016 年的博客 中有提到:

除此之外,除了一些分析源碼的網(wǎng)絡(luò)文章,暫時還沒有找到其他的官方文檔中說到這個細(xì)節(jié)

在 upstream 中可以對上游的服務(wù)器進(jìn)行更詳細(xì)的設(shè)置,解決 DNS 緩存的問題可以在 upstream 中指定需要的負(fù)載均衡算法,比如 least_conn ,并指定 max_fails ,以實(shí)現(xiàn)調(diào)用失敗 N 次之后判定該服務(wù)異常,暫停轉(zhuǎn)發(fā)該服務(wù)

注:

這個配置的示例是官方博客中的,看到這個配置時覺得有點(diǎn)奇怪,自己進(jìn)行了模擬測試,測試的方案是在 hosts 文件中配置一個模擬的域名與三個 IP 地址,其中兩個 IP 是正確的,另一個是內(nèi)網(wǎng)不存在的 IP,測試的結(jié)果就是 Nginx 始終會將請求轉(zhuǎn)發(fā)到那個錯誤的 IP 去,日志中一直能看到超時的報(bào)錯,配置的 max_fails 仿佛沒有任何作用(有補(bǔ)充配置了 fail_timeout ,也嘗試配置了 proxy_next_upstream 、 proxy_next_upstream_timeout 和 proxy_next_upstream_tries )

不清楚用 hosts 配置的方式是不是必然會出現(xiàn)這樣的情況,因?yàn)槟壳皼]條件測試真正想要的場景,所以不敢說博客中的這種配置是錯的【如果以后碰巧有條件能測試驗(yàn)證,再回頭來更新

最初學(xué)習(xí) Nginx 的時候測試過 max_fails 這個配置,當(dāng)時在 upstream 里配置的都是一些 IP 地址的上游服務(wù)。再次按 IP 地址進(jìn)行測試,在 upstream 中配置兩個正確的 IP 地址 和一個錯誤的 IP 地址,發(fā)現(xiàn)這樣的配置就是能生效的,失敗一定次數(shù)之后(實(shí)際失敗的次數(shù)比設(shè)置的 max_fails 多,不清楚什么原因),Nginx 在 fail_timeout 時間內(nèi)就不再轉(zhuǎn)發(fā)請求到那個錯誤的 IP

resolver 的配置詳情可看 官方文檔 ,示例的配置是指定 DNS 服務(wù)器 10.0.0.2,指定 DNS 解析的有效時間為 10 秒,按博客 《Nginx動態(tài)解析upstream域名》 中博主的測試,不是說 Nginx 每過 10 秒會自己重新調(diào)一次 DNS 解析,而是有請求轉(zhuǎn)發(fā)時才檢驗(yàn)一次有效期是否過期

不配置 valid 選項(xiàng)時,V1.1.9 之后的 Nginx 默認(rèn)會使用 DNS 解析結(jié)果中的 TTL

在 proxy_pass 中使用變量,帶來的作用就是在 TTL 過期時能再次調(diào)用 DNS 解析,從而解決一直使用緩存結(jié)果的問題

這大概是目前官方原版唯一解決 DNS 緩存的解決方案了,帶來的弊端也如 《Nginx動態(tài)解析upstream域名》 的博主所說,不能使用 upstream 模塊特有的相關(guān)配置

Nginx Plus 版有更好的配置解決這些問題,另外使用 Lua 插件或許也能更完美的解決這個問題,暫時就沒什么研究了

nginx 域名配置

Nginx 多域名配置 - Rickzhai - 博客園

首先打開nginx域名配置文件存放目錄:/usr/local/nginx/conf/servers ,如要綁定域名 則在此目錄建一個文件: 然后在此文件中寫規(guī)則,如:

server{

listen 80;

server_name ;?#綁定域名

index index.htm index.html index.php;?#默認(rèn)文件

root?/home/www/itblood點(diǎn)抗 ;?#網(wǎng)站根目錄

include location.conf;?#調(diào)用其他規(guī)則,也可去除

}

然后重起nginx服務(wù)器,域名就綁定成功了nginx服務(wù)器重起命令:/etc/init.d/nginx restart

當(dāng)前名稱:nginx域名怎么驗(yàn)證 nginx配置域名訪問到指定頁面
網(wǎng)頁URL:http://www.muchs.cn/article42/ddehphc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作云服務(wù)器、App設(shè)計(jì)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)