在以下情况下,谷歌浏览器会开始警告用户他们的 SSL 连接不安全:
- 证书使用 SHA1 哈希算法,并且
- 证书在 2016-01-01 (或 2017-01-01 不同来源)或之后到期
因此,我正在尝试编写一种方法来确定证书是否受到影响。这是我维护的另一台服务器上的 SHA1 证书的示例,该证书在“安全”时间范围内到期:
$ curl -v --silent https://example.com/ 2>&1 | grep "expire\|SSL connection using"
* SSL connection using DHE-RSA-AES256-GCM-SHA384
* expire date: 2015-07-20 00:00:00 GMT
我怎么能确定这个证书是字符串中的 SHA1 DHE-RSA-AES256-GCM-SHA384
?字符串中的内容确保它256
看起来像是使用 256 位算法,尽管我知道这不是因为我自己使用$ openssl req -new -newkey rsa:2048 -nodes
. 谷歌搜索我找到了这个资源或支持的密码,但我不知道如何从该文档中确定密码强度。
如何通过 curl 确定密码强度,以便编写脚本?
你不能。此字符串仅描述用于加密的密码套件,并且独立于证书本身。您必须改为查看证书,如下所示:
请注意,仅验证证书是否包含 SHA-2 签名是不够的。您需要检查链中直到根的所有中间证书都没有使用 SHA-1 签名。
NSS具有一个环境变量NSS_HASH_ALG_SUPPORT,可用于控制使用该库的程序可以使用哪些散列算法。这个环境变量将受到包括 Firefox 在内的许多程序的尊重,
curl
如果它是在 NSS 支持下编译的(例如 Red Hat Enterprise Linux 和 Fedora)。如果
curl
使用 NSS 支持编译,并且正在使用 SHA-1 证书,则输出将如下所示: