給本身的網站加上HTTPS

前言

如今谷歌等廠商大力推行https協議,若是你的網站不支持https,在使用谷歌瀏覽器時,會被警告網站不安全。w(゚Д゚)w,不安全?哪裏不安全了?OK,那我改爲支持https好吧。關於http怎麼不安全,https又怎麼安全了,下篇文章再討論。html

一 申請證書

申請阿里雲免費SSL證書nginx

首先,咱們須要去購買一個SSL證書。目前阿里雲上有免費證書購買,有效期一年。apache

依次點擊完成申請,審覈事後便可在控制檯的SSL證書頁面看到本身的證書了。 選擇須要使用的服務器類型。 瀏覽器

二 安裝證書到服務器

2.1 Tomcat服務器

如上圖所示,點擊對應服務器類型的幫助按鈕能夠查看Tomcat7的證書安裝方法,可是我使用的是Tomcat8,踩了一些坑,在這裏額外說一下。tomcat

  1. 在Server.xml中能夠找到有兩個Connector 端口爲8843的註釋, 一種是使用Http11NioProtocol 另外一種是Http11AprProtocol , 根據註釋咱們使用第一種。
  2. keystoreFile文件路徑的配置,若是按照說明裏面的配置,提示找不到文件。所以能夠配置了絕對地址:/etc/apache-tomcat-8.5.15/cert/xxxx.pfx。
  3. tomcat8 配置ssl的方式是有所改變的,多了SSLHostConfig、Certificate標籤,所以百度上的配置大部分都是不適用的,tomcat啓動是會報錯。這裏附上官網文檔,感興趣能夠自行查看:https://tomcat.apache.org/tomcat-8.5-doc/config/http.html。

基本配置完成後以下:安全

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="D:/apache-tomcat-8.5.15/cert/xxx.pfx"
                         certificateKeystoreType="PKCS12" certificateKeystorePassword="填寫密碼" />
        </SSLHostConfig>
    </Connector>

2.2 Nginx代理

最近我給本身的服務器添加了Nginx代理,因此學習了下Nginx配置Https。若是使用了Nginx來做爲網站入口,那麼Tomcat就沒必要配置SSL證書了。直接配置Nginx的SSL證書便可。服務器

修改Nginx配置文件nginx.conf,將本來的http配置全刪掉,直接改爲重定向到https便可。(除非你想要http和https都支持) 以下:session

server {
        listen       80;
        server_name  erictao2.com www.erictao2.com;

        rewrite ^ https://$http_host$request_uri? permanent;
    }

添加一段配置rewrite ^ https://$http_host$request_uri? permanent;便可重定向到https。 而後再新增一個server配置:學習

server {
        listen       443 ssl;
        server_name  erictao2.com www.erictao2.com;

        ssl_certificate      /etc/nginx/cert/1157188_erictao2.com.pem;
        ssl_certificate_key  /etc/nginx/cert/1157188_erictao2.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        if ($host != 'www.erictao2.com'){
        rewrite ^/(.*)$ www.erictao2.com/$1 permanent;
        }

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://127.0.0.1:8080/;
        }
    }

將其中的ssl_certificatessl_certificate_key改爲本身對應的文件便可。而後重載Nginx配置,輸入命令nginx -s reload網站

完成以上步驟後,再次訪問本身的網站就能看到url上多了https,谷歌瀏覽器也認可你的網站是安全網站了。

相關文章
相關標籤/搜索