使用以下内容查看证书的详细信息:
openssl x509 -noout -text -purpose -in mycert.pem
我发现了一堆目的标志(我发现它们是由附加在证书上的各种扩展设置的)。
这些目的标志之一是“任何目的”。我似乎找不到有关此标志以及为何或为何不设置此标志的任何文档。
你们有人知道我可以在哪里找到有关此目的的更多信息以及它的含义吗?
谢谢,
答案1
中的和行很Any Purpose : Yes
特殊。它是 openssl 特有的,表示当与不检查扩展的旧软件版本一起使用时将验证证书的内容。Any Purpose CA : Yes
openssl x509 -purpose
这些特定目的标志不能关闭或禁用。从 openssl 源中,目的检查在 openssl/crypto/x509v3/v3_purp.c 中定义为 static X509_PURPOSE xstandard[] = { … }。X509_PURPOSE_ANY 检查验证函数返回 1。
关于此标志最接近官方文档的可能是 Stephen N. Henson 博士(v3_purp.c 的作者)的这些帖子 -http://marc.info/?l=openssl-users&m=96219426811480和http://openssl.6102.n7.nabble.com/quot-critical-CA-FALSE-quot-but-quot-Any-Purpose-CA-Yes-quot-td29933.html。
引用史蒂夫的话:
“‘任何目的’设置是指允许任何内容通过,不进行任何检查。最初设置该设置是为了让人们在没有其他选择的情况下使用损坏的证书,并承担后果……从那时起,即使设置了‘任何目的’,CA 检查在代码中也是强制性的。因此,如果您真的试图将该证书用作 CA,它将被拒绝。”
答案2
KeyUsage 是 v3 扩展,它可能存在于证书中,也可能不存在。
id-ce-keyUsage 值的有用 (虽然略显过时) 摘要: http://www.alvestrand.no/objectid/2.5.29.15.html [新增加的值为 7 = encipherOnly 和 8 = decipherOnly]
诀窍在于这个“OID=2.5.29.15 keyUsage 扩展”可能存在也可能不存在在特定证书中。
OpenSSL 可能假设 PURPOSE_ANY 的意思是,此扩展不存在,因此“由你自己的策略”来决定是否使用它。否则,就没有与“ANY”相对应的位图值……
答案3
在 X.509 证书中,与大多数其他事物一样,如果某个术语未明确定义,则其含义将继承其直接周围的上下文。如果该上下文是“生命”,那么短语“任何目的”的字面意思就是生命。
因此,请检查颁发 CA 的证书策略、订户协议和依赖方协议,如果他们没有提及标志,那么它的含义就是盒子上所说的。
答案4
从:http://en.wikipedia.org/wiki/Digital_certificate
密钥用途:公钥的用途(例如加密、签名、证书签名……)。
请参阅 openssl 文档中的 -purpose 标志: http://www.openssl.org/docs/apps/x509.html#CERTIFICATE_EXTENSIONS