1. 程式人生 > >ssl證書及http2.0

ssl證書及http2.0

https http2

需求:
1.用於https證書上線測試,辦公環境需要通過https測試網站,外部環境全部走http訪問。
2.使用web端進行配置
架構:
nginx +多個tomcat

upstream test {
                server 172.16.9.203:8080 weight=2;
                server 172.16.9.204:8080 weight=2;
                server 172.16.9.205:8080 weight=3;
        }
server {
        listen       80;
        server_name  www.test.com;
       location / {
                proxy_pass http://test/;
                proxy_read_timeout 300;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;

        if ($remote_addr !~ ^172\.16\.9\.226|172\.16\.9\.244) {

#       rewrite ^(.*) https://$host$1 permanent;
        return 302 https://www.test.com$request_uri;
#       error_page 400 https://$host$uri?$args;
        }
        }
}
server {
        listen       443;
        server_name  www.test.com;
        ssl on;
        ssl_certificate /etc/nginx/conf/key/server.pem;
        ssl_certificate_key /etc/nginx/conf/key/server.key;
        ssl_session_timeout  5m;
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
        ssl_prefer_server_ciphers   on;
        location / {
                proxy_pass http://test/;
                proxy_read_timeout 300;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;

       }
      #  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico|js|css)$ {
      #      root /data/tomcat/webapps;
      #      expires      1d;
      #  }

    access_log  /var/log/nginx/www.test.com.access.log  main;

    #error_page  404              /404.html;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local /nginx/html;
    }

    #location ~ /\.ht {                        
    #    deny  all;
    #}
}

需要測試是否成功,一般來說一定會成功,這裏我們做的是302臨時跳轉,如果做永久跳轉可以看註釋的部分。
如果前端有CDN
需要這樣配置(日誌配置main中需要根據CDN供應商返回給的HTTP_X_FORWARDED_FOR來進行配置)

由於,加證書會帶來系統資源的消耗和寬帶的消耗,同時傳輸性能有影響,所以一般加https後,都采用http2.0協議進行通信(http2.0,nginx需要編譯--with-http_v2_module,這個性能方面需要測試,這僅是我的個人猜測。要想了解更多,請查閱http2.0協議)

ssl證書及http2.0