如何将远程服务器 SSL 证书本地保存为文件

如何将远程服务器 SSL 证书本地保存为文件

我需要下载远程服务器的 SSL 证书(不是 HTTPS,但 SSL 握手应该与 Google Chrome/IE/wget 和 curl 相同,所有证书检查都失败错误)并将该证书添加为我笔记本电脑 Windows 证书存储中的受信任证书,因为我无法让我的 IT 人员给我 CA 证书。

这是用于办公室通信,所以我无法真正使用实际客户端来获取证书。

我该怎么做呢,我有 Windows 7 和一堆 Linux,所以任何工具/脚本语言都可以。

答案1

如果您可以访问 OpenSSL,请尝试

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

用您需要的值替换 {HOSTNAME} 和 {PORT}。

答案2

提取和下载证书的快速方法是运行以下命令,该命令将 -showcerts 的输出传送到 x509 ssl 命令,该命令会删除所有无关内容。例如:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

要使用证书,请使用 wget,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem

答案3

说实话,我以前从未尝试过这个(也不需要),然而我刚刚在 Firefox 中尝试过,它似乎可以保存:

  1. 单击顶部的 SSL 证书图标/底部的挂锁。
  2. 点击View Certificate
  3. 点击Details标签
  4. 从层次结构中选择您想要的证书 [图中未圈出]
  5. 点击Export

替代文本

答案4

自动化

我需要 -servername 来从我们服务器上的虚拟主机获取正确的证书。

openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem

您也可以转换为桌面证书

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

最后一部分是将其添加到您的证书中,不确定
我在 Windows 上是否使用过 Mac 钥匙串,应该类似......

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer

相关内容