1. 程式人生 > >dns劫持和http劫持-增加ssl

dns劫持和http劫持-增加ssl

  簡單介紹一下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檔案
找到
    # 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。