[轉載]Tomcat6配置HTTPS

已經不知道出處了,偶爾會用到,記在這裏備忘。謝謝原作者。


我使用的JDK版本爲JDK6,使用的的Tomcat版本爲6;

配置Tomcat下的HTTPS其實很簡單,只需要完成兩步工作就可以 了;

SSL認證分雙向認證和單向認證,如果爲又向認證則客戶端也需要安裝已生成好的文件。 
一、生成“服務器證書文件”

我把生成的“服務器證書文件”取名爲server.jks。簡單起見,我把server.jks放在D盤根目錄下面,配置環境爲windows.
首先使用JDK自帶的工具keytool生成一個“服務器證書”,取名爲server.jks。

tomcat6配置雙向認證 

1、生成服務器端證書

keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn"
-alias server -keypass password -keystore d:\server.jks -storepass password -validity 3650

keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650

2、生成客戶端證書 

keytool -genkey -keyalg RSA -dname "cn=sango,ou=sango,o=none,l=china,st=beijing,c=cn" 
-alias custom -storetype PKCS12 -keypass password -keystore d:\custom.p12
-storepass password -validity 3650   

keytool -genkey -keyalg RSA -dname "cn=sango,ou=sango,o=none,l=china,st=beijing,c=cn" -alias custom -storetype PKCS12 -keypass password -keystore custom.p12 -storepass password -validity 3650

客戶端的CN可以是任意值。 


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

keytool -export -alias custom -file d:\custom.cer -keystore  d:\custom.p12 
-storepass password -storetype PKCS12 -rfc   

keytool -export -alias custom -file custom.cer -keystore  custom.p12 -storepass password -storetype PKCS12 -rfc

然後,添加客戶端證書到服務器中(將已簽名數字證書導入密鑰庫) 

keytool -import -v -alias custom -file d:\custom.cer -keystore  d:\server.jks -storepass password   
keytool -import -v -alias custom -file custom.cer -keystore  server.jks -storepass password

4、查看證書內容 

keytool -list -v -keystore d:\server.jks -storepass password   
keytool -list -v -keystore server.jks -storepass password

5、配置tomcat service.xml文件 

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  maxThreads="150" scheme="https" secure="true"  
clientAuth="true" sslProtocol="TLS"  
keystoreFile="D:/server.jks" keystorePass="password" 
truststoreFile="D:/server.jks" truststorePass="password"  />  
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"     maxThreads="150" scheme="https" secure="true"     clientAuth="true" sslProtocol="TLS"     keystoreFile="D:/server.jks" keystorePass="password"     truststoreFile="D:/server.jks" truststorePass="password" />

clientAuth="true"表示雙向認證 
6、導入客戶端證書到瀏覽器 
雙向認證需要強制驗證客戶端證書。雙擊“custom.p12”即可將證書導入至IE 


tomcat6配置單向認證 


1、生成服務器端證書 

keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn"
-alias server -keypass password -keystore d:\server.jks -storepass password -validity 3650   
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650


2、由於是單向認證,沒有必要生成客戶端的證書,直接進入配置tomcat service.xml文件,Xml代碼

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
maxThreads="150" scheme="https" secure="true"  
clientAuth="false" sslProtocol="TLS"  
keystoreFile="D:/server.jks" keystorePass="password"/>

clientAuth="false"表示單向認證,同時去掉truststoreFile="D:/server.jks" truststorePass="password"這2個屬性 .
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章