在 SSL 中,信任库中的证书如何 matched/found?
In SSL how a certificate is matched/found in truststore?
在 SSL 中,它如何检查信任库中是否存在匹配的证书?是比对指纹还是序列号?
我一直以为是通过匹配指纹,但是当我运行一个java SSL debug下面是我得到的,我在那里看不到任何指纹。
*** Certificate chain
chain [0] = [
[
Version: V3
Subject: CN=XXXX
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: Sun RSA public key, 1024 bits
modulus: XXXX
public exponent: XXXX
Validity: [From: Mon Mar 16 22:48:10 UTC 2015,
To: Sun Jun 14 22:48:10 UTC 2015]
Issuer: CN=XXXX
SerialNumber: [ XXXXXXX]
Certificate Extensions: 1
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
...
]
]
]
Algorithm: [SHA256withRSA]
Signature:
...
]
***
我希望这不是一个重复的问题(我在发帖前检查了建议的问题)。
它不检查是否有匹配的证书。它检查是否有一个证书,其主题等于该证书的颁发者,并且其 public 密钥验证该证书的签名。
很多时候,Certificate Authority Key Identifier
在证书中出现时被标记为非关键以进行验证,它甚至并不总是存在。你不能真的依赖它作为指纹参考来使用。
验证是通过构建证书路径完成的,方法是将证书的颁发者 DN(专有名称)链接到您信任的 CA 证书的主题 DN 进行验证。
这在 Java PKI Programmer's Guide 的 CertPathBuilder/CertPathValidator 部分中进行了描述。 (更一般地说,这遵循 RFC 3820,因为还有其他属性需要检查。)
或者,您也可以直接在信任库中拥有准确的最终实体证书(不是 CA 证书)。在这种情况下,可以使用与证书完全匹配。
在 SSL 中,它如何检查信任库中是否存在匹配的证书?是比对指纹还是序列号?
我一直以为是通过匹配指纹,但是当我运行一个java SSL debug下面是我得到的,我在那里看不到任何指纹。
*** Certificate chain
chain [0] = [
[
Version: V3
Subject: CN=XXXX
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: Sun RSA public key, 1024 bits
modulus: XXXX
public exponent: XXXX
Validity: [From: Mon Mar 16 22:48:10 UTC 2015,
To: Sun Jun 14 22:48:10 UTC 2015]
Issuer: CN=XXXX
SerialNumber: [ XXXXXXX]
Certificate Extensions: 1
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
...
]
]
]
Algorithm: [SHA256withRSA]
Signature:
...
]
***
我希望这不是一个重复的问题(我在发帖前检查了建议的问题)。
它不检查是否有匹配的证书。它检查是否有一个证书,其主题等于该证书的颁发者,并且其 public 密钥验证该证书的签名。
很多时候,Certificate Authority Key Identifier
在证书中出现时被标记为非关键以进行验证,它甚至并不总是存在。你不能真的依赖它作为指纹参考来使用。
验证是通过构建证书路径完成的,方法是将证书的颁发者 DN(专有名称)链接到您信任的 CA 证书的主题 DN 进行验证。
这在 Java PKI Programmer's Guide 的 CertPathBuilder/CertPathValidator 部分中进行了描述。 (更一般地说,这遵循 RFC 3820,因为还有其他属性需要检查。)
或者,您也可以直接在信任库中拥有准确的最终实体证书(不是 CA 证书)。在这种情况下,可以使用与证书完全匹配。