【问题标题】:Is there a way to check if a certificate is client cert or server cert?有没有办法检查证书是客户端证书还是服务器证书?
【发布时间】:2021-09-03 11:08:52
【问题描述】:

我收到了一个新的用于 ssl 连接的密钥库 .jks 文件来替换一个旧的但可以工作的 .jks 密钥库文件,但我收到了“意外握手消息:serve_hello”错误。我被告知要确保密钥库包含客户端证书,所以我使用 keytool 将其证书导出到 pem 文件,然后使用 openssl 检查目的。结果显示

证书用途: SSL 客户端:否 SSL 客户端 CA:否 SSL 服务器 : 是 SSL 服务器 CA : 否 ...

但是,当我应用相同的过程来检查旧但工作的 jks 文件时,我得到了相同的结果。想知道这是否是验证证书的正确方法?以及如何使用新的 jks 文件解决此握手错误?

谢谢!

【问题讨论】:

    标签: certificate handshake jks


    【解决方案1】:

    extended key usage 扩展包含定义用途的 OID:

    id-kp-serverAuth 对象标识符 ::= { id-kp 1 } -- TLS WWW服务器认证 -- 可能一致的密钥使用位:digitalSignature, -- keyEncipherment 或 keyAgreement

    id-kp-clientAuth 对象标识符 ::= { id-kp 2 } -- TLS WWW客户端认证 -- 可能一致的密钥使用位:digitalSignature -- 和/或 keyAgreement https://datatracker.ietf.org/doc/html/rfc5280第44页

    请参阅:https://oidref.com/1.3.6.1.5.5.7.3.1https://oidref.com/1.3.6.1.5.5.7.3.2

    在 Windows 上打开证书时,您可以在此处看到扩展名:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2014-09-05
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 2016-01-27
      相关资源
      最近更新 更多