注意,一定要保證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