Verwenden des Let's Encrypt Certbot, um HTTPS auf Ihrer Amazon EC2 NGINX-Box abzurufen

Let's Encrypt ist eine neue Zertifizierungsstelle, die kostenlose SSL-Zertifikate bereitstellt (bis zu einem bestimmten Limit pro Woche). Es kam vor ungefähr einem Monat aus der Beta heraus und wird von einer Vielzahl von Browsern unterstützt.

Certbot ist der offizielle Let's Encrypt-Client, der von der Electronic Frontier Foundation entwickelt wurde. Das automatische Abrufen und Bereitstellen von SSL / TLS-Zertifikaten für Ihren Webserver ist relativ einfach.

Lass uns anfangen.

Schritt 1

Stellen Sie sicher, dass Sie die Ports 80 (HTTP) und 443 (HTTPS) in Ihrer Instanz- Sicherheitsgruppe für die Öffentlichkeit geöffnet haben. Certbot verwendet dies, um Verbindungen herzustellen, während Sie Ihre Zertifikate generieren.

Beachten Sie, dass ich viel zu viel Zeit damit verbracht habe, herauszufinden, warum ich kein Zertifikat generieren konnte, während das einzige Problem darin bestand, dass ich Port 443 in meiner Sicherheitsgruppe für EC2-Instanzen nicht geöffnet hatte.

Schritt 2

Richten Sie den CNAME-Eintrag Ihrer Domain so ein , dass er auf das öffentliche DNS Ihrer EC2-Instanz verweist.

Schritt 3

Installieren Sie Certbot auf Ihrer Instanz. Anhand Ihres Betriebssystems und Servers finden Sie auf der Certbot-Homepage heraus, wie Sie es installieren können. Verwenden Sie dies für NGINX unter Ubuntu 14.04 .

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

Führen Sie diesen Befehl in Ihrem Home-Verzeichnis aus:

/home/ubtuntu

Schritt 4

Stoppen Sie alle vorhandenen Server, die auf den Ports 80 und 443 ausgeführt werden, da diese von Certbot verwendet werden, um Ihre Domäne zu überprüfen und Zertifikate zu generieren.

Sie können diese Server neu starten, sobald Sie die Zertifikate generiert haben.

Schritt 5

Führen Sie den folgenden Befehl aus, um Zertifikate für Ihre Domain zu generieren:

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

Mit diesem Ansatz können Sie Zertifikate für mehrere Domänen generieren.

Schritt 6

Ändern Sie Ihre NGINX-Konfiguration in /etc/nginx/nginx.conf , um SSL zu aktivieren:

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; } } }

Der HSTS-Header (Strict-Transport-Security) stellt sicher, dass interne Links, die nicht HTTPS sind, während einer HTTPS-Sitzung automatisch an die HTTPS-Version weitergeleitet werden.

Schritt 7

Zuletzt laden Sie Ihre NGINX-Konfiguration neu:

sudo service nginx reload

Herzliche Glückwünsche! Ihre Website xyz.example.com wird jetzt erfolgreich unter HTTPS ausgeführt.

HINWEIS : Let's Encrypt-Zertifikate sind nur 3 Monate nach der Ausstellung gültig. Daher ist alle 3 Monate eine Erneuerung erforderlich. Hier erfahren Sie, wie Sie dies mithilfe eines Cron-Jobs automatisieren können.

Wenn dieser Beitrag Ihnen geholfen hat, klicken Sie auf den Herzknopf unten. ? Und wenn nicht, hinterlasse bitte einen Kommentar, um mir zu sagen, wie ich es besser machen kann.

PS: Vielen Dank an Narendra N Shetty für das Korrekturlesen und die Vorschläge.

Karan Thakkar ist der Frontend-Lead bei Crowdfire - Ihr superschlauer Marketing-Kumpel . Sein Artikel wurde bereits in der Huffington Post veröffentlicht. In seiner Freizeit probiert er gerne neue Technologien aus und hat Tweetify (mit React Native) und Show My PR's (mit Golang) erstellt.

Andere Artikel von ihm geschrieben:

Wie ich in nur 3 Wochen von 300 auf 5.000 Follower gewachsen bin

#GrowthHacking meines Twitter-Kontos für @Crowdfire Twitter Premier League blog.markgrowth.com Eine illustrierte Anleitung zum Einrichten Ihrer Website mit Github & Cloudflare

Einfache Einrichtung, sofortige Bereitstellung, kostenloses HTTPS, HTTP2 / SPDY-Unterstützung, benutzerdefinierte Umleitung, Ablauf des Browser-Cache, HTTP Secure… medium.freecodecamp.org