Use SSL on Laravel Homestead

2019-02-09 21:30发布

I'm using Laravel Homestead and it is working fine. Now I want to implement HTTPS on one of my sites.

I found that to achieve that you just need to add ssl: true into Homestead.yaml and then run vagrant reload --provision.

I can see it working when I run above command which shows:

==> 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

And in /etc/nginx/ssl, I can see these 3 files are created:

-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

But what next?

When I'm trying to run the site with https:

enter image description here

enter image description here

enter image description here

Do I need to do any other steps?

Note: I'm using latest Homestead version 2.1.0.

I have already seen many posts, but I think they are too old and doesn't provide exact steps to achieve the result:

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

4条回答
够拽才男人
2楼-- · 2019-02-09 22:02

I assume you are using Windows + Vagrant machine with Homestead.
In this case laravel-cashier.local is your web application.

You need to copy the certificate inside Vagrant, in Nginx to external folder:

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

In Windows environment you can install this certificate with double-click and select the next specific storage:

Trusted Root Certification Authorities

Restart your browser. Done.

More info about how to add certificate: https://technet.microsoft.com/en-us/library/cc754841(v=ws.11).aspx#BKMK_addlocal

NOTE: This is valid for specific browser: Google Chrome

查看更多
Fickle 薄情
3楼-- · 2019-02-09 22:04

It is as I first suspected and mentioned in my comment. You SSL config seems correct since it reports the connection is secure. You are using a self signed certificate, which is fine for development, but it not signed by a recognized Certificate Authority and therefore the browser will not trust it. However once you deploy your project to the general public you will want to purchase a certificate from a recognized Certificate Authority. Once you have that certificate then this error will go away.

查看更多
狗以群分
4楼-- · 2019-02-09 22:08

This is only a year old question but it feels like it is really old one.

Fist - with a version 6.1.0 of 'laravel/homestead" vagrant box you don't need any ssl: true, it is active by default, however your browser would not know if it can trust the ssl certificate anyway.

The browser trust is a different issue to laravel and homestead, please see this answer to solve it.

查看更多
虎瘦雄心在
5楼-- · 2019-02-09 22:16

Homestead works correctly, but self signed certificates no longer valid as of Chrome 58. You should manually install root certificate in Chrome for each site. Example: link

查看更多
登录 后发表回答