JDK8+Tomcat8配置https【轉】


生成密鑰對

我比較喜歡密鑰對這個名字,因為它非常明確了HTTPS在傳輸過程中需要的兩個鑰匙(公鑰和私鑰)。如果不太了解HTTPS的,可以要到搜索引擎去搜索一下HTTPS的原理。 
首先,確保java的目錄在系統的環境變量中,不在的話,可以直接到java目錄的bin文件夾下操作。 
生成密鑰對的命令是keytool -genkeypair,在原先的有的jdk所提供的命令是keytool -genkey,但我感覺jdk8的這種表達更為明確一些。 
keytool -genkeypair -alias tomcat -keyalg RSA -keypass password -storepass password -keystore path_to_keystore/name_for_keystore.keystore

-alias 表示證書的別名,一個keystore文件中可以存放多個alias。 
-keyalg RSA 表示密鑰算法的名稱為RSA算法 
-keypass password表示密鑰的口令是password 
-storepass password表示密鑰庫(生成的keystore文件)的密鑰是keypass。 
注意:keypass和storepass理論上是可以不同的,但是我們生成的密鑰是要給tomcat用的,tomcat這家伙好像沒有提供提取私鑰的密碼(就是上邊那個keypass)配置,因此我們只好將兩個密碼設置成一樣的。 
-keystore是生成的或者已有的keystore文件的位置,如果不提供的話,keytool工具會把它放在用戶目錄下,還起了個名字叫.keystore。

生成密鑰對的界面就和下邊一樣 
keytool生成密鑰對


配置Tomcat

好了,現在去配置Tomcat。在Tomcat安裝目錄的conf文件夾下有個server.xml文件,找到我們需要打開HTTPS功能的Service,添加一個Connector。關於Tomcat中的這些概念,不懂的可以找個搜索引擎搜一下(你就搜Tomcat Server.xml)。 
Tomcat8中給出了一個默認的Connector,我們只需要把它的注釋去掉就可以了。樣子就像下邊的圖一樣。 

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="G:/software/apache-tomcat-8.0.43-x64/xxx.keystore" keystorePass="xxxx"
                />

port是端口,protocol是協議,原來低版本的Tomcat版本有可能是”HTTP/1.1”,但是在8這個版本中是一個代表了協議的類。無所謂了。你的是哪個版本就用哪種表述,關鍵看原來的server.xml所給的例子。 
keystoreFile是我們剛剛生成的那個keystore文件,keystorePass就是我們剛才在生成keystore文件的時候所指定的storepass或keypass(它們是一樣的,原因前邊說啦)。你得注意keystoreFile中的F是大寫的,keystorePass中的P也是大寫的,寫錯了有可能會出問題的。

OK,現在重啟你的tomcat,輸入地址,把端口改成8443,應該就可以訪問了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM