【问题标题】:How https can communicate with httphttps如何与http通信
【发布时间】:2018-11-30 21:08:11
【问题描述】:

我是谷歌云平台的新手。我面临与 http 握手 https 的问题,我看到一些文章明确提到 HTTPS 不能与 HTTP 握手。

我正在描述我的方法。我有 2 个 Windows Server 2016 的 VM 实例。

  1. 第一个实例将是 React Server。 Instance External IP 绑定了域名,也通过 nginx 反向代理实现了 ssl 证书。使用 443 并在 nginx.conf 文件中添加证书。 假设其外部静态 IP 为:35.35.35.36
  2. 第二个实例将是节点服务器。现在,对于每个 API 请求,React Server 都会使用端口调用 Node 服务器的外部 ip。

假设此实例外部 IP 为:35.36.36.36。

现在对于每个调用 react 调用 http://35.36.36.36:3000/ 的 api,这将产生错误

your page was loaded over HTTPS, but requested an insecure resource

前端在 http 上的早期情况,那么一切都很好。

我是否也应该为我的后端使用新的 ssl 证书。

非常感谢任何帮助。

【问题讨论】:

  • 不要为文档发明 IP 地址,请使用 RFC5737 中的 IP 地址。此外,这不是一个编程问题,因此这里是题外话。

标签: node.js reactjs ssl https google-cloud-platform


【解决方案1】:

是的,您无法从 HTTPS 连接到 HTTP,前者是安全的,后者是不安全的:https://stackoverflow.com/a/37068063/2873331

这是创建HTTPS的唯一动机:

HTTPS 的主要动机是对访问者进行身份验证 网站和保护交易所的隐私和完整性 传输过程中的数据。在 HTTPS 中,通信协议使用传输层安全性 (TLS) 或以前的安全套接字层 (SSL) 进行加密。

发送 HTTPS 请求时带有“代码”,该“代码”只能由正确配置的 HTTPS 服务器解密。如果发件人和收件人之间的任何人可以打开请求,他们仍然无法理解。只有知道“密码”的发送者和接收者才能解密消息。

因此,要么将 React 服务器转换为 HTTP 服务器,不推荐这样做,要么将 Node 服务器配置为接受 HTTPS 请求。

希望这能回答你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2013-02-06
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多