一、證書申請及管理 web
對於已經擁有域名及公網服務器的用戶,能夠經過騰訊雲申請TrustAsia DV SSL CA證書,證書申請流程包含填寫基本信息和域名認證兩步,很是清晰和簡單,沒有什麼須要過多描述的。瀏覽器
證書申請及域名認證完成後,便可以證書管理界面下載證書tomcat
二、服務器端證書部署安全
下載的文件是一個壓縮文件包,解壓後能夠看到分別有Apache、IIS、Ngnix、Tomcat四個不一樣的目錄分別對應相應的WEB服務部署環境,下面以Tomcat爲例進行說明。服務器
(2.1)安裝證書app
配置SSL鏈接器,將解壓後tomcat目錄中的www.domain.com.jks
文件存放到tomcat安裝目錄的conf目錄下,而後配置同目錄下的server.xml
文件:dom
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf\www.domain.com.jks"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
注:網站
配置文件參數 | 說明 |
---|---|
clientAuth | 若是設爲true,表示Tomcat要求全部的SSL客戶出示安全證書,對SSL客戶進行身份驗證 |
keystoreFile | 指定keystore文件的存放位置,能夠指定絕對路徑,也能夠指定相對於<catalina_home> (Tomcat安裝目錄)環境變量的相對路徑。若是此項沒有設定,默認狀況下,Tomcat將從當前操做系統用戶的用戶目錄下讀取名爲 「.keystore」的文件。 |
keystorePass | 密鑰庫密碼,指定keystore的密碼。(若是申請證書時有填寫私鑰密碼,密鑰庫密碼即私鑰密碼) |
sslProtocol | 指定套接字(Socket)使用的加密/解密協議,默認值爲TLS |
(2.2)http自動跳轉https的安全配置加密
到conf目錄下的web.xml。在</welcome-file-list>
後面,</web-app>
,也就是倒數第二段裏,加上這樣一段:url
<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>
這步目的是讓非ssl的connector跳轉到ssl的connector去。因此還須要前往server.xml進行配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
redirectPort改爲ssl的connector的端口443,重啓tomcat後便會生效。
OK,到此爲止,服務器端配置便完成了,在瀏覽器中輸入相似於https://www.domain.com試試吧。
三、客戶端證書使用
在某些特殊狀況下(如cas及使用cas做爲單點登陸環境的網站),客戶端也須要配置祕鑰庫文件:
(3.1)在服務器端導出證書
keytool -export -alias www.domain.com -keystore www.domain.com.jks -file domaincas.cer
(3.2)將證書以電子郵件或者其餘能夠傳遞的形式傳送到須要部署的客戶端
(3.3)客戶端導入證書
首先將服務端生成的證書文件(domaincas.cer)複製到$JAVA_HOME/jre/lib/security下
導入證書:
keytool -import -trustcacerts -alias www.domain.com -storepass changeit -file domaincas.cer -keystore cacerts
注意客戶端的密碼通常爲changeit,不可與私鑰密碼混淆
(3.4)客戶端服務器配置(以tomcat爲例)
注意若是CAS中設定了客戶端能夠不用HTTPS便可訪問的話,本步驟省略,不然同CAS SERVER端HTTPS的配置同樣。
修改tomcat安裝目錄中conf目錄中的server.xml:
<Connector protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="***" keystorePass="***" port="443"/>