您能想到任何用于保存HTTPS服务器提供的证书的Linux命令行方法吗?使用curl / wget / openssl建立SSL连接并保存证书而不是HTTP响应内容。
等同于我正在寻找的gui,将浏览到HTTPS站点,双击浏览器的“安全站点”图标,然后导出证书。除了这里的目标是非交互地进行。
谢谢,吉姆
您能想到任何用于保存HTTPS服务器提供的证书的Linux命令行方法吗?使用curl / wget / openssl建立SSL连接并保存证书而不是HTTP响应内容。
等同于我正在寻找的gui,将浏览到HTTPS站点,双击浏览器的“安全站点”图标,然后导出证书。除了这里的目标是非交互地进行。
谢谢,吉姆
Answers:
就像是:
openssl s_client -servername remote.server.net -connect remote.server.net:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >/path/to/certificate.pem
这就是我与fetchmail一起使用的功能,用于检索支持SSL的IMAP或POP3服务器的证书(显然,我不使用端口443除外)
(请注意,“冗余” -servername
参数对于openssl
在SNI支持下发出请求是必需的。)
来自http://www.madboa.com/geek/openssl/#cert-retrieve
#!/bin/sh
#
# usage: retrieve-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
echo |\
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'