通过 SSH 从 Linux CLI 检查站点证书

通过 SSH 从 Linux CLI 检查站点证书

假设某个网站返回了无效证书,Firefox 和 Chrome 会向用户发出可怕的警告。我想确保我的本地连接没有受到中间人攻击(在这种情况下,这确实有可能),所以我想通过 SSH 从另一个国家的远程服务器检查证书。如何做到这一点?

我确实尝试过简单地打开有问题的网站,elinkselinks显然它并没有因为证书无效而出现同样可怕的消息。

答案1

gnutls-cli首先使用或获取证书openssl s_client

gnutls-cli "$host" -p "$port" --insecure --print-cert < /dev/null > cert

openssl s_client -connect "$host:$port" -no_ign_eof < /dev/null > cert

然后转储所有证书信息(通常列出至少两个证书,服务器的证书和 CA 的证书):

certtool -i < cert

while openssl x509 -text; do true; done < cert

或者仅仅是最顶层证书的 SHA1 指纹:

certtool -i < cert | grep -A1 fingerprint

openssl x509 -noout -fingerprint -sha1 < cert

相关内容