通过服务器运行的 Django Rest API 连接到 LND 节点

问题描述 投票:0回答:1
    @swagger_auto_schema(tags=['Payment'])
    def get(self, request):
    

        url = (
            "<instance address>"
        )
        macaroon = connect.encoded_hex

        TLS_PATH ='tls.cert'

        headers = {"Grpc-Metadata-macaroon": macaroon}
        r = requests.get(url, headers=headers, verify=TLS_PATH)  # disable SSL verification
        return Response(json.loads(r.text))

因此,当我从本地机器发送请求时,我可以连接并获取信息,但是当我从运行在 Elastic Beanstalk env 上的带有负载均衡器的 EC2 发送请求时,它会失败。 我正在运行一个 t3a.large 实例类型并使用 Django 作为框架。

任何人都可以帮忙,因为现在我已经尝试了很多不同的解决方案。

这是我得到的错误:

HTTPSConnectionPool(host='<host>', port=8080): Max retries exceeded with url: /v1/getinfo (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1131)'))) 

谢谢你

python django amazon-web-services amazon-elastic-beanstalk bitcoin
1个回答
0
投票

我遇到了同样的问题,通过将我的服务器端点和公共 ipv4(运行 lnd 的地方)添加到 lnd.conf 文件中解决了这个问题,如下所示:

tlsextraip=127.0.0.1, <public_ipv4>
tlsextradomain=ec2-x-aa-bb-cc.eu-central-1.compute.amazonaws.com

然后停止 lnd,删除 tls.cert 并再次启动 lnd 以生成新的 tls.cert。因为它是自签名证书,您也应该将其添加到受信任的证书中。

© www.soinside.com 2019 - 2024. All rights reserved.