Setup LetsEncrypt On Linux

  • Last Created On Dec 08, 2024
  • 9
0 0

LetsEncrypt is a certificate authority with an automated client. In short, this means that you can secure your websites at no cost. That’s right, you can go from http://yourdomain.com to https://yourdomain.com for free. Note though, it’s at the discretion of LetsEncrypt to issue you a certificate.

Getting started

You will need git installed on your Linux distro.

Ubuntu, Debian

sudo apt-get update
sudo apt-get install git-all

RedHat, CentOS

sudo yum update
sudo yum install git-all

Installation

Now that git is installed on your system, you can clone the LetsEncrypt repo.

mkdir ~/src
cd ~/src
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo chmod g+x letsencrypt-auto
./letsencrypt-auto

Give it a little bit of time to update, install any missing dependencies as needed.

Using LetsEncrypt

Once Let’s Encrypt has finished installing, you can issue certificates in a snap.

For Apache2

Stop the apache2 service.

Then, run LetsEncrypt:

./letsencrypt-auto --apache --email=YOUREMAIL@YOURDOMAIN.COM -d YOURDOMAIN.COM -d SUB.YOURDOMAIN.COM -d ANYDOMAIN.YOUWANT.NET

This command calls LetsEncrypt, telling it that we are using Apache so that it can automate the install process. It notifies LetsEncrypt of our email address, and tells them the domains for which we would like certificates. You can use any domain you want after the -d flag because that tells LetsEncrypt “this person wants a cert for this domain”. LetsEncrypt will automate this whole process and add the proper lines of code to the config file for your domain.

For Nginx

LetsEncrypt for Nginx is very experimental. Use it at your own risk (make a backup your configuration first).

./letsencrypt-auto certonly --email=YOUREMAIL@YOURDOMAIN.COM -d YOURDOMAIN.COM -d SUB.YOURDOMAIN.COM 

This will generate a certificate in the following directory /etc/letsencrypt/live/YOURDOMAIN.COM.

To get the traffic switched over to using SSL, you will need to edit your Nginx site config file. For example:

sudo nano /etc/nginx/sites-enabled/default

In the config file, make sure that the server is listening on port 443 and that the SSL certificate locations are properly defined. Your config file should resemble the following:

server {
    listen 443;
    server_name yourdomain.com sub.yourdomain.com;

    root /usr/share/nginx/www;
    index index.html index.htm;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; 
}

Save the file, restart Nginx, and you’ll be ready to go!

Enjoy your new secure website!

Views: 9

Recent Articles

  • How to Install JAX with ROCm Acceleratio...
    96
  • Deploy a PyTorch Workspace on a Vultr Cl...
    71
  • Managing Backup Storage
    82
  • Automating FTP Backups in Windows Server
    71
  • Automating FTP Backups in Linux
    75

Popular Articles

  • Our General Terms & Conditions
    2630
  • Our Privacy Policy
    2474
  • Our Cookies Policy
    275
  • Our Terms of Use
    152
  • How to Install JAX with ROCm Acceleratio...
    96