我正在使用Laravel Homestead并且工作正常。现在我想在我的一个站点上实现HTTPS。
我发现为了达到这个目的,你只需要将ssl: true
添加到Homestead.yaml中,然后运行vagrant reload --provision。
当我运行上面的命令时,我可以看到它工作,显示:
==> homestead-7: Running provisioner: shell...
homestead-7: Running: script: Creating Certificate: laravel-cashier.local
==> homestead-7: Running provisioner: shell...
homestead-7: Running: script: Creating Site: laravel-cashier.local
在/etc/nginx/ssl
中,我可以看到创建了这3个文件:
-rw-r--r-- 1 root root 683 Jul 19 16:26 laravel-cashier.local.cnf
-rw-r--r-- 1 root root 1269 Jul 19 16:26 laravel-cashier.local.crt
-rw-r--r-- 1 root root 1704 Jul 19 16:26 laravel-cashier.local.key
但接下来呢?
当我尝试使用https运行网站时:
我还需要做其他任何步骤吗?
注意:我使用的是最新的Homestead版本2.1.0。
我已经看过很多帖子,但我认为它们太旧了,并没有提供实现结果的确切步骤:
https://laracasts.com/discuss/channels/tips/tip-how-to-enable-ssl-in-homestead-20
https://laracasts.com/discuss/channels/servers/homestead-ssl
我假设您正在使用带有Vagrant的Windows + Homestead机器。
在这种情况下,laravel-cashier.local
是您的Web应用程序。
您需要将Nginx中的Vagrant内的证书复制到外部文件夹:
$ sudo cp /etc/nginx/ssl/laravel-cashier.local.crt ~/laravel-cashier/laravel-cashier.local.crt
在Windows环境中,您可以通过双击安装此证书并选择下一个特定存储:
受信任的根证书颁发机构
重启浏览器。完成。
有关如何添加证书的更多信息:https://technet.microsoft.com/en-us/library/cc754841(v=ws.11).aspx#BKMK_addlocal
注意:这适用于特定浏览器:Google Chrome
这是我第一次怀疑并在我的评论中提到的。您的SSL配置似乎是正确的,因为它报告连接是安全的。您使用的是自签名证书,该证书适用于开发,但未由认可的证书颁发机构签名,因此浏览器不会信任它。但是,一旦将项目部署到公众,您将需要从认可的证书颁发机构购买证书。获得该证书后,此错误将消失。
这只是一年的问题,但感觉它真的很旧。
Fist - 使用版本6.1.0的'laravel / homestead'流浪盒你不需要任何ssl: true
,它默认是活动的,但是你的浏览器不知道它是否可以信任ssl证书。
浏览器信任是laravel和宅基地的另一个问题,请参阅this解决方案。