从服务器获取或卷曲自签名证书

从服务器获取或卷曲自签名证书

从我的浏览器中,我可以浏览到公司本地 Intranet 中的计算机,并(在将证书标记为受信任后)将该证书导出到文件中。我正在尝试将这个过程自动化到 shell 脚本中,这样我就可以在使用各种命令行工具时让我的生活变得更轻松,而不会放弃安全性。

尝试用 google 搜索这个主题很困难,并且主要产生了有关如何信任您在使用 wget 或 curl 时已经下载的证书的结果,但这不是我在这种情况下需要的。如何通过wget或curl将服务器的公共自签名证书下载到本地文件?

答案1

我不确定 wget 或curl,但如果您只关心公钥,则以下方法有效。

openssl s_client -connect hostname.domain.tld:port 2>&1 </dev/null | sed -ne '/BEGIN CERT/,/END CERT/p'

一般来说,当他们谈论下载证书时,它会是根证书。您可以使用以下命令找到 Verisign 的证书,然后将根证书 wget 或 curl 到您的系统上以使用 Verisign 证书进行身份验证。在本例中,它具体是“VeriSign Class 3 Extended Validation SSL SGC CA”根。

$ openssl s_client -connect verisign.com:443 2>&1 </dev/null | openssl x509 -noout -text | grep "CA Issuers"
            CA Issuers - URI:http://EVIntl-aia.verisign.com/EVIntl2006.cer

上面的命令应该适用于几乎所有显示链接证书的服务器。

相关内容