无法通过安全(https)连接到我的AWS节点服务器

时间:2020-04-28 14:40:30

标签: node.js amazon-web-services sockets ssl ssl-certificate

我正在从事2人纸牌游戏。面向客户的两个页面托管在Github页面上,而节点服务器则在AWS上运行。

当我在本地查看客户端页面时,一切正常,但是当我尝试在Github页面上打开它们时,出现此错误:

混合的内容:“”页面已通过HTTPS加载,但请求了不安全的XMLHttpRequest端点“”。该请求已被阻止;内容必须通过HTTPS提供。

因此,然后我将连接URL更改为包含http s ,如下所示:

import pandas as pd import json json_str = """[ { "code": 0, "data": [{ "id":"111", "date":"1441326063" }, { "id":"132", "date":"1441526112" }], "account_id": 0 }, { "code": 0, "data": [{ "id":"111", "date":"1441326063" }, { "id":"132", "date":"1441526112" }], "account_id": 0 } ]""" json_dict = json.loads(json_str) df = pd.DataFrame([d for y in json_dict for d in y['data']])

我收到此错误:

index.js:83 GET https://ec2-18-191-142-129.us-east-2.compute.amazonaws.com:3000/socket.io/?EIO=3&transport=polling&t=N71Cs6c net :: ERR_SSL_PROTOCOL_ERROR

这是我的安全组:

Security Groups

我需要对SSL证书做些什么吗?我目前的设置是否有可能,因为我无权访问我所托管的域(Github Pages)。如果无法进行在线服务,我可以托管我的客户代码并获得SSL证书,还是必须购买域名并托管?欢迎任何帮助,但请尝试解释一下,因为我对这一切还很陌生。谢谢。

2 个答案:

答案 0 :(得分:1)

Ec2不支持这样的https(“开箱即用”)。

有多种方法可以实现,但是我建议您创建一个应用程序负载平衡器(https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html),然后在其上配置https(https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)。

其他解决方案可以使用Cloudfront,或直接在实例(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html)上配置https。

希望如此。

答案 1 :(得分:1)

如alcyon所述,从HTTP更改为HTTPS不会使您的应用程序通过HTTPS运行。有很多方法可以实现这一目标。在https://aws.amazon.com/premiumsupport/knowledge-center/configure-acm-certificates-ec2/上查看AWS的详细使用指南。