1 openssl-指令 verify 用法: openssl verify 【-CApath directory】 【-CAfile file】 【-purpose purpose】【-untrusted file】 【-help】 【-issuer_checks】 【-verbose】 【-】 【certificates】 说明: 证书验证工具。 选项 -CApath directory 我们信任的 CA的证书存放目录。这些证书的名称应该是这样的格式: xxxxxxxx.0( xxxxxxxx代表证书的哈希值。 参看 x509指令的-hash) 你也可以在目录里 touch一些这样格式文件名的文件,符号连接到真正的证书。 那么这个 xxxxxxxx我怎么知道怎么得到?x509指令有说明。 其实这样子就可以了: openssl x509 -hash -in server.crt -CAfile file 我们信任的 CA的证书,里面可以有多个 CA的证书。 -untrusted file 我们不信任的 CA的证书。 -purpose purpose 证书的用途。如果这个 option没有设置,那么不会对证书的 CA链进行验证。 现在这个 option的参数有以下几个: sslclinet sslserver nssslserver smimesign smimeencrypt 等下会详细解释的。 -help 打印帮助信息。 2 -verbose 打印出详细的操作信息。 -issuer_checks 打印出我们验证的证书的签发 CA的证书的之间的联系。 要一次验证多个证书,把那些证书名都写在后面就好了。 验证操作解释: S/MIME和本指令使用完全相同的函数进行验证。 我们进行的验证和真正的验证有个根本的区别: 在我们对整个证书链进行验证的时候,即使中途有问题,我们也会验证到最后,而真实的验证一旦有一个环节出问题,那么整个验证过程就告吹。 验证操作包括几个独立的步骤。 首先建立证书链,从我们目前的证书为基础,一直上溯到 Root CA的证书. 如果中间有任何问题,比如找不到某个证书的颁发者的证书,那么这个步骤就挂。有任何一个证书是字签名的,就被认为是 Root CA的证书。 寻找一个证书的颁发 CA也包过几个步骤。在 openssl0.9.5a之前的版本,如果一个证书的颁发者和另一个证书的拥有着相同,就认为后一个证书的拥有者就是前一个证书的签名 CA. openssl0.9.6及其以后的版本中,即使上一个条件成立,还要进行更多步骤的检验。包括验证系列号等。到底有哪几个我也没看明白。 得到 CA的名称之后首先去看看是否是不信任的CA, 如果不是,那么才去看看是否是信任的CA. 尤其是 Root CA, 更是必须是在信任 CA列表里面。 现在得到链条上所有 CA的名称和证书了,下一...