如何验证签名证书?

Jas*_*ett 2 ssl

我有两个 SSL 证书:

  • 一个snipsalonsoftware.com目前已经到位并正常工作。
  • 对于一个app.snipsalonsoftware.com已经购买但尚未安装。

我现在要做的只是验证snipsalonsoftware.com证书的有效性,这样当我尝试验证 时app.snipsalonsoftware.com,我知道我得到了一个有意义的答案。

这是 Comodo 通过 DreamHost 的专业签名证书,而不是自签名证书。如何使用openssl或其他方法验证信任链?

当我尝试时,这是我现在得到的:

$ openssl verify domain.pem 
domain.pem: /OU=Domain Control Validated/OU=Provided by New Dream Network, LLC/OU=DreamHost Basic SSL/CN=snipsalonsoftware.com
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)

但对我来说,这就像废话,当然你不能得到当地的证书——没有。我不明白我应该如何验证专业签名的证书。

Sha*_*den 7

通常,这意味着 OpenSSL 的默认 CA 路径不包含签署您正在检查的证书的证书 - 通常是中间证书。

您需要获取中间件的副本(大多数 CA 将提供,或者您可以从信任有效的 SSL 连接中获取它),并在您的openssl命令中使用-CAfile intermediate.pem.

  • 请注意,如果您使用`-CAfile中间件.pem`,那么您告诉openssl中间件是完全可信的,这意味着您没有验证整个链,只是最后一步。如果这对你很重要,你应该使用 `cat middle.pem yourcert.pem | openssl verify` 代替。 (4认同)