Ssl 您是否应该提供一个crt文件来帮助人们验证OAuth2API上的证书?

Ssl 您是否应该提供一个crt文件来帮助人们验证OAuth2API上的证书?,ssl,https,oauth-2.0,ssl-certificate,Ssl,Https,Oauth 2.0,Ssl Certificate,我公开了一个通过HTTPS运行的OAuth2API。由于OAuth2依赖于HTTPS的安全性(不做任何自己的签名),因此我在开发人员文档中添加了一条注释,鼓励开发人员确保在其客户端应用程序中验证ssl证书 我注意到一些应用程序公开了crt文件或将其包含在其客户端中: 我假设这只是为了确保它使用了正确的证书(而不是任何系统安装的证书)?如果是这样,在API页面上向开发人员公开此crt文件是一个好主意吗?生成此文件的简单命令/方法是什么 谢谢 当以这种方式公开证书时,他鼓励客户机对证书进行二进制比较

我公开了一个通过HTTPS运行的OAuth2API。由于OAuth2依赖于HTTPS的安全性(不做任何自己的签名),因此我在开发人员文档中添加了一条注释,鼓励开发人员确保在其客户端应用程序中验证ssl证书

我注意到一些应用程序公开了crt文件或将其包含在其客户端中:

我假设这只是为了确保它使用了正确的证书(而不是任何系统安装的证书)?如果是这样,在API页面上向开发人员公开此crt文件是一个好主意吗?生成此文件的简单命令/方法是什么


谢谢

当以这种方式公开证书时,他鼓励客户机对证书进行二进制比较,即验证证书的方式不是按照相应标准定义的方式(通过构建证书链并进行验证),而是简单地将提供的证书与存储在客户机中的证书进行比较

此方法在以下几个方面被破坏:

  • 二进制比较不会让客户端知道证书已被吊销
  • 通过二进制比较,服务器证书的更改需要更新所有客户端,以便在其中包含新的证书。升级失败意味着无法连接
  • 因此,无论是对于服务器所有者还是客户端,包含证书和“直接”使用此类证书都毫无意义


    二进制比较适用的唯一情况是使用自签名证书(在这种情况下,构建和验证链将不起作用)。但是自签名证书在任何情况下都是一个坏主意(由于上面列出的原因和其他一些原因)

    好的,很有趣,谢谢你的回复,尤金。有一件事我不太清楚——二进制比较只是比较我假设的文件的字节,但是如果你有crt文件,为什么用户不用它来验证你的ssl证书呢?我承认我对这些证书链的细节有些生疏。谢谢你的帮助。@BrianArmstrong不确定我是否理解你的问题。当客户端连接到服务器时,服务器将提供证书,并通过构建证书链进行验证。在这种情况下,crt文件是冗余的。那么,为什么要提供crt文件呢?