This guide assumes prior experience with Vagrant and Laravel Homestead.
Laravel Homestead is an easy-to-use Vagrant box for local Laravel development, but getting SSL to work on a Windows host can be tricky if you've never done it before. This guide will show you how to enable SSL and how to trust the certificate in Firefox.
Prerequisites:
Let's create a new Laravel project for demonstration purposes:
composer create-project --prefer-dist laravel/laravel ssl-example
Now we need to configure a Homestead instance for our project:
cd ssl-example
composer require laravel/homestead --dev
vendor\\bin\\homestead make
You should see the following output in your console:
Homestead Installed!
Edit Homestead.yaml
and make the following changes:
- map: homestead.test
+ map: laravel.localhost
to: /home/vagrant/code/public
+ ssl: true
Note: Feel free to change
laravel.localhost
throughout the guide to a local domain of your choice.
Your Homestead.yaml
should now look similar to this:
ip: 192.168.10.10
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
-
map: 'D:\Documents\GitHub\ssl-example'
to: /home/vagrant/code
sites:
-
map: laravel.localhost
to: /home/vagrant/code/public
databases:
- homestead
name: ssl-example
hostname: ssl-example
ssl: true
Add the following line to C:\Windows\System32\drivers\etc\hosts
:
Note: The IP address should match
Homestead.yaml
192.168.10.10 laravel.localhost
Install the Homestead Vagrant Box:
vagrant box add laravel/homestead
Let's start our Vagrant box:
vagrant up
If you are using this guide to add SSL to an existing VM, use this command instead:
vagrant reload --provision
Wait until the provisioning process has been completed.
You should now be able to visit http://laravel.localhost in your browser:
Now we need to get the CA certificate from the VM:
vagrant ssh -c 'cat /etc/nginx/ssl/ca.homestead.ssl-example.crt' > ca.homestead.ssl-example.crt
Note: Change
ssl-example
to match yourHomestead.yaml
.
You should now have ca.homestead.ssl-example.crt
inside your ssl-example
folder.
In Powershell, as admin, run the following command to add the certificate to the certificate store:
certutil -addstore -enterprise -f "Root" ca.homestead.ssl-example.crt
Note: You can now remove
ca.homestead.ssl-example.crt
from thessl-example
folder.
Last but not least, we need to get Firefox to trust the certificate.
In Firefox, navigate to about:config
. Read this introduction if your unfamiliar with the Configuration Editor for Firefox.
Set security.enterprise_roots.enabled
to true
and restart Firefox.
You should now be able to visit https://laravel.localhost in your browser.
Congratulations! π
Top comments (1)
This really helped me, thanks