2012-08-31 26 views
0

我有一個OAuth2 api暴露在HTTPS上運行。由於OAuth2依賴於HTTPS的安全性(不做任何自己的簽名),我在開發人員文檔中添加了一條註釋,鼓勵開發人員確保他們在客戶端應用程序中驗證SSL證書。您是否應該提供一個crt文件來幫助人們驗證OAuth2 api上的證書?

我注意到,一些應用程序使CRT文件公開可用的或包括在他們的客戶:https://github.com/stripe/stripe-ruby/tree/master/lib/data

我想這是隻是爲了確保它是使用權證書(而不是任何系統上安裝的)?如果是這樣,在您的API頁面上向開發人員公開此crt文件是否是一個好主意,以及生成此文件的簡單命令/方法是什麼?

謝謝!

回答

2

當以這種方式公開證書時,他鼓勵客戶對證書進行二進制比較,即通過構建證書鏈和驗證證書來驗證證書,而不是通過相應標準定義的方式),而只是通過比較所提交的證書證書與存儲在客戶端中的證書。

這種方法打破在幾個方面:

  1. 二進制比較不讓客戶知道該證書被吊銷
  2. 與二進制比較服務器證書的改變都需要更新所有客戶端,以便新的證書將包括在那裏。未能升級將意味着無法連接。

因此,包含證書和「直接」使用此類證書對於服務器所有者或客戶端都是沒有意義的。

二進制比較適用的唯一情況是使用自簽名證書(在這種情況下,構建和驗證鏈不起作用)。但是在任何情況下自簽名證書都是一個壞主意(由於上面列出的原因和其他一些原因)。

+0

好有趣,謝謝你的迴應尤金。有一件事我不太清楚 - 二進制比較僅僅是比較我假設的文件的字節數,但如果你有crt文件,爲什麼用戶不會真的使用它來驗證你的ssl證書?我承認我對這些證書鏈的細節有點生疏。謝謝您的幫助。 –

+0

@BrianArmstrong不知道我理解你的問題。當客戶端連接到您的服務器時,證書由服務器提供並通過構建證書鏈進行驗證。在這種情況下,crt文件是多餘的。那麼你爲什麼要提供crt文件呢? –

相關問題