承接上篇自簽名證書認證,本文實戰第三方 CA 簽名流程,以 Thawte 21 天免費測試證書為例,完整演示從密鑰庫創建、CSR 生成、CA 簽名、證書導入、域名映射、Tomcat 配置到 Java 客戶端 HTTPS 訪問的全鏈路。
www.zlex.org,請勿盜用)。https://www.thawte.com/cgi/server/try.exe 獲取證書。keytool -genkey -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore
密碼 123456,填寫主體信息(CN=www.zlex.org, OU=zlex, O=zlex, L=BJ, ST=BJ, C=CN)。keytool -certreq -alias www.zlex.org -file d:\zlex.csr -keystore d:\zlex.keystore -v
得到 zlex.csr(BASE64 編碼)。zlex.p7b)。keytool -import -trustcacerts -alias www.zlex.org -file d:\zlex.p7b -keystore d:\zlex.keystore -v
確信任 Thawte Test CA Root,證書鏈安裝完成。C:\Windows\System32\drivers\etc\hosts,添加 127.0.0.1 www.zlex.org。server.xml):
<Connector
keystoreFile="conf/zlex.keystore"
keystorePass="123456"
truststoreFile="conf/zlex.keystore"
truststorePass="123456"
SSLEnabled="true"
URIEncoding="UTF-8"
clientAuth="false"
maxThreads="150"
port="443"
protocol="HTTP/1.1"
scheme="https"
secure="true"
sslProtocol="TLS" />
將 zlex.keystore 複製到 conf/,重啟 Tomcat。訪問 https://www.zlex.org/,瀏覽器驗證 CA 有效性,地址欄顯示小鎖圖標(圖示)。調整測試類 CertificateCoderTest,testHttps() 模擬瀏覽器 HTTPS 訪問:
URL url = new URL("https://www.zlex.org/examples/");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoInput(true); conn.setDoOutput(true);
CertificateCoder.configSSLSocketFactory(conn, password, keyStorePath, keyStorePath);
InputStream is = conn.getInputStream();
// 讀取響應內容...
控制台輸出 Tomcat Examples 頁面 HTML,驗證通過。由此完成基於 SSL 協議的 CA 簽名認證全流程。