天天看點

https 雙向認證

注意,一定要保證D盤下有home2這個檔案夾。

C:\Users\Administrator>keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\home2\tomcat.keystore -validity 3650

輸入密鑰庫密碼: (aaabbb)

再次輸入新密碼:

您的名字與姓氏是什麼?

  [Unknown]:  localhost (tomcat要部署到的那台伺服器的域名, 這一步最好寫成域名的形式,如果寫成ip位址,在谷歌浏覽器下會報錯)

您的組織機關名稱是什麼?

  [Unknown]:  lh

您的組織名稱是什麼?

  [Unknown]:  sb

您所在的城市或區域名稱是什麼?

  [Unknown]:  bj

您所在的省/市/自治區名稱是什麼?

該機關的雙字母國家/地區代碼是什麼?

  [Unknown]:  ZH

CN=192.168.40.122, OU=lh, O=sb, L=bj, ST=bj, C=ZH是否正确?

  [否]:  y

正在為以下對象生成 2,048 位RSA密鑰對和自簽名證書 (SHA256withRSA) (有效期為 3,650

 天):

         CN=192.168.40.122, OU=lh, O=sb, L=bj, ST=bj, C=ZH

輸入 <tomcat> 的密鑰密碼

        (如果和密鑰庫密碼相同, 按回車):

[正在存儲D:\home2\tomcat.keystore]

為用戶端生成證書(IE和Firefox,證書格式應該是PKCS12):

C:\Users\Administrator>keytool -genkey -v -alias myapp -keyalg RSA -storetype PKCS12 -keystore D:\home2\myapp.p12

輸入密鑰庫密碼: (bbbaaa)

  [Unknown]:  cjb

  [Unknown]:  ccc

  [Unknown]:  1

  [Unknown]:  cn

CN=cjb, OU=ccc, O=ccc, L=1, ST=1, C=cn是否正确?

正在為以下對象生成 2,048 位RSA密鑰對和自簽名證書 (SHA256withRSA) (有效期為 90 天

):

         CN=cjb, OU=ccc, O=ccc, L=1, ST=1, C=cn

[正在存儲D:\home2\myapp.p12]

C:\Users\Administrator>keytool -export -alias myapp -keystore D:\home2\myapp.p12 -storetype PKCS12 -storepass bbbaaa -rfc -file D:\home2\myapp.cer

存儲在檔案 <D:\home2\myapp.cer> 中的證書

将該檔案導入到伺服器的證書庫 

C:\Users\Administrator>keytool -import -v -file D:\home2\myapp.cer -keystore D:\home2\tomcat.keystore

所有者: CN=cjb, OU=ccc, O=ccc, L=1, ST=1, C=cn

釋出者: CN=cjb, OU=ccc, O=ccc, L=1, ST=1, C=cn

序列号: 7aa03c37

有效期開始日期: Thu May 26 11:13:43 CST 2016, 截止日期: Wed Aug 24 11:13:43 CST

2016

證書指紋:

         MD5: 1C:FB:4D:C7:4D:50:5F:66:DE:BD:B0:83:AD:F7:0C:4C

         SHA1: 3A:BC:44:F0:CE:82:57:19:19:1D:3F:41:4C:39:A7:65:F7:45:4D:1C

         SHA256: 73:85:34:87:AE:8D:2D:22:13:25:BD:42:94:10:3B:99:4C:68:6B:19:2E:

98:0E:F6:54:B8:A8:60:82:66:3E:97

         簽名算法名稱: SHA256withRSA

         版本: 3

擴充:

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: F8 02 6A AF 7D 12 E6 C2   62 65 E7 51 0A 5D A7 41  ..j.....be.Q.].A

0010: C4 8E 6F 2E                                        ..o.

]

是否信任此證書? [否]:  y

證書已添加到密鑰庫中

通過list指令檢視伺服器的證書庫

C:\Users\Administrator>keytool -list -keystore D:\home2\tomcat.keystore

密鑰庫類型: JKS

密鑰庫提供方: SUN

您的密鑰庫包含 2 個條目

tomcat, 2016-5-26, PrivateKeyEntry,

證書指紋 (SHA1): 3D:A8:2C:13:81:26:89:AA:56:F9:65:89:47:7C:B3:29:86:86:EE:C7

mykey, 2016-5-26, trustedCertEntry,

證書指紋 (SHA1): 3A:BC:44:F0:CE:82:57:19:19:1D:3F:41:4C:39:A7:65:F7:45:4D:1C

C:\Users\Administrator>keytool -keystore D:\home2\tomcat.keystore -export -alias tomcat -file D:\home2\tomcat.cer

存儲在檔案 <D:\home2\tomcat.cer> 中的證書

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

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

SSLEnabled="true" maxThreads="150" scheme="https"

secure="true" clientAuth="true" sslProtocol="TLS"

keystoreFile="D:\\home2\\tomcat.keystore" keystorePass="aaabbb"

truststoreFile="D:\\home2\\tomcat.keystore" truststorePass="aaabbb" />

(tomcat要與生成的服務端證書名一緻)

屬性說明:

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

keystoreFile:伺服器證書檔案路徑

keystorePass:伺服器證書密碼

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

truststorePass:根證書密碼

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

IE和chrome用的是系統的證書管理器。輕按兩下.p12檔案後已經導好證書了。 火狐用的是自己的證書管理器,是以要手動再導入一次.p12檔案。

火狐浏覽器導入證書:

<a target="_blank" href="http://cnzhx.net/blog/add-a-ssl-ca-to-firefox/">将自簽發的 SSL 證書添加為 Firefox 中受信任的根證書</a>

可以看到涉及到  D:\home2\tomcat.keystore  這個東西,用的密碼都是   aaabbb

e

繼續閱讀