gpt4 book ai didi

ssl - 使用 curl 显示收到的证书?

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:50 25 4
gpt4 key购买 nike

使用稍旧版本的 curl,我有一个方便的批处理文件:

curl --verbose -k https://%1 2>&1 |grep -E "Connected to|subject|expire"

这会向我显示连接到的 IP,以及协商的实际证书的主题和到期日期,即使那不是该域名的正确证书——这有时是我们托管的一个问题(我们按字面意思托管我们的 Multi-Tenancy 应用程序上有数千个域,大约一半有自己的证书)。

具体来说,在 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-w64-mingw32);前一个似乎是 7.49.1 (i686-pc-cygwin)。 Curl 不再显示任何证书信息,无论是否使用 -k,无论 TLS 连接是否成功。

是否有将其还给我的选项?

最佳答案

对于 OSX 或 Linux 上的任何其他人,您可以将此添加到您的 ~/.zshrc 文件中:

function seecert () {
nslookup $1
(openssl s_client -showcerts -servername $1 -connect $1:443 <<< "Q" | openssl x509 -text | grep -iA2 "Validity")
}

示例用法,在执行上述添加后运行 source ~/.zshrc 之后:

% seecert www.google.com
Server: 1.1.1.1
Address: 1.1.1.1#53

Non-authoritative answer:
Name: www.google.com
Address: 172.217.10.100

depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = www.google.com
verify return:1
DONE
Validity
Not Before: Nov 3 07:39:18 2020 GMT
Not After : Jan 26 07:39:18 2021 GMT

感谢转至 @ross-presserhis answer为这个功能的灵感。

关于ssl - 使用 curl 显示收到的证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42635253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com