2017-07-13 77 views
0

我爲根CA,中間CA和服務器創建了三個證書。他們代表了簡單的信任鏈:TLS放置證書的位置

server -> intermediate -> root 

問題是如何正確地把它們放在客戶端和服務器上。
我有兩個選擇:

  1. 放在客戶端的trustStore證書 - 中間服務器證書服務器的keyStore。因此,服務器將發送兩個證書,客戶端將驗證具有中間的服務器證書,這將通過存儲在客戶端的trustStore中的根證書進行驗證。

  2. 中間證書客戶的trustStore時服務器將只存儲自己的證書在的keyStore

賜教:)

+0

您的證書是否來自可信任的CA或自簽名? – devang

+0

@devang自簽名 - 我使用OpenSSL生成所有證書 –

+0

由於自簽名,您的步驟對於服務器端設置是正確的。此外,您必須將root-ca放置在客戶端的信任庫中,並將root-ca放入'/ etc/ssl/certs'目錄並運行'ca_rehash'。確認你使用'openssl s_client -connect '連接服務器是否正確。只有當您計劃從命令行進行http調用時才需要放入/ etc/ssl/certs,例如捲曲/ wget的。 – devang

回答

1

當我已經建立了網站服務器與中間證書我已經把中間證書的服務器上。它是服務器向客戶端證明其身份的工作,爲此,它會發送Web服務器證書和受信任根之間的證書層次結構(中間證書),因爲客戶端可能沒有這些證書。 所以你的選擇1將是我想的方式。

+1

根據標準(https://tools.ietf.org/html/rfc5246#section-7.4.2 et pred),這是必需的,雖然人們有時候會欺騙和瀏覽器或客戶端_may_試圖應付。 –

0

您不需要安裝客戶端信任庫中的根證書和中間證書。這只是多餘的。您安裝的取決於您希望客戶信任的人員。通常這將是根CA,因此您只能在客戶端安裝該CA。如果由於某種原因您只希望客戶端信任中間CA,則只能安裝該中間CA。