有没有办法检查证书是客户端证书还是服务器证书?

时间:2021-06-18 18:14:05

标签: certificate handshake jks

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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 上打开证书时,您可以在此处看到扩展名:

Client Auth Certificate

Server Auth Certificate