2010-05-05 63 views
1

我已經開始基於java中的客戶端服務器通信的項目。我在做的是客戶端和服務器有自己的自簽名證書。在初始通信中,客戶端和服務器將交換其證書。服務器必須驗證客戶端證書並應授予身份驗證。我碰到什麼主題服務器可以驗證或無效的特定客戶端..?我無法從這裏開始。所以請你們任何一位可以簡單介紹一下嗎?如果可能的話,在Java中的一些僞代碼..?自簽名基於證書的身份驗證

回答

1

自簽名的證書無法通過正常的PKI方法進行驗證 - 即檢查證書鏈到一個信任錨,是不是在CRL等

使用自簽名的證書,初始配置將通常涉及使用帶外機制來交換證書和指紋以驗證它們。然後,這些證書可以添加到可信存儲並由您的應用程序使用。當然,每次更新任何自簽名證書時,都需要重複這個帶外過程。對於需要安全通信的幾個應用來說,這種方法可能沒問題,但很明顯,自簽名證書方法不能擴展。

另一種方法是使用類似openssl封裝器CA.pl的設置來設置一個迷你CA並頒發客戶端證書。這些頒發的證書將全部鏈接到一個根。這個根目錄仍然必須安全地傳達給所有依賴方,但是沒有從根CA頒發的其他證書沒有。

UPDATE:(在回答這個問題在下面的評論)

這裏有一些方法可以得到一個證書指紋:使用OpenSSL的

  • :OpenSSL的X​​509 -sha1 -in cert.pem - noout -fingerprint
  • 在Windows將其保存爲.CER文件,然後雙擊它,然後使用這個工具去詳情標籤
  • online cert decoder

爲了進一步提高安全性,證書所有者可以使用與證書檢查器不同的工具。

+0

非常感謝..我得到了一些東西..我想知道如何通過使用指紋驗證客戶端進行驗證。我不想在我的應用程序中使用任何第三方CA.所以我沒有使用OpenSSL證書。我們如何通過使用Thumbprint來驗證客戶端? – 2010-05-06 04:36:32

+0

@Tadi Vijay Kumar:我已經添加了一些關於如何獲取證書指紋的信息。希望這可以幫助。 – bignum 2010-05-06 05:25:33

相關問題