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 your Homestead.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 the ssl-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! 🎉