1. 程式人生 > >HTTPS安全認證在Tomcat中的配置方法與圖解

HTTPS安全認證在Tomcat中的配置方法與圖解

這篇部落格上個月就寫了,只是當初沒有上傳操作圖片,只有一些文字,讓不少朋友看了雲裡霧裡,這次重新更新,加了自己的操作檢視,方便大家理解。本篇寫的是HTTPS在Tomcat中的配置方法;至於HTTPS安全認證的原理,大家可以上網檢視去理解;學習建議:大家可以使用面向物件的方式去理解握手協議,單向認證與雙向認證的原理。(這篇本人使用了圖解方式講解,寫一下就上傳一張圖片,我也是醉了,望對大家有所幫助)

1.為伺服器生成證書

首先要確認當前電腦是否安裝JDK;

1為伺服器生成證書使用keytool為Tomcat生成證書,假定目標機器的域名是“localhost”,keystore檔案存放在“E:\tomcat.keystore”,口令為“

123456”,

使用如下命令生成:keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500

 

注意:

A.1這裡的口令為伺服器證書密碼(至少6位數),我設為 :123456

  2您的名字與姓氏(必須填寫)URL訪問的地址;我設定為localhost 代表本機 <!-- 盤中的C:\WINDOWS\system32\drivers\etc\hosts檔案的本機IP對應字元設定

後面的四項,可以看伺服器公司的情況而設定。 程式測試可以不設定,直接回車 -->

B. 接著是顯示你上面所填寫的對應資訊, 確認無誤,可以y再回車,完成。若有誤,按n返回,繼續從名字開始重新填寫

 

C. 最後是提示你輸入<tomcat>的主密碼,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一致,設定其它密碼也可以(回車即可)

 

完成上述輸入後,直接回車則在你在第二步中定義的位置找到生成的檔案,出現類似於以下圖,就生成伺服器證書成功:

 

2.為客戶端生成證書

2. 為客戶端生成證書:

1,命令生成:

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore 

E:\mykey.p12 (mykey為自定義)

接下來操作與生成伺服器證書一樣,但注意的是名字那可以是任意值

下面那行,可以按自己情況填寫;比如我的: qhs   其他資訊都回車可以不寫

 

2. 對應的證書庫存放在“E:\mykey.p12”,雙擊mykey.p12檔案,即可將證書匯入至瀏覽器(客戶端)

 




最後匯入成功!

3.讓伺服器信任客戶端書

3. 讓伺服器信任客戶端證書:

A .首先要把客戶端證書匯出為一個單獨的CER檔案

命令如下

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

//上述“000000”為第2步中設定的客戶端密碼;E:\mykey.p12E:\mykey.cer ,名字要一致mykey

 

完成後,E:下面就有了三個檔案

 

B.第二步,是將該檔案匯入到伺服器的證書庫,新增為一個信任證書

命令如下:keytool -import -v -file E:\mykey.cer -keystore E:\tomcat.keystore

到此已完成第三步,可以使用以下命令可以看到兩證書:一個是伺服器證書,一個是受信任的客戶端證書keytool -list -keystore D:\home\tomcat.keystore

<!--輸入上面的命令後,會提示輸入密碼(為第一步生成的伺服器證書密碼,我的為123456)密碼正確後回車提示是否信任此證書? y-->

 

//測試

通過命令檢視伺服器的證書庫,可以看到兩個證書,一個是伺服器證書,一個是受信任的客戶端證書:

keytool -list -keystore E:\tomcat.keystore (tomcat為你設定伺服器端的證書名; 命令中要輸入密碼,為第一步生成的伺服器證書密碼:123456)

 

4.讓客戶端信任伺服器證書

4. 讓客戶端信任伺服器證書

A:先把伺服器證書匯出為一個單獨的CER檔案

使用如下命令:keytool -keystore E:\tomcat.keystore -export -alias tomcat -file E:tomcat.cer (tomcat為你設定伺服器端的證書名為第一步生成的伺服器證書密碼:123456)。

 

B:通過以上命令,伺服器證書就被我們匯出到“E:\tomcat.cer”檔案了。雙擊tomcat.cer檔案,按照提示安裝證書,將證書填入到“受信任的根證書頒發機構”。

 



最後跳出提示,選擇是,完成

匯入成功、完成第四步客戶端信任伺服器證書

 

5.配置Tomcat伺服器

5. 配置Tomcat伺服器

開啟Tomcat根目錄下的/conf/server.xml,找到Connector port="8443"配置段,修改為如下:

Server.xml原始碼如下:
<Connector 
port="8443"  protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="E:/tomcat.keystore" keystorePass="123456"
truststoreFile="E:/tomcat.keystore" truststorePass="123456" />

E:/tomcat要與生成的服務端證書名一致)

屬性說明:

clientAuth:設定是否雙向驗證,預設為false,設定為true代表雙向驗證

keystoreFile:伺服器證書檔案路徑

keystorePass:伺服器證書密碼

truststoreFile:用來驗證客戶端證書的根證書,此例中就是伺服器證書

truststorePass:根證書密碼

6.測試

在瀏覽器中輸入https://localhost:8443/,會彈出選擇客戶端證書介面,點選“確定”,會進入tomcat主頁,位址列後會有“鎖”圖示,表示本次會話已經通過HTTPS雙向驗證,接下來的會話過程中所傳輸的資訊都已經過SSL資訊加密。

 

完成HTTPS雙向認證。