項目中我們可能會用到HTTPS的訪問請求,那麼在JavaWeb項目中我們怎麼將請求時的http變爲https,其實https相較於http就是訪問協議的不同,多了一個認證證書;
那我們就來看看這個證書是怎麼創建的:
其實JDK早已經爲我們提供瞭解決辦法: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exe
生成證書方式(cmd命令):
HTTPS :
JDK證書製造工具: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exe
1,cmd代碼:
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "test.keystore"
輸入密鑰庫口令: 123456
姓氏(CN): localhost
單位名稱(OU): gy
組織名稱(O): gy
城市或區域(L): my
省/市/自治區(ST): sx
國家(C): cn
是否正確: y
tomcat口令: 123456
說明:
密鑰 庫 密碼: 123456
證書條目密碼: 123456
功能:
創建一個別名爲tomcat的證書條目,該條目存放在名爲test.keystore的密鑰庫中,若test.keystore密鑰庫不存在則創建。
參數說明:
-genkeypair:生成一對非對稱密鑰;
-alias:指定密鑰對的別名,該別名是公開的;
-keyalg:指定加密算法,本例中的採用通用的RAS加密算法;
-keystore:密鑰庫的路徑及名稱,不指定的話,默認在操作系統的用戶目錄下生成一個".keystore"的文件
注意:
1."名字與姓氏"應該是域名,若輸成了姓名,和真正運行的時候域名不符,會出問題;
2.再次輸入密碼,第一次輸入的是密鑰庫(keystore)的密碼,第二次輸入的是證書條目的密碼;
3.這裏所說的證書庫和密鑰庫是等同的(個人觀點);
2,cmd查看證書目錄:
keytool -list -keystore test.keystore
密鑰庫口令: 123456
查詢到:
您的密鑰庫包含 1 個條目
tomcat, 2018-1-12, PrivateKeyEntry,
證書指紋 (SHA1): DC:59:14:41:71:20:D0:D3:64:3B:66:C7:47:F2:60:6B:2D:55:25:15
3,cmd導出證書文件:
keytool -export -alias tomcat -file tomcat.jks -keystore test.keystore
密鑰庫口令: 123456
功能:
將名爲 test.keystore 的證書庫中別名爲 tomcat 的證書條目導出到證書文件 tomcat.crt 中;
4,cmd導入證書的信息:
keytool -import -keystore test_cacerts -file tomcat.crt
密鑰庫口令: 123456
功能:
將證書文件 tomcat.crt 導入到名爲 test_cacerts 的證書庫中;
5,cmd查看證書信息:
keytool -printcert -file "tomcat.crt"
密鑰庫口令: 123456
功能:
查看證書文件 tomcat.crt 的信息;
查看證書庫信息:
keytool -list -v -keystore test.keystore
密鑰庫口令: 123456
功能:
查看證書庫文件 test.keystore 的信息;
6,cmd刪除密鑰庫中的條目:
(1),keytool -list -keystore test.keystore
密鑰庫口令: 123456
功能: 刪除所有條目;
(2),keytool -delete -keystore test.keystore -alias tomcat
密鑰庫口令: 123456
功能: 刪除tomcat條目;
在WEB項目引用的Tomcat啓動器的配置文件 server.xml 中修改:
<!-- 將以前的HTTP配置註釋
<Connector URIEncoding="UTF-8"
connectionTimeout="20000"
port="8081"
protocol="HTTP/1.1"
redirectPort="8443"/>
-->
<!-- 打開HTTPS配置,將生成的證書庫綁定進去 -->
<Connector SSLEnabled="true" clientAuth="false"
protocol="org.apache.coyote.http11.Http11NioProtocol"
keystoreFile="C:/Users/yvdedu.com/test.keystore" certificateKeyAlias="tomcat"
keystorePass="123456" maxThreads="150" port="8081"
scheme="https" secure="true" sslProtocol="TLS"/>
啓動項目成功,就算配置成功了;