Brug af Let's Encrypt Certbot til at få HTTPS på din Amazon EC2 NGINX-boks

Lad os kryptere er en ny certifikatmyndighed, der leverer gratis SSL-certifikater (op til en bestemt grænse pr. Uge). Den kom ud af beta omkring en måned tilbage og understøttes af en bred vifte af browsere.

Certbot er den officielle Let's Encrypt-klient, udviklet af Electronic Frontier Foundation. Det gør automatisk hentning og implementering af SSL / TLS-certifikater til din webserver en relativt ligetil proces.

Lad os komme igang.

Trin 1

Sørg for, at du har åbnet porte 80 (HTTP) og 443 (HTTPS) i din instans Sikkerhedsgruppe for offentligheden. Certbot bruger dette til at oprette forbindelser, mens de genererer dine certifikater.

Bemærk, at jeg brugte alt for meget tid på at finde ud af, hvorfor jeg ikke kunne generere et certifikat, mens det eneste problem var, at jeg ikke havde åbnet port 443 i min EC2-instans Sikkerhedsgruppe.

Trin 2

Opsæt dit domænes CNAME-post for at pege på den offentlige DNS for din EC2-forekomst.

Trin # 3

Installer Certbot på din instans. Baseret på dit operativsystem og din server kan du finde ud af, hvordan du installerer det på Certbots hjemmeside. Brug NGINX på Ubuntu 14.04 .

wget //dl.eff.org/certbot-auto chmod a+x certbot-auto

Kør denne kommando i dit hjemmekatalog:

/home/ubtuntu

Trin # 4

Stop eventuelle eksisterende servere, der kører på port 80 og 443, da de bruges af Certbot til at bekræfte dit domæne og generere certifikater.

Du kan genstarte disse servere, når du er færdig med at generere certifikaterne.

Trin # 5

Kør følgende kommando for at generere certifikater til dit domæne:

./certbot-auto certonly --standalone -d xyz.yourdomain.com

Du kan generere certifikater til flere domæner ved hjælp af denne tilgang.

Trin # 6

Skift din NGINX-konfiguration i /etc/nginx/nginx.conf for at aktivere SSL:

http { ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; server { listen 80; server_name xyz.yourdomain.com; location / { # Redirect any http requests to https return 301 //$server_name$request_uri; } } server { listen 443 ssl; server_name xyz.yourdomain.com; ssl_certificate /etc/letsencrypt/live/xyz.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xyz.yourdomain.com/privkey.pem; add_header Strict-Transport-Security “max-age=31536000”; location / { proxy_pass //127.0.0.1:3000; } } }

Strict-Transport-Security (HSTS) -overskriften sikrer, at interne links, der ikke er HTTPS, automatisk dirigeres til HTTPS-versionen under en HTTPS-session.

Trin # 7

Til sidst skal du genindlæse din NGINX-konfiguration:

sudo service nginx reload

Tillykke! Dit websted xyz.example.com kører nu med succes på HTTPS.

BEMÆRK : Lad os kryptere certifikater er kun gyldige i 3 måneder efter udstedelse. Så hver 3. måned er fornyelse påkrævet. Sådan kan du automatisere dette ved hjælp af et cron-job.

Hvis dette indlæg hjalp dig, skal du trykke på hjerteknappen nedenfor. ? Og hvis det ikke gjorde det, bedes du give en kommentar for at fortælle mig, hvordan jeg kan gøre det bedre.

PS: Tak til Narendra N Shetty for korrekturlæsning og forslag.

Karan Thakkar er Frontend Lead hos Crowdfire - Din supersmarte marketingmedarbejder . Hans artikel har tidligere været omtalt på The Huffington Post. Han kan godt lide at prøve nye teknologier i sin fritid og har bygget Tweetify (ved hjælp af React Native) og Show My PR's (ved hjælp af Golang).

Andre artikler skrevet af ham:

Hvordan jeg voksede fra 300 til 5.000 tilhængere på kun 3 uger

#GrowthHacking min Twitter-konto til @Crowdfire Twitter Premier League blog.markgrowth.com En illustreret guide til opsætning af dit websted ved hjælp af Github & Cloudflare

Let at opsætte, øjeblikkelig implementering, gratis HTTPS, HTTP2 / SPDY-support, brugerdefineret omdirigering, udløb af browsercache , HTTP-sikker ... medium.freecodecamp.org