2014-04-17 78 views
0

我是TLS/SSL的新手,所以這可能是一個非常基本的問題,但我一直在尋找很多,找不到答案。TLS/SSL證書驗證

我想實現一個TLS/SSL客戶端。該客戶端將運行在帶有Windows操作系統的嵌入式設備上(XPe或WES7)。我的實現使用GnuTLS。

如何獲得我的設備的信任機構列表,以便我的客戶端可以驗證服務器的證書?它應該是存儲在客戶端的文件,客戶端負責保持最新?或者,我的客戶可以在每次需要時以某種方式從互聯網上獲取此列表,而不是在本地維護它?

回答

1

認證機構(CA)主證書存儲在客戶端,客戶端負責保持它們是最新的。保持最新信息並不像聽起來那麼難,因爲CA證書不會經常更改 - 大多數證書至少有效期爲5 - 10年。

客戶端存儲是必要的,因爲您的應用程序使用的任何給定的Internet站點可能會受到影響。

要獲取列表,您可以先查看隨瀏覽器分發的CA證書或隨Java分發的cacerts文件。在發佈您的代碼之前,您可能需要檢查您使用的證書是否真實,方法是檢查證書是否與CA提供的信息相符。

+0

謝謝!這是有道理的。如果我的客戶負責發送電子郵件,那麼創建列表的正確方法是什麼?我需要手動添加每個電子郵件提供商嗎? – ViP

+0

電子郵件的工作方式不同。電子郵件服務器彼此交談,所以客戶端只需要知道一個電子郵件服務器。 –

+0

所以...基本上你說的是我需要在我的客戶端只保留一個證書?例如,如果我只保留谷歌的證書將它能夠發送電子郵件到雅虎?我應該去哪裏檢查谷歌的正版證書?根據我的瀏覽器信息,他們的證書來自Usertrust,但我不知道如何從那裏獲得。對不起,我知道這些問題是非常基本的。網上有很多關於它的信息,最近我一直在閱讀很多內容,但似乎很難找到這些小問題的答案。 – ViP

0

轉到任何Windows計算機並從命令行運行「certman.msc」。將每個CA證書(中間證書,可信任權限)導出到文件(BER,PEM),然後將這些證書導入到嵌入式軟件中。現在您可以像Windows一樣驗證電子郵件證書(即使用各種與x.509相關的RFC和CRL)