当应用程序本身不使用 SSL 时,如何正确将 HTTPS 重定向到通过 WireGuard 隧道连接的本地 HTTP?

当应用程序本身不使用 SSL 时,如何正确将 HTTPS 重定向到通过 WireGuard 隧道连接的本地 HTTP?

我有一个通过 Let's Encrypt 设置了 SSL 证书的域名,因此它只能通过https://example.com/

该域名通过 WireGuard 隧道连接到我的家用电脑,该电脑通过本地 IP 为 Laravel 应用程序提供服务,无需 SSL,因此在开发时我无需证书192.168.10.10即可访问。http://192.168.10.10

该域在 EC2 实例上的 Ubuntu VM 上运行,并使用 nginx 将域中的请求代理传递到本地 PC,本地 PC 也通过 nginx 为应用程序提供服务

当我通过本地 IP 在本地使用我的应用程序时,一切都运行良好。但是当我访问我的域时,https://example.com/有些东西不起作用。例如登录 - 当我访问https://example.com/login并尝试登录时,它首先提示我该The information you’re about to submit is not secure页面,因为我的应用程序本地未使用 HTTPS。然后当我单击时,Send Anyway它只会刷新登录页面而不是登录。

浏览器提示是The information you’re about to submit is not secure因为我在本地开发时,应用会生成不安全的URL,所以表单如下:

 <form method="POST" action="http://example.com/login">

因此,当我将其更改为安全 URL 时:

 <form method="POST" action="https://example.com/login">

它可以从域中运行!但是我419 | Page Expired从本地登录页面获取

在 EC2 实例中,我只是使用 nginx 作为代理,将所有内容从 http 重定向到 https,并从 URL 重定向到 WireGuard IP。

在本地电脑上,该应用程序也通过 nginx 在端口 80 上提供服务

相关内容