使用稍微旧一点的curl版本,我有一个方便的批处理文件:
curl --verbose -k https://%1 2>&1 |grep -E "Connected to|subject|expire"
这将显示连接到的IP,以及协商的实际证书的主题和到期日期,即使这不是该域名的正确证书-这有时是我们托管的一个问题(我们在多租户应用程序上托管了数千个域,大约一半具有自己的证书)。
具体来说,我会在grep过滤之前的stderr输出中看到类似这样的内容:
* Server certificate:
* subject: CN=academy-fran.chi.v6.pressero.com
* start date: Feb 22 04:55:00 2017 GMT
* expire date: May 23 04:55:00 2017 GMT
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
今天我不得不在我的机器上重新安装操作系统,并重新安装了curl。现在是版本7.52.1(x86_64-w 64-mingw 32);以前的版本是7.49.1(i686-pc-cygwin)。Curl不再显示任何证书信息,无论是否使用-k,如果TLS连接成功与否。
有没有一个选项可以把它还给我?
3条答案
按热度按时间pu3pd22g1#
对于OSX或Linux上的其他任何人,您可以将此添加到
~/.zshrc
文件中:示例用法,在运行
source ~/.zshrc
之后,在上述添加之后:感谢@ross-presser和his answer提供此功能的灵感。
v8wbuo2f2#
下面是我的替换批处理文件,使用openssl而不是curl:
这给了我这个输出:
dddzy1tm3#
所有建议使用openssl而不是curl的答案在较新的Win服务器(以及客户端版本)上都是无效的,其中默认安装了curl.exe,但没有openssl可用。但是curl.exe能够通过使用
这样的选择
在结果中,您会发现以下行
这个答案的来源是通过仔细阅读curl online manual page找到的。检查版本:
我需要这些信息来检查我们公司的代理是否打开SSL/TLS加密,检查它是否有恶意代码,并在将其发送给客户端之前重新加密,并以如下方式使用它:
编辑:排印错误已修复