1. Download the Let’s Encrypt Client
First, download the Let’s Encrypt client, certbot.
install certbot port
2. Настройка NGINX
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name example.com www.example.com;
}
3. Obtain the SSL/TLS Certificate
The NGINX plug‑in for certbot takes care of reconfiguring NGINX and reloading its configuration whenever necessary.
- 
- Run the following command to generate certificates with the NGINX plug‑in:
$ sudo certbot --nginx -d example.com -d www.example.com - Respond to prompts from 
certbotto configure your HTTPS settings, which involves entering your email address and agreeing to the Let’s Encrypt terms of service. 
 - Run the following command to generate certificates with the NGINX plug‑in:
 
When certificate generation completes, NGINX reloads with the new settings. certbot generates a message indicating that certificate generation was successful and specifying the location of the certificate on your server.
Congratulations! You have successfully enabled https://example.com and https://www.example.com 
-------------------------------------------------------------------------------------
IMPORTANT NOTES: 
Congratulations! Your certificate and chain have been saved at: 
/etc/letsencrypt/live/example.com/fullchain.pem 
Your key file has been saved at: 
/etc/letsencrypt/live/example.com//privkey.pem
Your cert will expire on 2017-12-12.
Note: Let’s Encrypt certificates expire after 90 days (on 2017-12-12 in the example). For information about automatically renenwing certificates, see Automatic Renewal of Let’s Encrypt Certificates below.
If you look at domain‑name.conf, you see that certbot has modified it:
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name  example.com www.example.com;
    listen 443 ssl; # managed by Certbot
    # RSA certificate
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    # Redirect non-https traffic to https
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } # managed by Certbot
}
4. Automatically Renew Let’s Encrypt Certificates
Let’s Encrypt certificates expire after 90 days. We encourage you to renew your certificates automatically. Here we add a cron job to an existing crontab file to do this.
- Open the crontab file.
$ crontab -e - Add the 
certbotcommand to run daily. In this example, we run the command every day at noon. The command checks to see if the certificate on the server will expire within the next 30 days, and renews it if so. The--quietdirective tellscertbotnot to generate output.0 12 * * * /usr/bin/certbot renew --quiet - Save and close the file. All installed certificates will be automatically renewed and reloaded.
 
Источник: https://www.dmosk.ru/miniinstruktions.php?mini=get-letsencrypt
Update: Using Free Let’s Encrypt SSL/TLS Certificates with NGINX