在Laravel Homestead上使用SSL

在Laravel Homestead上使用SSL,laravel,ssl,laravel-5,https,homestead,Laravel,Ssl,Laravel 5,Https,Homestead,我使用的是拉维尔家园,它运转良好。现在我想在我的一个站点上实现HTTPS 我发现要实现这一点,只需将ssl:true添加到Homestead.yaml中,然后运行vagrant reload--provision 当我运行上面的命令时,我可以看到它正在工作,该命令显示: ==> homestead-7: Running provisioner: shell... homestead-7: Running: script: Creating Certificate: laravel-

我使用的是拉维尔家园,它运转良好。现在我想在我的一个站点上实现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

我已经看过很多帖子,但我认为它们太老了,没有提供实现结果的确切步骤:


正如我在评论中第一次怀疑和提到的那样。您的SSL配置似乎正确,因为它报告连接是安全的。您使用的是自签名证书,这对开发很好,但它没有经过公认的证书颁发机构的签名,因此浏览器不会信任它。但是,一旦您将项目部署到公众,您将需要从公认的证书颁发机构购买证书。一旦您获得该证书,则此错误将消失。

我假设您使用的是Windows+计算机。
在本例中,
laravelcashier.local
是您的web应用程序

您需要将Nginx中Vagrant内部的证书复制到外部文件夹:

$sudo cp/etc/nginx/ssl/laravel-cashier.local.crt~/laravel-cashier/laravel-cashier.local.crt

在Windows环境中,您可以双击并选择下一个特定存储来安装此证书:

可信根证书颁发机构

重新启动浏览器。完成了

有关如何添加证书的详细信息:


注意:这对于特定的浏览器是有效的:Google Chrome这只是一个有一年历史的问题,但感觉这是一个非常古老的问题

首先-使用6.1.0版本的“laravel/homestead”漫游框,您不需要任何
ssl:true
,默认情况下它处于活动状态,但是您的浏览器不知道它是否可以信任ssl证书


浏览器信任对于laravel和homestead来说是一个不同的问题,请参阅答案以解决它。

如果您将laravel 8 homestead与诸如出纳/Stripe之类的软件包一起使用,Firefox的一个很好的解决方法是为您的服务器应用认证例外,请查询“关于:首选项”“然后搜索证书并添加例外情况。

是否可以添加有关不安全内容的详细信息,如果单击地址栏中显示不安全内容的位置,您应该能够准确地看到浏览器不喜欢这种情况的内容。”。由于站点实际显示,我猜这不是SSL问题,但它可能不喜欢您自己生成的证书。@ChrisBaldwin adddalso请检查控制台是否有任何消息。控制台上没有任何内容可以从开发人员工具添加安全选项卡。确定,有什么方法可以在我的本地开发中获得全功能SSL证书吗?我正在使用Nginx。从技术上讲,SSL连接正在工作。连接是加密的。浏览器试图提醒您注意的是,正在使用的证书未经浏览器识别的证书颁发机构验证。在开发中,这应该不是问题,因为您知道证书的来源。一旦您让公众访问您的站点,您将希望对其进行更改,以便其他人知道他们可以信任您的站点。您始终可以从证书颁发机构购买证书用于开发,然而,这对我来说似乎是一笔不必要的开发费用。这救了我的命。对我来说,这里提到的是:我不知道指定端口(44300)会很重要。我的主机文件有192.168.10.10 mypcname.local。这对我来说仍然不起作用。这些步骤似乎是合理的,但我已经尝试过很多次了,我的本地站点仍然表示“不安全”,尽管它是通过https(通过Homestead的44300端口)提供的。对我有效的方法是在执行以下步骤时复制根证书-ca.homestead.homestead.crt仅在我导入两个证书后才为我标记:
/etc/nginx/ssl/ca.homestead.homestead.crt
以及
/etc/nginx/ssl/mypage.test.crt