在Laravel Homestead上使用SSL

Par*_*ora 7 ssl https laravel laravel-5 homestead

我正在使用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
Run Code Online (Sandbox Code Playgroud)

/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
Run Code Online (Sandbox Code Playgroud)

但接下来呢?

当我尝试使用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

Laravel Homestead - SSL设置

fqu*_*nto 10

我假设您正在使用带有Homestead的 Windows + Vagrant机器. 在这种情况下,您的Web应用程序.
laravel-cashier.local

您需要将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

  • 这救了我一命 (2认同)
  • 对我有用的是按照以下步骤复制根证书-ca.homestead.homestead.crt (2认同)
  • 只有在我导入了两个证书后才为我工作:`/etc/nginx/ssl/ca.homestead.homestead.crt` 以及 `/etc/nginx/ssl/mypage.test.crt` (2认同)

Chr*_*win 1

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