Invoke-WebRequest-实现ALPN TLS扩展

时间:2019-09-07 13:55:35

标签: amazon-web-services powershell tls1.2 aws-iot

我正在使用Invoke-WebRequest PowerShell命令集将数据发布到AWS IoT Core终端节点,我的身份验证方法是x509证书。

我的脚本在端口8443上运行良好,但是我需要它在端口443上连接到AWS,以便我们不需要在外围防火墙上打开端口8443。

AWS documentation指出: 使用X.509客户端证书身份验证在端口443上连接的客户端必须实现Application Layer Protocol Negotiation (ALPN) TLS扩展,并使用客户端发送的ALPN ProtocolName中上面列出的ALPN ProtocolNameList ClientHello消息。

这远远超出了我的了解,一个小时的搜索还没有使我更接近答案。

根据我的有限理解,可能需要在PowerShell脚本中使用.NET类来配置TLS。

不是我认为它为问题增加了任何价值,但这是我目前有效的要求。我正在尝试删除端口8443,以便我们所有人都能幸福地生活在HTTPS / 443上:

Invoke-WebRequest -Method POST -UseBasicParsing -Uri "https://something.amazonaws.com:8443/topics/something/something/publish?qos=1" -Certificate (Get-PfxCertificate "$($Global:PDPath)\Certificate.pfx") -Body $Body -ContentType application/json -ErrorAction Stop

为了在端口443上使用x509证书进行身份验证,我必须使用ProtocolNameList中的x-amzn-mqtt-ca协议在设备上配置ALPN扩展名,这将导致APLN参数包含在TLS {{1 }}。

有人知道吗?

0 个答案:

没有答案
相关问题