How to Install SSL Certificate on Nginx? Print

  • Install SSL Nginx, Configure SSL Linux, SSL on Ubuntu, SSL Certificate Nginx, HTTPS Nginx, SSL on CentOS, Linux SSL Setup
  • 235

Introduction

Securing your Nginx server with SSL certificates is crucial for encrypting data and ensuring safe communication between clients and servers. This guide covers the steps for installing SSL certificates on Nginx for various Linux distributions.

Prerequisites

  • Root or sudo access to the server.
  • Registered domain name with DNS pointing to your server.
  • Nginx installed and running on your server.

Installing SSL Certificates on Nginx

Ubuntu/Debian

Use Certbot to install and manage SSL certificates.

sudo apt update
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

Test the SSL configuration:

sudo nginx -t
sudo systemctl reload nginx

CentOS/RHEL

Enable the EPEL repository and install Certbot:

sudo yum install epel-release -y
sudo yum install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

Verify and reload Nginx:

sudo nginx -t
sudo systemctl reload nginx

Fedora

sudo dnf install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

Check and restart Nginx:

sudo nginx -t
sudo systemctl reload nginx

Arch Linux

sudo pacman -S certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Reload Nginx:

sudo nginx -t
sudo systemctl reload nginx

Manual SSL Configuration

If you have purchased an SSL certificate, follow these steps:

  • Upload the certificate and key files to /etc/nginx/ssl/.
  • Edit your site configuration file (e.g., /etc/nginx/conf.d/example.com.conf):
server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    location / {
        root /var/www/example.com;
        index index.html;
    }
}

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Test and reload Nginx:

sudo nginx -t
sudo systemctl reload nginx

Troubleshooting

    • Check Logs: Use logs to identify issues:
      • Error log: /var/log/nginx/error.log
      • Access log: /var/log/nginx/access.log
    • Firewall: Open ports 80 and 443:
sudo ufw allow 'Nginx Full'
    • Certificate Renewal: Automate renewal using:
sudo certbot renew --dry-run

Best Practices

  • Use strong SSL/TLS settings to ensure security.
  • Regularly update Nginx and Certbot to the latest versions.
  • Use tools like SSL Labs to test your SSL configuration.

Conclusion

Installing SSL on Nginx enhances security and builds trust with users. By following this guide, you can set up SSL on various Linux distributions seamlessly. Regular maintenance and testing ensure your site remains secure and up-to-date.


Was this answer helpful?

« Back