我知道nscurl
自 El Captain 以来 MacOS 就出现了此功能,但我想知道是否有办法使用 PowerShell 获得类似的结果。
这回答展示了如何获取证书,但它并不等同于运行:
nscurl --ats-diagnostics https://google.com:443
在 macOS 上。Windows 上有类似的东西吗?
答案1
我不知道 PowerShell 的等效物,但以下内容仍然可能有所帮助,要么手动执行相同的操作,要么帮助某人构建适当的 PowerShell 脚本。
从名称和我读到的内容nscurl
来看,这是一个包装器,curl
它只是确保服务器符合 Apple 的要求,即 TLS 1.2 和 PFS
curl --verbose
已经为您提供了类似的东西SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
,因此您需要正确显示它,然后根据 Apple 完整规格测试值。
Apple 完整要求 (https://www.apple.com/business/docs/iOS_Security_Guide.pdf) 实际上是:
- 密码选择仅包括提供前向保密性的套件,特别是 GCM 或 CBC 模式下的 ECDHE_ECDSA_AES 和 ECDHE_RSA_AES如果某些域禁用了前向保密,则可以添加 RSA_AES
- 服务器必须支持 TLS v1.2 和前向保密
- 证书必须有效,并使用 SHA-256 或更高版本签名,且至少具有 2048 位 RSA 密钥或 256 位椭圆曲线密钥
因此,所有这些基本上都是由curl --verbose
或甚至给出的openssl s_client
。
事实上,阅读https://forums.developer.apple.com/thread/14816您发现还有另一个名为 的工具TLSTool
可以提供帮助,并且根据其 API,它显然是一个包装器openssl
。