Laravel - 如何在本地开发环境上使用 HTTPS 服务 Laravel 项目

3

我在谷歌上搜寻了很多如何使用https的方案,甚至尝试了ngrok,但是它并不能很好地工作。下面是ngrok的代码。

php artisan serve
cd <path-to-ngrok>
./ngrok http localhost:8000

我确定Laravel有 artisan 用于提供 HTTPS。


我知道这是一个普遍的问题,但仍在寻找解决方案。 - Conda
2
内置的 Web 服务器不支持 HTTPS。你需要使用像 Apache HTTP 或 Nginx 这样的适合于 HTTPS 的正确 Web 服务器来服务。 - apokryfos
如何创建虚拟主机,如下链接所示:https://ultimatefosters.com/hosting/setup-a-virtual-host-in-windows-with-xampp-server/。如何启用HTTPS,如下链接所示:https://dev59.com/7G025IYBdhLWcg3wyJCV。除此之外,还有其他方法吗? - Conda
1
这两个链接适用于xampp(其中第二个字母代表apache),而不是内置的Web服务器。如果您正确设置xampp并遵循这些链接中的说明,您应该能够使https正常工作。 - apokryfos
2个回答

6
一种解决方法是使用Symfony的“serve”命令代替artisan servehttps://symfony.com/download 在本地安装Symfony CLI(我使用了homebrew安装说明),然后在Laravel根目录中运行symfony serve。这将默认在https下提供站点。

我推荐这个解决方案,因为它是一种简单的方法来安装一个工作证书,并测试任何端口上完全工作的https环境。 - KyleK
2
如果您仍然看到它默认在http上运行,那么这意味着您还需要运行此命令 symfony server:ca:install 来安装证书。 - Naser Nikzad

1

这是一个标准协议,HTTPS在443端口监听,你可以简单地运行命令来监听该端口。

php artisan serve --port=443

顺便说一下,php artisan serve仅用于开发环境,并且SSL证书仅用于生产环境,两者之间没有任何工作关系,因为它们的目的不同...

虽然你可以自定义Web服务器来安装SSL证书并监听自定义端口,但这样做会违反标准,公众可能会怀疑并无法接受...


1
我尝试了php artisan serve --port 443。http://127.0.0.1:443/login可以工作,但是https://localhost/login回报Access forbidden! 您没有访问所请求的对象的权限。它已经被服务器保护或者不可读取. - Conda
1
@conda 或许这个链接可以帮到你 [link] https://dev59.com/UmMm5IYBdhLWcg3wKskj#23594870 - Abanoub Hany
@NN73 玩家 // 允许从本地加载的资源使用无效证书。 chrome://flags/#allow-insecure-localhost - Юрий Светлов
不,它不起作用,以上答案都不起作用,无论是使用443端口还是启用Chrome不安全的本地主机。 - João Hamerski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接