我正在尝试使用powershell从https站点获取html内容。
不幸的是,该站点仅包含一组有限的SSL/TLS密码套件,并且不支持Powershell可用的套件。
如果我尝试使用 Invoke-WebRequest cmdlet,我会收到以下错误消息:
Invoke-WebRequest : 请求已中止: 无法创建 SSL/TLS 安全通道。
问题:
- 有没有办法指定Powershell使用的客户端SSL/TLS密码套件?
- 是否有其他可用于发送 Web 请求的 cmdlet?
我不想切换到备用语言,但如果无法指定 PowerShell 使用的密码套件,我可能必须这样做。
以下是服务器支持的套件:
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f(
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b(
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39(
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (0x88(
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e(
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x67(
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33(
TLS_DHE_RSA_WITH_SEED_CBC_SHA (0x9a(
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (0x45(
我的解决方案是使用 Curl 的 win32 版本.exe与 SSL 支持,然后使用返回的 html。Curl 可以作为独立的 exe 从以下位置下载: link Curl exe 只需要位于 PATH 环境变量中的某个位置,或者在脚本中硬编码路径。