項目中咱們可能會用到HTTPS的訪問請求,那麼在JavaWeb項目中咱們怎麼將請求時的http變爲https,其實https相較於http就是訪問協議的不一樣,多了一個認證證書;算法
那咱們就來看看這個證書是怎麼建立的:apache
其實JDK早已經爲咱們提供瞭解決辦法: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exetomcat
生成證書方式(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"/>
啓動項目成功,就算配置成功了;操作系統