2012-03-14 46 views
1

美好的一天!爲我的API提供CA鏈:我應該包含鏈中的所有證書嗎?

我正在開發可通過HTTPS訪問的類似REST的API。我的證書由CA頒發並具有中間證書(我的證書爲3級:AddTrust - > Comodo - > EssentialSSL - >我的證書)。

我想提供證書鏈與我的.NET和PHP SDK爲我的API,如Facebook的用戶做: https://github.com/facebook/php-sdk/blob/master/src/fb_ca_chain_bundle.crt

我已經下令我的證書逐一及其創建的類似文本文件適用於命令行卷曲和PHP捲曲庫。

但它工作時,我只有一個根證書(AddTrust在我的情況下)。

我是否應該將所有證書與我的SDK或僅一個根證書捆綁在一起?

回答

0

需要捆綁你不希望用戶有任何證書。如果您缺少鏈中的中間證書,則下面的所有證書都將無效。

您的證書由EssentialSSL頒發;如果沒有EssentialSSL的中級證書,系統無法知道您的證書是否有效,或者它最終會追溯到AddTrust。例如,我已經爲AddTrust和Comodo安裝了證書,但沒有安裝EssentialSSL,所以我的系統不會考慮您的證書是可信的。

當你說「它有效,當我只有一個根證書」時,你是什麼意思?您總是根據定義,在鏈中只有一個根證書;其餘的是中級證書,由上級人員頒發。你能更具體地說明你實際上遇到了什麼問題嗎?

+0

首先,我真的認爲我需要充分的鏈條,所以這裏有一個問題。當我說「只有一個根證書時才起作用」,這意味着當我提供完整的curl鏈並需要進行SSL檢查時,當我僅提供一個頂級根證書時,它的工作方式相同。 – artvolk 2012-03-14 20:51:33

+0

您是否在開發機器之外的其他機器上測試了這個?如果中間證書安裝到本地證書存儲中,則根本不需要鏈。您需要找到沒有安裝「EssentialSSL」證書的計算機,以驗證您的證書鏈是否正確加載。 – 2012-03-14 21:02:39

+0

Windows上的命令行curl和php中的curl庫默認情況下沒有*任何證書*(甚至CA證書,如瀏覽器)。 – artvolk 2012-03-14 21:05:25

相關問題