如何为s_client和s_server指定中间证书?

时间:2019-03-21 16:42:10

标签: openssl certificate

openssl verify有一个-untrusted选项,用于指定位于它们之间的中间证书链。

  • 使用-CAfile-CApath选项指定的根CA证书
  • 和要验证的叶子证书,作为最后一个参数给出

有人知道我们如何为openssl s_clientopenssl s_server命令指定中间证书链吗?手册页没有对此说任何话。

如果中间链与客户机或服务器证书一起包含在传递给-cert选项的文件中,则该文件不起作用,仅从该文件中读取第一个证书。

1 个答案:

答案 0 :(得分:1)

元:这实际上不是编程或开发问题。它可能属于超级用户,也可能属于security.SX。

对于OpenSSL 1.1.0版(2016-08发布),您可以使用-cert_chain在文件中提供(准确的)中间/链证书和/或可以指定{{1} },并使用-build_chain和/或-chainCAfile从中选择所需的证书,类似于传统上使用-chainCApath-CAfile的方式。但是,这些在1.1.0中没有记录,只有1.1.1(2018-09);如果已安装这些手册页,或者在网络上查看s_clients_server,请查看这些手册页。

对于较低版本,您需要一个合并:-CApath-CAfile,名义上提供信任库来验证 peer 证书是否也被使用 (隐式)完成您的 own (自我)链。请注意,信任库中的非根CA证书用于构建用于发送和验证(接收)的链,但不用作这些版本中的验证,因此,包括它们在内,永远不会更改实际接受的对等证书有效。 (在1.1.0和1.1.1中,默认情况下它们仍然不是锚,但是如果您指定-CApath,则为锚。)