我想使用wget或任何其他命令从https://www.google.com下载ssl证书。任何UNIX命令行吗?wget或openssl?
我想使用wget或任何其他命令从https://www.google.com下载ssl证书。任何UNIX命令行吗?wget或openssl?
Answers:
为了下载证书,您需要使用openssl内置的客户端,如下所示:
echo -n | openssl s_client -connect HOST:PORTNUMBER \
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$SERVERNAME.cert
这会将证书保存到/tmp/$SERVERNAME.cert
。
-showcerts
如果要下载链中的所有证书,可以使用。但是,如果您只想下载服务器证书,则无需指定-showcerts
echo -n
给服务器一个响应,以便释放连接
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
删除有关证书链和连接详细信息的信息。这是将证书导入其他密钥库的首选格式。
-showcerts
显示服务器/叶子证书?我以为只在包含该开关时才显示中间物。
s_client
所示,始终显示服务器证书(如果有证书,即服务器响应问候,并且不选择匿名套件)。-showcerts
显示所有收到的证书,首先显示服务器证书,然后显示中间件和/或根。
我找到了答案。Openssl提供了它。
openssl s_client -connect $ {REMHOST}:$ {REMPORT}
openssl x509 -text <<EOF cert-text EOF
请参阅证书的详细信息
sudo rm -f cert.pem && sudo echo -n | openssl s_client -connect localhost:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./cert.pem
由serverfault.com/questions/139728/…
该GNUTLS客户端工具,gnutls-cli
也可以使这个简单的:
gnutls-cli --print-cert www.example.com \
< /dev/null \
> www.example.com.certs
该程序旨在为站点提供交互式客户端,因此您需要向其提供空输入(在本示例中为from /dev/null
)以结束交互式会话。
true | openssl s_client -connect google.com:443 2>/dev/null | openssl x509
openssl的这种模式需要stdin,因此我们通过提供它true |
,它连接到-connect参数中指定的服务器。2>/dev/null
使错误静音(可选),我们可以将整个输出传递到x509解析器中,指定/dev/stdin
使用shell管道作为输入文件。它将仅输出输出的-----BEGIN CERTIFICATE-----
to -----END CERTIFICATE-----
部分s_client
。您可以通过添加> google.com.pem
到命令末尾来将其重定向到文件。
尽我所知,这不会验证证书链,只能告诉您最终服务器提供的SSL身份。
x509
默认情况下读取标准输入,因此-in /dev/stdin
是多余的(3)s_client
验证服务器证书已正确链接到本地信任锚(根)并且未过期,但是您已经禁止显示此信息的信息(4)它不检查吊销(5)它仅在1.0.2中检查服务器证书中的名称,然后默认情况下不检查(但是您可以通过查看证书轻松地检查自己)之后)