一、建立證書
證書用于用戶端與服務端安全認證。我們可以使用JDK自帶的keytool工具來生成證書。真正在産品環境中使用肯定要去證書提供商去購買,證書認證一般都是由VeriSign認證,官方位址:http://www.verisign.com/cn/
生成密鑰庫和證書:
1、生成伺服器證書庫
keytool -validity 365 -genkey -v -alias server -keyalg RSA -keystore F:\ssl\server.keystore //在F盤中,先建立一個空ssl檔案夾
"-validity 365":設定證書的有效日期
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcugDOwIDM3cDO10SM3kzNzQDM2EjMyMDM3EDMy0iM5cTM3ATMvw1MwcTMwIzLcJTO3EzNwEzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
2、生成用戶端證書庫:
keytool -validity 365 -genkeypair -v -alias client -keyalg RSA -storetype PKCS12 -keystore F:\ssl\client.p12
3、從用戶端證書庫中導出用戶端證書
keytool -export -v -alias client -keystore F:\ssl\client.p12 -storetype PKCS12 -rfc -file F:\ssl\client.cer
4、從伺服器證書庫中導出伺服器證書
keytool -export -v -alias server -keystore F:\ssl\server.keystore -rfc -file F:\ssl\server.cer
5、生成用戶端信任證書庫(由服務端證書生成的證書庫)
keytool -import -v -alias server -file F:\ssl\server.cer -keystore F:\ssl\client.truststore
6、将用戶端證書導入到伺服器證書庫(使得伺服器信任用戶端證書)
keytool -import -v -alias client -file F:\ssl\client.cer -keystore F:\ssl\server.keystore
7、檢視證書庫中的全部證書
keytool -list -keystore F:\ssl\server.keystore
以上所有輸入密碼都是自定義設定為:123456。如果不想每次執行指令都輸入指令可以加上"-storepass 123456"
如:keytool -list -keystore F:\ssl\server.keystore -storepass 123456
二、Tomcat配置:
(1).把server.keystore檔案放到tomcat的安裝目錄下的conf目錄,如: D:\Tomcat_7.0.47\conf
(2).修改tomcat目錄下的server.xml檔案
添加如下内容:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS" truststoreType='JKS'
keystoreFile="conf/server.keystore" keystorePass="123456"
truststoreFile="conf/server.keystore" truststorePass="123456"/>
注釋下内容:
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
-->
三、用戶端浏覽器證書導入:
這裡需要導入兩個檔案,用戶端證書庫client.p12檔案和服務端證書server.cer檔案
用戶端證書庫client.p12導入:
輕按兩下client.p12檔案按提示向導執行
輸入私鑰密碼:
下一步,選擇第一個自動選擇證書存儲選項,下一步,按向導完成
服務端證書server.cer檔案導入:
四、測試
啟動tomcat。輕按兩下tomcat/bin檔案夾中的startup.bat
在浏覽器中輸入 https://localhost:8443 出現如下界面,則表示https 8443端口配置成功
備注:一般Tomcat預設的SSL端口号是8443,但是對于SSL标準端口号是443,這樣在通路網頁的時候,直接使用https而不需要輸入端口号就可以通路,如https://ip/