Tomcat配置Https (SSL)

以下以Tomcat5爲例:

1、安裝Tomcat5(略)

2、生成keystore
       轉到%JAVA_HOME%/bin(JDK安裝目錄)
       運行:keytool -genkey -keyalg RSA -alias tomcat
       提示輸入keystore(輸入changeit,Tomcat默認是這個,便於後面Tomcat的配置,
       或者輸入其它的,但後面在tomcat配置中要寫明這裏的密鑰)
       其它的如名稱、地區……自己填;
       最後的一個密鑰要和keystore相同,默認回車就行。
       Y 確認後會在你的用戶目錄下(Documents and Settings/userhome/)
       生成".keystore"文件,不用動這個文件的,拷貝到Tomcat_home/conf中。
             
             或者:用CA產生一個CSR(Certificate Signing Request):
              keytool -certreq -alias tomcat -keyalg RSA -file <csr_file> 
              或者:輸入一個證書:
              keytool -import -trustcacerts -alias tomcat -file <ca-cert-filename>

3、配置Tomcat
       打開%Tomcat_Home%/conf/server.xml
       找到這個,按要求把.keystore導入去:
       <!--  Define a SSL Coyote HTTP/1.1 Connector on port 8443
          -->
       <!-- 《----去掉這個註釋
           <Connector port="8443" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="/conf/.keystore" keystorePass="changeit"
           />
          --> 《----去掉這個註釋

4、自定義配置
       如果第2步是按照自定義密鑰的,則需要選擇添加如下一些信息
       keystoreFile="your key file"
       keystorePass="your key pass"
       keystoreType="your key type"(JKS 或 PKCS12)
       ……(其它參見Tomcat文檔SSL篇)

5、重啓Tomcat

6、打開頁面:https://localhost:8443

7、成功。

參考文檔:Tomcat文檔SSL篇(tomcat-docs/ssl-howto.html)

一:Tomcat5.5單項認證的配置方法:

第一步:Tomcat5.5使用SSL功能、證書生成(使用JDK1.5自帶的keytool.exe工具)

注意必須使用tomcat使用的jdk版本去生成

命令行中C:/Java/jdk1.5.0_09/bin>

keytool -genkey -alias tomcat -keyalg RSA -validity 365

注:-alias tomcat 設定別名;   -validity 365 證書有效期設爲365天;

        生成證書過程中,提示設定<tomcat>的密碼時,使用和keystore相同的密碼。默認回車就可以了

        生成的證書默認是放在當前系統用戶的主目錄下(C:/Documents and Settings/Administrator),複製至Tomcat的主目錄以便於下一步中的server.xml的keystoreFile的值設定。

 

第二步:Tomcat5.0.28的server.xml,打開SSL連接器選項 

 

  <Connector port="8443" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

               keystoreFile=".keystore"  keystorePass="******"

               clientAuth="false" sslProtocol="TLS"/>

注:即添加後面那兩屬性值,keystoreFile的路徑,keystorePass的密碼。

二:Tomcat5.5的SSL雙項認證的配置方法

第一步:爲服務器生成證書

使用keytool爲Tomcat生成證書,假定目標機器的域名是“localhost”,keystore文件存放在“D:/tomcat.keystore”,口令爲“123456”,使用如下命令生成:

C:/Java/jdk1.5.0_09/bin>keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/tomcat.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,C=cn" -storepass 123456 -keypass 123456

既如圖:

如果Tomcat所在服務器的域名不是“localhost”,應改爲對應的域名,如“www.sina.com.cn”,否則瀏覽器會彈出警告窗口,提示用戶證書與所在域不匹配。在本地做開發測試時,應填入“localhost”

第二步:爲客戶端生成證書

下一步是爲瀏覽器生成證書,以便讓服務器來驗證它。爲了能將證書順利導入至IE和Firefox,證書格式應該是PKCS12,因此,使用如下命令生成:

C:/Java/jdk1.5.0_09/bin>keytool -genkey -v -alias myKey -keyalg RSA -storetype PKCS12 -keystore D:/my.p12 -dname "CN=MyKey,OU=cn,L=cn,ST=cn,C=cn" -storepass 123456 -keypass 123456

既如下圖:

 

對應的證書庫存放在“C:/my.p12”,客戶端的CN可以是任意值。稍候,我們將把這個“my.p12”證書庫導入到IE和Firefox中。

第三步:讓服務器信任客戶端證書

由於是雙向SSL認證,服務器必須要信任客戶端證書,因此,必須把客戶端證書添加爲服務器的信任認證。由於不能直接將PKCS12格式的證書庫導入,我們必須先把客戶端證書導出爲一個單獨的CER文件,使用如下命令:

C:/Java/jdk1.5.0_09/bin>keytool -export -alias myKey -keystore D:/my.p12 -storetype PKCS12 -storepass 123456 -rfc -file d:/my.cer

既如下圖:

 

通過以上命令,客戶端證書就被我們導出到“C:/my.cer”文件了。下一步,是將該文件導入到服務器的證書庫,添加爲一個信任證書:命令如下:

C:/Java/jdk1.5.0_09/bin>keytool -import -v -file D:/my.cer -keystore D:/tomcat.keystore -storepass 123456

既如圖形式:

 

通過list命令查看服務器的證書庫,我們可以看到兩個輸入,一個是服務器證書,一個是受信任的客戶端證書:命令如下:

C:/Java/jdk1.5.0_09/bin>keytool -list -keystore D:/tomcat.keystore -storepass 123456

既如圖形式:

 

第四步:配置Tomcat服務器

打開Tomcat根目錄下的/conf/server.xml,找到如下配置段,修改如下:

<Connector port="8443" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

clientAuth="true" sslProtocol="TLS"

               keystoreFile="D:/tomcat.keystore" keystorePass="123456"

                        truststoreFile="D:/tomcat.keystore" truststorePass="123456"/>

其中,clientAuth指定是否需要驗證客戶端證書,如果該設置爲“false”,則爲單向SSL驗證,SSL配置可到此結束。如果clientAuth設置爲“true”,表示強制雙向SSL驗證,必須驗證客戶端證書。如果clientAuth設置爲“want”,則表示可以驗證客戶端證書,但如果客戶端沒有有效證書,也不強制驗證。

第五步:導入客戶端證書

如果設置了clientAuth="true",則需要強制驗證客戶端證書。雙擊“C:/my.p12”即可將證書導入至IE:

 

導入證書後,即可啓動Tomcat,用IE進行訪問。如果需要用FireFox訪問,則需將證書導入至FireFox:

自此配置結束,用戶可以在地址欄輸入https://localhost:8443進行驗證

發佈了42 篇原創文章 · 獲贊 4 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章