2017-07-23 80 views
2

我使用的是Laravel Homestead,它工作正常。现在我想在我的一个站点上实现HTTPS。在Laravel Homestead上使用SSL

我发现要实现这一点,您只需将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网站:

enter image description here

enter image description here

enter image description here

我需要做任何其他步骤?

注:我正在使用最新的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 set up

+0

你可以添加一些细节什么是不安全的,如果你点击它说:有关如何添加证书

更多信息在地址栏中不安全,您应该能够确切地看到浏览器不喜欢这种情况。由于该网站实际显示,我猜想这不是一个SSL问题,但它可能不喜欢你自己生成的证书。 –

+0

@ChrisBaldwin新增 –

+0

同时检查控制台是否有任何消息。 –

回答

1

它正如我第一次怀疑并在我的评论中提到的那样。您的SSL配置似乎是正确的,因为它报告连接是安全的。您正在使用自签名证书,该证书适用于开发,但未经认可的证书颁发机构签名,因此浏览器不会信任它。但是,一旦您将项目部署给公众,您将需要从认可的认证中心购买证书。一旦你有了这个证书,那么这个错误就会消失。

+0

好的,有没有什么办法可以在我的本地开发中获得全功能的SSL证书?我正在使用Nginx。 –

+0

从技术上讲,SSL连接正在工作。连接已加密。所有浏览器试图引起您的注意的是,正在使用的证书尚未经过浏览器识别的证书颁发机构的验证。在开发中不应该是个问题,因为你知道证书的来源。一旦你有公众访问你的网站,那么你会想改变它,让其他人会知道他们可以信任你的网站。 –

+0

您可以随时从证书颁发机构购买证书以用于开发,但是这对我来说似乎是不必要的开发费用。 –

0

Homestead正常工作,但自签名证书不再从Chrome 58开始生效。您应该在Chrome中为每个站点手动安装根证书。例如:link

3

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

你需要复制内部放浪的证书,Nginx的外部文件夹:

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

在Windows环境中,您可以安装此证书与双击并选择下一个具体的存储:

受信任的根证书颁发机构

重新启动BR owser。完成。 https://technet.microsoft.com/en-us/library/cc754841(v=ws.11).aspx#BKMK_addlocal

注:这是适用于特定的浏览器:谷歌浏览器

+1

这只是拯救了我的生命 –

+0

对我来说有效的是https://mypcname.local:44300 /这里提到:https://laracasts.com/discuss/channels/servers/homestead-ssl/replies/308399我没有'不知道指定端口(44300)会很重要。我的hosts文件有'192.168.10.10 mypcname.local'。 – Ryan

+0

这仍然没有为我工作。这些步骤似乎是合理的,但我尝试了很多次,尽管它通过https(通过Homestead的44300端口)提供服务,但我的本地站点仍然说“不安全”。 – Ryan