使用https域指定端口

使用https域指定端口,http,encryption,https,Http,Encryption,Https,我正在构建一个React本机应用程序,它目前使用服务器上的端口3000来发出Mongoose请求和其他请求,如下所示 http://<aws-ip-address>.compute.amazonaws.com:3000 http://.compute.amazonaws.com:3000 如果我没有弄错的话,我必须使用https,不确定这是苹果还是Firebase的要求 如果我使用类似 https://<aws-ip-address>.compute.amazonaw

我正在构建一个React本机应用程序,它目前使用服务器上的端口3000来发出Mongoose请求和其他请求,如下所示

http://<aws-ip-address>.compute.amazonaws.com:3000
http://.compute.amazonaws.com:3000
如果我没有弄错的话,我必须使用https,不确定这是苹果还是Firebase的要求

如果我使用类似

https://<aws-ip-address>.compute.amazonaws.com:443
https://.compute.amazonaws.com:443

那有效吗?您已经指定了“https”部分,然后使用端口再次指定?一个是否覆盖另一个(例如,在https://.compute.amazonaws.com:5000 它是不是https,因为它说的是“https”,但端口是5000)?对于“http”和端口80,同样的问题为简单起见,让我们假设URL如下所示:

scheme://fqdn:port/
方案(http或https)独立于端口,但http和https都有与之关联的默认端口。您需要一个方案和一个端口来建立连接

http://fqdn/
相当于
http://fqdn:80/

https://fqdn/
相当于
https://fqdn:443/

现在,浏览器默认为http,但如果省略该方案,某些浏览器将默认为https

当输入
fqdn:443/
时,浏览器将尝试打开
http://fqdn:443/
(目前,默认行为随着不同的浏览器制造商而改变),但前提是浏览器缓存中没有该fqdn的HSTS记录


输入
https://fqdn:80/
浏览器将按照定义使用https并连接到TCP端口80。当然,服务器必须为该端口上的TLS进行配置,并且必须有一个背后讲http协议的web服务器。

这是否回答了您的问题?还要注意,您的web服务器上需要SSL证书,并且您无法为
*.compute.amazonaws.com
域颁发有效的SSL证书,因为您不拥有该域,因此无法证明您拥有该域。对于从浏览器到EC2实例的实际有效HTTPS/SSL连接,您需要拥有一个域并在EC2实例上获得有效的SSL证书(例如使用letsencrypt),或者使用AWS ALB和来自证书管理器(ACM)的证书,并在那里终止SSL,并配置DNS a记录以路由到您的实例(或ALB)@ArtjomB。部分地。如果我选择,这是否意味着它是https还是http?您是否需要在服务器端进行更改以使端口80创建https连接?