Install Let's Encrypt Certificates on Ubuntu or Amazon Linux for Nginx

Install Let's Encrypt Certificates on Ubuntu or Amazon Linux for Nginx

Marcell Simon
Marcell Simon

First you have to set the A Record for your domain.

Then to be sure, update your packages:

sudo apt update

Install certbot for older Ubuntu:

sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-nginx -y

On Ubuntu 20.04:

sudo apt install certbot python3-certbot-nginx

On Ubuntu 22.04, they recommend installing it with snap:

sudo snap install core; sudo snap refresh core

sudo snap install --classic certbot

#link the command so you can run it with the certbot command
sudo ln -s /snap/bin/certbot /usr/bin/certbot 

Or on Amazon Linux 2

sudo wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
sudo yum-config-manager --enable epel*
sudo yum install -y certbot python2-certbot-nginx

Add `server_name` tag to each nginx server.

server {
	server_name techread.me;
	
    location /lets {
    	return 200;
    }
}

Reload nginx

sudo systemctl reload nginx

Add certicifates

sudo certbot --nginx -d techread.me

Refresh certificates if it didn't do it automatically

sudo certbot renew

Amazon Linux does not refresh the certificate automatically. To set it up, add a cron job.

export VISUAL=nano; crontab -e

and add a new line:

0 8 28 */2 * sudo certbot renew

This will regenerate the certificate every 2nd month on the 28th at 08:00.