2013-05-30 82 views
1

好吧,我確定這是顯而易見的,我錯過了一些非常重要的東西。我們正在向服務器發送一個http請求。爲了證明我們是誰發送請求,我們附上一個證書。數字證書籤名

此證書具有可信的CA,因此服務器知道證書是真實的。

我沒有得到的一點是我們對服務器說,可以信任來自Comodo的證書。精細。所以我發送請求,它說我是'公司A',並且這是由Comodo認證的。

我們運行服務器的客戶只是想知道CA是誰,所以他們可以信任它。說得通。但是,證書中的其他內容肯定需要檢查才能使用嵌入式公司名稱?否則,我可以爲我自己的私人公司購買另一份證書,並從Comodo獲得該證書,並且該證書也將根據服務器的有效性進行驗證。

請賜教!

感謝 西蒙

回答

0

如果我理解正確的,你問一個人,在一個網絡瀏覽器去一個網站,「A公司如何能夠確保它真的是「A公司」,而不是一個冒牌者,由同一個信任的CA(Comodo)頒發的'B公司'的證書。

快速回答是瀏覽器確實檢查證書上的名稱,而不僅僅是它是否信任發證CA.證書中的主題字段是專有名稱(DN),類似如下:

CN = www.google.com,O = Google Inc,L = Mountain View,S = California,C = US

瀏覽器可以檢查CN(Canonical Name)是否與您在瀏覽器中輸入的內容相匹配(https://www.google.com/),以確保您位於正確的網站。有時候CN不匹配,但是證書包含的主題備用名稱包含一個匹配的名稱。無論哪種情況,證書都會包含您嘗試加載的網站,因此您可以驗證它是否爲該網站的正確證書。

此外還有做很多其他的檢查是(或可能):
*檢查當前日期和時間是否在有效期證書內
*檢查證書沒有被撤消(使用CRL或OCSP)
*檢查簽名是由受信任的CA有效,並簽署
*檢查簽名CA實際上是CA在CA證書(密鑰用法場)
*檢查證書本身的使用是確定它是服務器證書
*檢查公鑰是否足夠強大(例如,至少2048 (RSA)
*檢查簽名算法是否足夠強大(例如,SHA256RSA與SHA1RSA)
*檢查有效期足夠短(例如,服務器爲3年或更短)