Home Setup SSL for Nginx using CertBot
Post
Cancel

Setup SSL for Nginx using CertBot

1
2
3
4
5
domain=<your domain>
sudo mkdir -p /var/www/$domain/html
sudo chown -R $USER:$USER /var/www/$domain
sudo chmod -R 755 /var/www/$domain
sudo nano /var/www/$domain/html/index.html
1
2
3
4
5
6
7
8
<html>
    <head>
        <title>Welcome!</title>
    </head>
    <body>
        <h1>Success!</h1>
    </body>
</html>
1
2
3
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --nginx --agree-tos -d $domain
1
sudo nano /etc/nginx/sites-available/$domain
server {
	server_name <your domain>;

	listen 443 ssl;
	ssl_certificate     /etc/letsencrypt/live/<your domain>/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/<your domain>/privkey.pem;

	root /var/www/<your domain>;
	index index.html index.htm index.nginx-debian.html;

	location / {
		try_files $uri $uri/ =404;
	}
}
1
2
sudo ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/
sudo nano /etc/nginx/nginx.conf
uncomment this line below (ctrl + w for find)
server_names_hash_bucket_size 64;
1
2
3
4
sudo nginx -t
sudo service nginx reload
sudo ufw allow "Nginx HTTPS"
curl -vI https://$domain
This post is licensed under CC BY 4.0 by the author.