TLS在aws ec2失败:30592,MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE

nue99wik  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(71)

我有一个公共的WebSocket服务器正在运行,我有数百个嵌入式设备连接到它。
我想把我的服务器搬到亚马逊,所以我做了一个EC2示例,并在上面安装了我的软件。
当我尝试从浏览器连接时,连接成功,但是当使用嵌入式设备进行测试时,我从标题中获得错误:

(-30592, 'MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE')

字符串
该设备是乌藨子皮科W的和运行不稳定的微Python版本(v1.19.1 2022-09-26),我不能改变不幸.
下面是违规代码:

import usocket as socket
import ussl

uri = urlparse("wss://...")
assert uri

sock = socket.socket()

# allow 30 seconds for initial ws connection
sock.settimeout(30)

addr = socket.getaddrinfo(uri.hostname, uri.port)
sock.connect(addr[0][4])

if uri.protocol == 'wss':
    try:
        sock = ussl.wrap_socket(sock, server_hostname=uri.hostname)
    except Exception as e:
        sock.close()
        print(e)


我在本地安装了WebSocket服务器软件,并让我的嵌入式设备在本地网络上连接到它(使用自签名证书),所以我倾向于相信这个错误与我在亚马逊上设置它的方式有关。
到目前为止,我对问题可能在哪里有两个想法:
1.我读到亚马逊正在放弃对TLS < 1.2的支持,老实说,我认为这不应该与我的示例有关,但谁知道呢?
1.我不知道流量是如何通过AWS路由的,以及它是如何到达我的EC2示例的,服务器在那里运行,可能TLS在某个地方中断了。
如果有更多AWS经验的人可以帮助我,我将非常感谢。

qlfbtfca

qlfbtfca1#

根据法律,我花了2天时间把头撞在墙上,然后一旦我提出一个问题,我就找到了解决方案。
显然,我在我的新机器上获得了ECDSA证书,并且似乎在Micropython v1.20.0中添加了ECDSA支持
我所要做的就是恢复到RSA,使用certbot不会更容易:

certbot certonly --key-type rsa

字符串
最初我决定删除这个问题,因为这是一个非常具体的案例,可能没有其他人会陷入,但如果有人这样做,这里是。

相关问题