dns劫持和http劫持-增加ssl
阿新 • • 發佈:2019-01-05
簡單介紹一下HTTP劫持和DNS劫持的概念,也就是運營商通過某些方式篡改了使用者正常訪問的網頁,插入廣告或者其他一些雜七雜八的東西。
首先對運營商的劫持行為做一些分析,他們的目的無非就是賺錢,而賺錢的方式有兩種:
1、對正常網站加入額外的廣告,這包括網頁內浮層或彈出廣告視窗;
在具體的做法上,一般分為DNS劫持和HTTP劫持。
DNS劫持:
一般而言,使用者上網的DNS伺服器都是運營商分配的,所以,在這個節點上,運營商可以為所欲為。
例如,訪問http://h5.xgame9.com,正常DNS應該返回公司的的ip,而DNS劫持後,會返回一個運營商的中間伺服器ip。訪問該伺服器會一致性的返回302,讓使用者瀏覽器跳轉到預處理好的帶廣告的網頁,在該網頁中再通過iframe開啟使用者原來訪問的地址。
HTTP劫持:
在運營商的路由器節點上,設定協議檢測,一旦發現是HTTP請求,而且是html型別請求,則攔截處理。後續做法往往分為2種,1種是類似DNS劫持返回302讓使用者瀏覽器跳轉到另外的地址,還有1種是在伺服器返回的HTML資料中插入js或dom節點(廣告)。
在使用者角度,這些劫持的表現分為:
1、網址被無辜跳轉,多了推廣尾巴;
2、頁面出現額外的廣告(iframe模式或者直接同頁面插入了dom節點)。
這麼無賴的方法,真的只有去申請或者買一個證書。
下面是搞出了證書的公鑰和金鑰 linux+nginx環境下配置安裝SSL證書
複製server.key、server.pem檔案到Nginx安裝目錄下的conf目錄。
開啟Nginx安裝目錄下conf目錄中的nginx.conf檔案
找到
將其修改為
儲存退出,並重啟Nginx。
複製server.key、server.pem檔案到Nginx安裝目錄下的conf目錄。
開啟Nginx安裝目錄下conf目錄中的nginx.conf檔案
找到
# HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #}
將其修改為
server { listen 443; server_name localhost; ssl on; ssl_certificate server.pem; ssl_certificate_key server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #啟用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低於要求,請使用 ssl_protocols TLSv1; ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
儲存退出,並重啟Nginx。