SSL 证书类型和密钥使用

信息安全 证书 openssl 服务器 客户 密钥用法
2021-09-05 11:04:28

我想使用 OpenSSL 创建 CSR 并将其提交给我的 CA(使用 Microsoft PKI)并接收可用于服务器身份验证和客户端身份验证的证书。我不清楚一些事情,这可能只是keyUsagensCertType之间的链接。

  1. 我是否足以包含在 CSR keyUsage=digitalSignature,keyEnciphermentextendedKeyUsage=serverAuth,clientAuth 中
  2. 签名 CA 是否可以选择忽略这些请求的属性并仅授予我服务器身份验证使用权限?
  3. nsCertType用于请求(例如,CSR)还是仅在使用 OpenSSL 签署证书时使用?

问候,迈克

1个回答

nsCertType是一个旧的特定于 Netscape 的扩展,它在 Netscape 浏览器还活着的时候就被使用了。你现在可以忘记它。

原则上,签名 CA 会以它认为合适的任何方式行事。它可以在您的证书中放入任何它想要的东西。您的证书请求只是一个建议您可以或多或少地依靠 CA 从您的请求中获取公钥并在证书中使用该公钥;对于其他所有内容(包括名称、密钥用法和其他扩展),这完全由 CA 决定。Microsoft 的证书服务使用“证书模板”进行配置,模板决定证书中的内容。根据我自己的测试,您放入证书的密钥用法和扩展密钥用法将被完全忽略。

客户端身份验证和/或服务器身份验证需要哪些扩展,取决于所涉及的软件。你会在我过去的散文中找到一些信息,例如这个这个那个