首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 加密技術(十):第三方 CA 簽名證書實戰——基於 Thawte 免費測試證書的 HTTPS 雙向認證

     編輯:Java 相關知識

承接上篇自簽名證書認證,本文實戰第三方 CA 簽名流程,以 Thawte 21 天免費測試證書為例,完整演示從密鑰庫創建、CSR 生成、CA 簽名、證書導入、域名映射、Tomcat 配置到 Java 客戶端 HTTPS 訪問的全鏈路。

完整操作流程

  1. 域名註冊:Thawte 官網註冊域名(示例 www.zlex.org,請勿盜用)。
  2. 獲取簽名鏈接:域名有效後收到郵件,訪問 https://www.thawte.com/cgi/server/try.exe 獲取證書。
  3. 創建密鑰庫:
    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)。
  4. 導出 CSR:
    keytool -certreq -alias www.zlex.org -file d:\zlex.csr -keystore d:\zlex.keystore -v
    得到 zlex.csr(BASE64 編碼)。
  5. 提交 CSR 獲取證書:將 CSR 內容貼入 Thawte 頁面,獲得 PKCS#7 格式回應(zlex.p7b)。
  6. 導入 CA 簽名證書:
    keytool -import -trustcacerts -alias www.zlex.org -file d:\zlex.p7b -keystore d:\zlex.keystore -v
    確信任 Thawte Test CA Root,證書鏈安裝完成。
  7. 域名映射:編輯 C:\Windows\System32\drivers\etc\hosts,添加 127.0.0.1 www.zlex.org。
  8. Tomcat 配置 SSL(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 有效性,地址欄顯示小鎖圖標(圖示)。

Java 客戶端 HTTPS 訪問驗證

調整測試類 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 簽名認證全流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved