NGINX主機(jī)一個(gè)站點(diǎn)開(kāi)啟SSL證書后其他站點(diǎn)域名訪問(wèn)錯(cuò)亂怎么解決?
日期 2024-05-13 / 人氣 537 / 欄目: 新聞動(dòng)態(tài) 常見(jiàn)問(wèn)題
NGINX主機(jī)一個(gè)站點(diǎn)開(kāi)啟SSL證書后其他站點(diǎn)域名訪問(wèn)錯(cuò)亂怎么解決?在我們阿里云服務(wù)器NGINX主機(jī)上,如果你在一個(gè)Nginx服務(wù)下配置多個(gè)vhost域名站點(diǎn),為其中一個(gè)站點(diǎn)的域名啟用 HTTPS 訪問(wèn)協(xié)議之后,發(fā)現(xiàn)百度統(tǒng)計(jì)的實(shí)時(shí)訪客或入口頁(yè)中,存在一些來(lái)自其它域名的請(qǐng)求。即通過(guò)
https://some-other-domain.com/some-url 來(lái)訪問(wèn)對(duì)應(yīng)的 https://www.domain.com/some-url
結(jié)果就是 Google 瀏覽器顯示了一個(gè)安全警告頁(yè)面,認(rèn)為這是一個(gè)不安全的網(wǎng)頁(yè)。可是我們只配置了 www.domain.com 的 SSL 證書,其他域名并沒(méi)有配置啊。
最嚴(yán)重的問(wèn)題是,搜素引擎的爬蟲(chóng)就不能正常訪問(wèn)正確的域名了。
接下來(lái)萬(wàn)維景盛小編為您介紹如何解決這一問(wèn)題,
首先,我們來(lái)理一下概念: 1)理解空主機(jī)頭,正是空主機(jī)頭沒(méi)有得當(dāng)配置而導(dǎo)致的; 2)網(wǎng)站訪問(wèn)的順序:域名=>IP=>端口=>服務(wù);
nginx既是一個(gè)高性能高并發(fā)的Web服務(wù)器,同時(shí)也是做反向代理的優(yōu)選工具, 當(dāng)我們部署該工具時(shí),默認(rèn)配置(nginx.conf)中的server塊,在不指定server_name的情況下,可以匹配任意指向該服務(wù)器的域名,即,只要你將域名做A記錄指向該服務(wù)器的IP或Cname,便可“克隆”該服務(wù)器上的defalut_server。
我們知道nginx中的vhost是依賴server_name來(lái)路由的,但,端口也可起到相同的作用。
因此,當(dāng)我們?yōu)関host配置了https后,非該vhost綁定的server_name(假設(shè)為: some-other-domain.com),通過(guò)https協(xié)議進(jìn)行被訪問(wèn)時(shí),由于空主機(jī)頭并未能設(shè)置,因此,也就無(wú)法攔截,這時(shí)some-other-domain.com被看作為IP使用,請(qǐng)求將轉(zhuǎn)發(fā)到 當(dāng)前服務(wù)器IP:443,監(jiān)聽(tīng)443的default_server(www.domain.com) 自然就返回了內(nèi)容。
搞清概念上的問(wèn)題就好辦了,配置空主機(jī)頭即可,讓沒(méi)有明確綁定server_name的域名,一律攔截。
具體配置如下:打開(kāi) /usr/local/nginx/conf/nginx.conf 配置文件,修改或添加默認(rèn)vhost
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | server { listen 80 default_server; listen 443 ssl http2; servername ; server_name_in_redirect off; ssl_certificate /path/ssl_cert/ssl .pem; ssl_certificate_key /path/ssl_cert/ssl .key; error_page 401 402 403 404 /40x .html; location = /40x .html { root html; } location / { return 404; } } |
通過(guò)以上配置完成以后,即便你的阿里云服務(wù)器上有再多的站點(diǎn)域名,https啟用后也不會(huì)出現(xiàn)訪問(wèn)錯(cuò)亂的情況了。
轉(zhuǎn)載整理本文請(qǐng)注明出處【通聯(lián)臺(tái)州網(wǎng)站建設(shè)中心】
標(biāo)簽:NGINX NGINX主機(jī) SSL證書 訪問(wèn)協(xié)議