openssl verify 验证证书
<openssl verify> <fym0121@163.com>
openssl verify 命令对证书的有效性进行验证,verify 指令会沿着证书链一直向上验证,直到一个自签名的CA。
环境根据<openssl ca>建立自签名的root CA,然后再用root CA签发另一个CA(我命名为alice),在用alice签发用户second的证书。最后我们对bob的证书进行验证。
目录结构为
├─alice
│ └─demoCA
│ ├─newcerts
│ └─private
├─demoCA
│ ├─newcerts
│ └─private
└─second
openssl verify[-CApath directory] [-CAfile file] [-purpose purpose] [-policy arg] [-ignore_critical] [-crl_check] [-crl_check_all] [-policy_check] [-explicit_policy] [-inhibit_any] [-inhibit_map] [-x509_strict] [-extended_crl] [-use_deltas] [-policy_print] [-untrusted file] [-help] [-issuer_checks] [-verbose] [-] [certificates]
-CApath directory 指定CA证书所在的目录,这个目录下可能存在证书链中的多个证书文件。为了对这个目录下的证书进行检索,证书文件的命名需要遵循xxxxxxxx.0,其中xxxxxxxx是openssl x509 -hash -in 证书, 的输出值,8个字母或数字。“.0”是要有的。
用root CA对alice的证书进行验证,使用-CApath选项。我们首先要x509命令的 -hash选项计算root CA的hash值。我们假定CApath目录为“CApath”,首先建立目录CApath,我们这次的工作目录依然为e:\openssl\foo.
E:\OpenSSL\foo>cat demoCA\cacert.pem >> alice\demoCA\cacert.pemE:\OpenSSL\foo>openssl verify -CAfile alice\demoCA\cacert.pem bob\bob.pembob\bob.pem: OK