Tomcat服務器配置https認證(使用keytool生成證書)

1、證書生成算法

1、生成服務器證書apache

(1)打開打開命令控制檯,進入jdk的bin目錄瀏覽器

                   cd D:\Program Files\jdk1.6.0_45\bintomcat

(2)keytool爲Tomcat生成證書(「-validity 36500」證書有效期,36500表示100年,默認值是90天)安全

           keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500服務器

 

2、生成客戶端證書測試

         keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore E:\mykey.p123d

 

 

3讓服務器信任客戶端證書server

(1)因爲不能直接將PKCS12格式的證書庫導入,必須先把客戶端證書導出爲一個單獨的CER文件,使用以下命令:xml

         keytool -export -alias mykey -keystore E:\mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:\mykey.cer

(2)將該文件導入到服務器的證書庫,添加爲一個信任證書使用命令以下:

           keytool -import -v -file E:\mykey.cer –keystore E:\tomcat.keystore

 

(3)經過 list 命令查看服務器的證書庫,能夠看到兩個證書,一個是服務器證書,一個是受信任的客戶端證書:

keytool -list -keystore E:\tomcat.keystore

 

 

4、讓客戶端信任服務器證書

把服務器證書導出爲一個單獨的CER文件提供給客戶端,使用以下命令:

keytool -keystore E:\tomcat.keystore -export -alias tomcat -file E:\tomcat.cer

 

5通過上面操做,生成以下證書:

 

其中 tomcat.cer 提供給客戶端,tomcat.keystore供服務器使用

 

2、證書使用

1服務器tomcat的配置

(1)打開Tomcat根目錄下的/conf/server.xml,找到Connector port="8443"配置段,修改成以下:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"               maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456" truststoreFile="E:/tomcat.keystore" truststorePass="123456" />

 

註釋掉

<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->

 

(2)測試服務端,IE瀏覽器輸入訪問地址

 

 

但因爲是自簽名的證書,因此瀏覽器會警告咱們不安全,選擇繼續:

 

 

能夠看到能成功訪問了(地址欄「證書錯誤」,此時數據已是使用HTTPS傳輸了)

 

 

2導入服務器公鑰證書(tomcat.cer)

因爲是自簽名的證書,爲避免每次都提示不安全。這裏雙擊tomcat.cer安裝服務器證書。

注意:將證書填入到「受信任的根證書頒發機構」

 

 

再次從新訪問服務器,會發現沒有不安全的提示了,同時瀏覽器地址欄上也有個「鎖」圖標。

 

至此,就完成了配置。

:因爲jdk自帶的keytool生成的簽名屬於弱簽名算法(SHA-1),可是,SHA-1已通過時於是再也不推薦使用。新證書使用了更強的簽名算法(好比SHA-256)。SHA-1的證書將從2017開始再也不被主流瀏覽器廠商視爲安全的。

 

 

 

最後:  經過cmd,將簽名文件從【***.keystore】文件轉換成【***.p12】的文件,再轉換成【***.jks】:

先將路勁切換至jre下的bin文件夾下,再經過命令查詢,命令以下:

keytool -importkeystore -srckeystore 【絕對路徑+***.keystore】 -srcstoretype JKS -deststoretype PKCS12 -destkeystore 【***.p12】

keytool -v -importkeystore -srckeystore 【絕對路徑+***.p12】 -srcstoretype PKCS12 -destkeystore 【絕對路徑+***.jks】 -deststoretype JKS

 

p12 證書提取pem證書和私鑰

openssl pkcs12 -in server.p12 -clcerts -nokeys -password pass:111111 -out server.crt
openssl pkcs12 -in server.p12  -nocerts -password pass:111111 -passout pass:111111 -out server.key
相關文章
相關標籤/搜索