我需要下载远程服务器的SSL证书(不是HTTPS,但SSL握手应与Google Chrome / IE / wget相同,并且curl都会给出证书检查失败错误),并将证书添加为我的笔记本电脑中受信任的Windows。证书存储,因为我无法让我的IT人员为我提供CA证书。
这是用于办公室通信的,所以我不能真正使用实际的客户来获取证书。
我该怎么做,我有Windows 7和一堆Linuxes,所以任何工具/脚本语言都可以。
我需要下载远程服务器的SSL证书(不是HTTPS,但SSL握手应与Google Chrome / IE / wget相同,并且curl都会给出证书检查失败错误),并将证书添加为我的笔记本电脑中受信任的Windows。证书存储,因为我无法让我的IT人员为我提供CA证书。
这是用于办公室通信的,所以我不能真正使用实际的客户来获取证书。
我该怎么做,我有Windows 7和一堆Linuxes,所以任何工具/脚本语言都可以。
Answers:
如果您有权访问OpenSSL,请尝试
openssl s_client -connect {HOSTNAME}:{PORT} -showcerts
将{HOSTNAME}和{PORT}替换为您的任何值。
-servername
获得虚拟主机证书的选项。gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971
获取和下载证书的一种快速方法是运行以下命令,该命令将-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
openssl s_client -showcerts
显示接收到的链中的所有证书(如果连接成功),但是通过管道传输openssl x509
仅采用第一个证书,而丢弃其余证书。要获得所有证书,请使用...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p'
或,...| awk '/^-----BEGIN CERT/,/^-----END CERT/'
也可以使用稍微复杂一点的awk
证书来将每个证书放在单独的文件中,这使得它们更易于与openssl
其他工具一起使用。
index.html
=>HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html.1’
老实说,我以前从未尝试过(从来不需要),但是,我刚刚在Firefox中尝试过,它似乎可以保存:
View Certificate
Details
标签Export
使用Chrome浏览器导出证书
2.单击锁定符号,然后单击详细信息
从Chrome版本56开始,您需要执行以下操作:进入“三点菜单”->“更多工具”->“开发者工具”,然后单击“安全性”选项卡。这将为您提供带有“ 查看证书”按钮的“ 安全概述”。
单击查看证书按钮。
将打开一个模式窗口。它有两个窗格。最上面的一个显示站点证书(列出的最后一个),中间证书和根证书(最上面的证书)的信任层次结构。
第二个较大的窗格显示其中一个证书的详细信息。
可能有零个或多个中间证书。
请注意,根证书具有金色图标。其他的都有蓝色边框。
请参见下面的屏幕截图。
导出证书:
这是gbroiles的回答,但我想指出的是,卷曲的项目有更多的一些细节页面上使用openssl
,以节省远程服务器的SSL证书:
openssl s_client -connect {HOSTNAME}:{PORT} | tee日志文件
QUIT
,然后按Enter / Return键。如果要查看证书中的数据,可以使用:
openssl x509-通知PEM-输入certfile-文本-out certdata
certfile
从中提取的证书在哪里logfile
?看看certdata
。
自动化的
-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
login.keychain
通过Keychain Access
应用程序将其复制到自己用户的账户中。只需浏览到System / SystemRoot中的证书,然后单击并将其拖到login
钥匙串中即可。
-d
从命令中省略掉将仅适用于用户钥匙串而不是系统钥匙串。
trustAsRoot
而不是trustRoot
为了正确添加中间证书。