sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo apt-get install nginx
sudo cp /etc/nginx/sites-available/default /etc/nginx/conf.d/test.example.com.conf
sudo nginx -t
sudo systemctl reload nginx
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
# self-signed.conf
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
# ssl-params.conf from https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=nginx-1.10.3&openssl=1.0.1e&hsts=yes&profile=intermediate
...
ssl_dhparam /etc/ssl/certs/dhparam.pem;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
# why authenticator standalone, https://github.com/certbot/certbot/issues/5405#issuecomment-356498627
sudo certbot --authenticator standalone --installer nginx --pre-hook "service nginx stop" --post-hook "service nginx start" -d test.example.com -d www.test.example.com
more /var/log/letsencrypt/letsencrypt.log