前言
現(xiàn)在谷歌等廠商大力推行https協(xié)議,如果你的網(wǎng)站不支持https嗦董,在使用谷歌瀏覽器時(shí)母谎,會(huì)被警告網(wǎng)站不安全。w(?Д?)w京革,不安全奇唤?哪里不安全了?OK匹摇,那我改成支持https好吧咬扇。關(guān)于http怎么不安全,https又怎么安全了廊勃,下篇文章再討論懈贺。
一 申請(qǐng)證書
申請(qǐng)阿里云免費(fèi)SSL證書
首先,我們需要去購買一個(gè)SSL證書坡垫。目前阿里云上有免費(fèi)證書購買梭灿,有效期一年。
依次點(diǎn)擊完成申請(qǐng)葛虐,審核過后即可在控制臺(tái)的SSL證書頁面看到自己的證書了胎源。
選擇需要使用的服務(wù)器類型。
二 安裝證書到服務(wù)器
2.1 Tomcat服務(wù)器
如上圖所示屿脐,點(diǎn)擊對(duì)應(yīng)服務(wù)器類型的幫助按鈕可以查看Tomcat7的證書安裝方法涕蚤,但是我使用的是Tomcat8,踩了一些坑的诵,在這里額外說一下万栅。
- 在Server.xml中可以找到有兩個(gè)Connector 端口為8843的注釋, 一種是使用Http11NioProtocol 另一種是Http11AprProtocol 西疤, 根據(jù)注釋我們使用第一種烦粒。
- keystoreFile文件路徑的配置,如果按照說明里面的配置代赁,提示找不到文件扰她。因此可以配置了絕對(duì)地址:/etc/apache-tomcat-8.5.15/cert/xxxx.pfx。
- tomcat8 配置ssl的方式是有所改變的芭碍,多了SSLHostConfig徒役、Certificate標(biāo)簽,因此百度上的配置大部分都是不適用的,tomcat啟動(dòng)是會(huì)報(bào)錯(cuò)窖壕。這里附上官網(wǎng)文檔忧勿,感興趣可以自行查看: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代理
最近我給自己的服務(wù)器添加了Nginx代理,所以學(xué)習(xí)了下Nginx配置Https鸳吸。如果使用了Nginx來作為網(wǎng)站入口熏挎,那么Tomcat就不必配置SSL證書了。直接配置Nginx的SSL證書即可晌砾。
修改Nginx配置文件nginx.conf坎拐,將原本的http配置全刪掉,直接改成重定向到https即可贡羔。(除非你想要http和https都支持)
如下:
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廉白。
然后再新增一個(gè)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_certificate
和ssl_certificate_key
改成自己對(duì)應(yīng)的文件即可。然后重載Nginx配置乖寒,輸入命令nginx -s reload
猴蹂。
完成以上步驟后,再次訪問自己的網(wǎng)站就能看到url上多了https楣嘁,谷歌瀏覽器也承認(rèn)你的網(wǎng)站是安全網(wǎng)站了磅轻。