2012-08-31 23 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文件呢? –

相关问题