Laravel sail thrown error about nginx sll certificate, how to fix it?

Updated: Jan 31, 2025

Laravel sail thrown error about nginx sll certificate, how to fix it?

To fix the Laravel Sail thrown error about Nginx SSL certificate, follow these steps:

  1. Check the SSL certificate: The first step is to check if the SSL certificate is installed correctly on your system. You can verify this by running the following command in your terminal:

    openssl s_client -connect 0.0.0.0:443 -showcerts
    

    If the SSL certificate is installed correctly, you should see the certificate details in the output. If not, you will need to install the certificate manually.

  2. Install the SSL certificate: To install the SSL certificate, you can follow these steps:

    a. Download the SSL certificate files: You should have two files: a private key (.key) and a certificate (.crt). Save these files in the /var/www/html directory of your Laravel project.

    b. Create a self-signed certificate for Nginx: If you don't have a SSL certificate, you can create a self-signed certificate using OpenSSL. Run the following commands:

    openssl req -x509 -newkey rsa:4096 -nodes -out nginx.crt -keyout nginx.key -days 365
    

    You will be prompted to enter some information. Fill in the required fields and save the files in the /etc/ssl/certs directory and /etc/ssl/private directory, respectively.

  3. Configure Nginx: You need to configure Nginx to use the SSL certificate. Edit the nginx.conf file in the /var/www/html/sail/var/www/nginx/conf directory and add the following lines inside the server block:

    listen 443 ssl;
    ssl_certificate /var/www/html/path/to/your/certificate.crt;
    ssl_certificate_key /var/www/html/path/to/your/private.key;
    

    Replace path/to/your/certificate.crt and path/to/your/private.key with the actual paths to your SSL certificate and private key files.

  4. Restart Nginx: After configuring Nginx, restart the Nginx server to apply the changes:

    sudo systemctl restart nginx
    
  5. Configure Laravel: Finally, you need to configure Laravel to use HTTPS. Edit the .env file in your Laravel project and set the APP_URL variable to https://yourdomain.com.

    APP_URL=https://yourdomain.com
    

    Restart the Laravel Sail container to apply the changes:

    sail up -d
    

    Your Laravel application should now be accessible via HTTPS. If you still encounter any issues, check the Laravel and Nginx logs for any error messages.