Я использую следующую команду curl для публикации некоторых данных из IoT Thing в службу 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?
Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
Спасибо за помощь! - person Arbiter   schedule 27.08.2019-verbose
не дает мне больше информации... - person Arbiter   schedule 27.08.2019Get-PfxCertificate
в объединенном файле. Это проверяется? Он говорит, что у него есть закрытый ключ? Если да, то закручивается так же, как и отдельные параметры сертификата и ключа (не уверен, что завиток поддерживает это, но есть шанс, что да). - person Tomalak   schedule 27.08.2019