給tomcat部署的網站配置https
阿新 • • 發佈:2018-10-31
場景
公司ios開發需要服務api都基於https,所以最近摸索了一下。
伺服器部署在阿里雲上,本來想直接找let encrypt 或者 trustAisa 的免費證書。但是搜了一些部落格發現,阿里雲伺服器配置第三方的CA證書,還需要在阿里雲上配置一箇中間證書,感覺這樣不太好,剛好阿里雲官網也提供免費的CA證書,所以直接使用阿里雲的。如下圖所示。
配置方法
購買好免費的服務大概半小時證書就會簽發,在後臺介面可以看到官網文件,nginx,tomcat,apache,IIS各種都有。
我們看到tomcat裡有三個步驟,其實這是個坑,因為不需要那麼麻煩,直接用步驟2即可。
從阿里雲後臺下載好證書檔案,把pfx字尾的檔案複製到新建的tomcat/conf/cert目錄下。
然後修改conf目錄下的server.xml檔案,新增如下內容:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/214532761540893.pfx"
keystoreType="PKCS12"
keystorePass="你的證書密碼在pfx-password.txt檔案內"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers ="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
另外將8080埠改為80,redirectPort埠8443改為443。
還要將http的url跳轉至https
在web.xml末尾加上如下配置:
<security-constraint >
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
重啟Tomcat服務大功告成。