我使用以下 curl 命令将一些数据从 IoT 事物发布到 AWS 的 IoT Core 服务。
curl.exe --tlsv1.2 --cacert root-CA.pem --cert certificate.pem --key private.pem -X POST -d "$($Body)" "https://ats.iot.eu-west-1.amazonaws.com:8443/topics/example/1"
该命令完美运行,但我想利用Invoke-WebRequest
命令行开关的功能。不幸的是,我无法弄清楚如何重写 curl 命令,主要是因为两个证书和密钥文件。
到目前为止,我所拥有的是:
# Set TLS to use version 1.2 (required by AWS)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Make the request
Invoke-WebRequest -Method POST -UseBasicParsing -Uri "https://ats.iot.eu-west-1.amazonaws.com:8443/topics/example/1" -Certificate (Get-PfxCertificate .\certificate.pem) -Body "Some example data!" -ContentType "application/json"
上面命令的输出是:
Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
如何像在 CURL 命令中一样使用密钥和根 CA 证书?