NGINX Let's Encrypt Certbot Manual Installation
If you're trying to update an outdated SSL certificate or even if you're installing one for the first time and you don't trust Certbot to modify your NGINX config for you then this article is for you.
Install Certbot
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
Download Certificate
The downloaded certificates and all other Let's Encrypt/Certbot files will be written to /etc/letsencrypt
# The "certonly" flag is important it tells Certbot to only download the certificates
# and not to install them automatically by modifying your NGINX config
sudo certbot --nginx certonly
You will receive the message below after successfully running certbot
`privkey.pem` : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem` : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem` : will break many server configurations, and should not be used
without reading further documentation (see link below).
Manually Install Certificate
This was my old config with the outdated certificate.
server {
listen 80;
server_name canbyedfoundation.org www.canbyedfoundation.org;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name canbyedfoundation.org www.canbyedfoundation.org;
ssl on;
ssl_certificate /etc/nginx/ssl/canbyedfoundation_org-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/canbyedfoundation.org.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
}
}
To update the config I simply had to change the path to ssl_certificate
and ssl_certificate_key
server {
listen 80;
server_name canbyedfoundation.org www.canbyedfoundation.org;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name canbyedfoundation.org www.canbyedfoundation.org;
ssl on;
ssl_certificate /etc/letsencrypt/live/canbyedfoundation.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/canbyedfoundation.org/privkey.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
}
}
Verify Config File & Restart NGINX
sudo nginx -t && sudo nginx -s reload