Es wird bereits von vielen Websites und Diensten auf der ganzen Welt verwendet. Wenn Sie von einer bekannten Zertifizierungsstelle kostenlos SSL-Zertifikate erhalten können, Es gibt keine Entschuldigung, HTTPS auf Ihrer Website zu verwenden und standardmäßig sicher zu sein. Der Prozess der Ausstellung eines Let’s Encrypt-Zertifikats kann durch den Einsatz von Software automatisiert werden, die die Protokoll ACME, die normalerweise auf Ihrem Webhost läuft. Diese Zertifikate laufen in der Regel in nicht mehr als 3 Monate (etwas, das die Systemsicherheit erhöht), Daher ist es notwendig, Verlängerungen zu automatisieren, um manuelle Verlängerungen zu vermeiden.
Un buen ejemplo de esta implementación es la extensión Let's Encrypt de Azure App ServiceAzure App Service ist eine Plattform von Microsoft, die die Entwicklung und das Hosting von Web- und mobilen Anwendungen in der Cloud ermöglicht. Es bietet Unterstützung für verschiedene Programmiersprachen, wie .NET, Java, PHP und Python. Mit Funktionen wie automatischer Skalierung, kontinuierlicher Integration und erweiterter Sicherheit, Azure App Service erleichtert es Entwicklern, robuste und skalierbare Anwendungen zu erstellen, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen...., die Verlängerungen mithilfe eines Webjobs automatisiert. Mehr dazu könnt ihr hier lesen Blogpost von Scott Hanselman.
Al usar Azure Application Gateway, Eines der Dinge, die Sie tun müssen, ist das SSL-Zertifikat auf dem Gateway zu installieren. Sie möchten wahrscheinlich SSL-Offload implementieren, Alle Ressourcen, die zum Schutz des Kommunikationskanals erforderlich sind, werden also vom Gateway verwaltet und nicht von den Servern dahinter.
In diesem Beitrag, Ich werde nur dieses Szenario erklären, zeigt, wie Sie Let's Encrypt SSL-Erneuerungen auf einem Azure-Anwendungsgateway automatisieren können.
Die Idee hinter dieser Implementierung besteht darin, jede Änderung der Infrastruktur hinter dem Application Gateway zu vermeiden, um die Erneuerungsüberprüfungen und -validierungen durch den Let’s Encrypt-Prozess abzuschließen. Zusammenfassend:
- ein Azure Automation-Runbook wird nach einem Zeitplan ausgeführt (nämlich, Einmal alle zwei Wochen) um das aktuelle Let’s Encrypt-Zertifikat zu erneuern und zu installieren. Let's Encrypt muss die Domain-Inhaberschaft validieren, Daher wird ein Abfragecode zurückgegeben, den das Runbook in einem Speicherkonto hinter dem Anwendungsgateway speichert;
- eine spezielle Regel in Application Gateway leitet die Validierungsprüfung von Let’s Encrypt auf das Speicherkonto um, die Domain-Inhaberschaftsprüfung ist also erfolgreich
- Das Azure Automation Runbook lädt schließlich das neue Zertifikat herunter und installiert es auf dem Application Gateway
Beachten Sie, dass bei dieser Implementierung, Es ist nicht erforderlich, eine andere Infrastruktur hinter Application Gateway zu manipulieren.
Ich wollte die Verlängerungen von Let’s Encrypt-Zertifikaten für „api.davidjrh.com“ ausstellen und automatisieren.. Beachten Sie, dass ich bereits einen DNS-Eintrag vom Typ A an mein Application Gateway gerichtet hatte.
C: > nslookup api.davidjrh.com
Server: google-public-dns-a.google.com
Adresse: 8.8.8.8
Nicht autorisierte Antwort:
Name: api.davidjrh.com
Adresse: 23.102.37.253
So implementieren Sie den Erneuerungsprozess von Let's Encrypt, um neue SSL-Zertifikate auf Application Gateway auszustellen, folge diesen Schritten:
Erstellen Sie ein Speicherkonto
1. Erstellen Sie ein Azure Storage-Konto, das zum Hosten von Herausforderungsanforderungen für die Überprüfung des DNS-Domänenbesitzes verwendet wird. Utilice los ParameterDas "Parameter" sind Variablen oder Kriterien, die zur Definition von, ein Phänomen oder System zu messen oder zu bewerten. In verschiedenen Bereichen wie z.B. Statistik, Informatik und naturwissenschaftliche Forschung, Parameter sind entscheidend für die Etablierung von Normen und Standards, die die Datenanalyse und -interpretation leiten. Ihre richtige Auswahl und Handhabung sind entscheidend, um genaue und relevante Ergebnisse in jeder Studie oder jedem Projekt zu erhalten.... más baratos, Was „Standardleistung“ y LRS.
2. Sobald das Speicherkonto bereit ist, einen Container erstellen „öffentlich“ mit Berechtigungen von „öffentlicher Klecks“.
3. Erstellen Sie das virtuelle Verzeichnis “ .bekannte acme-herausforderung“ mit dem Storage Explorer-Tool.
Ändern Sie Application Gateway, um ACME-Challenge-Anforderungen an das Speicherkonto umzuleiten.
4. Wenn Sie Azure Application Gateway erstellt haben, Sie haben wahrscheinlich eine HTTP-Regel angegeben, die einem http-Listener zugeordnet war. In diesem Fall, Sie müssen diese Regel löschen, die durch eine Regel basierend auf dem Pfad ersetzt wird, wie im nächsten Schritt gezeigt
5. Erstellen Sie eine neue routenbasierte Regel, die die Anfragen umleitet, die Let’s Encrypt im Erneuerungsprozess mit der folgenden Konfiguration stellt:
6. Stellen Sie die Parameter ein, die Sie in der http-Regel hatten, und klicken Sie auf „Konfiguration hinzufügen“
7. Geben Sie die Konfigurationsparameter mit dem Pfad an „/.bekannt/acme-herausforderung/*“ mit einer Umleitung (dauerhaft), auf eine externe Site mit der zuvor erstellten Container-URL des Speicherkontos verweisen:
9. Testen Sie die Regel, indem Sie eine Datei namens . erstellen „test.html“ im Speicherkonto und durchsuchen der URL /.bekannt/acme-challenge/test.html“>/.bekannt/acme-challenge/test.html“>http:///.bekannt/acme-challenge/test.html
Wenn alles richtig konfiguriert wurde, beim Durchsuchen der URL, Das Anwendungsgateway sollte Ihren Browser wie unten gezeigt auf das Speicherkonto umleiten. Bitte fahren Sie nicht fort, bis Sie die Umleitungsregel erfolgreich konfiguriert haben.
Erstmalige Installation des Let's Encrypt Zertifikats auf dem Gateway
So installieren Sie das Let's Encrypt-Zertifikat zum ersten Mal auf dem Gateway, Sie müssen es zuerst ausstellen. Es gibt mehrere Möglichkeiten, das Zertifikat auszustellen, aber am einfachsten ist es zu benutzen Certbot, ein auf GitHub verfügbares und in Python integriertes Tool, mit dem Sie Zertifikate von Let's Encrypt abrufen können. Es gibt andere Kunden, damit ihr wahrscheinlich bessere Ideen im Kommentarbereich dieses Beitrags teilen könnt.
Normalerweise verwende ich einen Windows-PC 10 als Entwicklungsumgebung, und der prozess die Installation des Tools ist in diesem Link beschrieben, was im Grunde zeigt, wie man Python installiert und dann ausführt „pip install certbot“. Aber da ich das Linux-Subsystem auf meinem Ubuntu-Windows-Laptop aktiviert hatte, Ich bin diesem anderen Ansatz gefolgt:
- Eine Bash-Konsole auf dem Linux-Subsystem geöffnet.
- Python installiert mit „sudo apt-get install certbot“
- Ich habe den folgenden Befehl ausgeführt, um das Zertifikat nur lokal im manuellen Modus auszustellen, ein Konto mit meiner E-Mail-Adresse im Let’s Encrypt-Dienst registrieren und ein Zertifikat für die Domain ausstellen „api.davidjrh.com“ Akzeptieren der Nutzungsbedingungen:
sudo certbot certonly – email -d api.davidjrh.com –zustimmen –Handbuch
- Sie sind den Anweisungen auf dem Bildschirm gefolgt und haben die Datei im Speicherkonto mit dem erforderlichen Inhalt erstellt
- Zertifikat erfolgreich ausgestellt
davidjrh @ DESKTOP-JQL0N5G: ~ $ sudo ls /etc/letsencrypt/live/api.davidjrh.com
LÉAME cert.pem chain.pem fullchain.pem privkey.pem
Die Urkunde, String und Schlüssel werden im .pem-Format ausgegeben, um das Zertifikat in .pfx hochzuladen, ich benutzte OpenSSL zum Konvertieren von PEM in PFX:
Schließlich, Ich habe meinen aktuellen HTTPS-Listener geändert, um das LetsEncrypt-Zertifikat zu verwenden. WICHTIG: Merken Sie sich den Namen, den Sie diesem Zertifikat geben werden, da Sie es später im Erneuerungsprozess als Parameter angeben müssen
Nach dem Übernehmen der Änderungen, Sie können überprüfen, ob das SSL-Zertifikat von LetsEncrypt ordnungsgemäß funktioniert, indem Sie einfach eine Ressource über HTTPS durchsuchen
Jetzt ist das LetsEncrypt-Zertifikat installiert und funktioniert ordnungsgemäß, Der nächste Schritt besteht darin, Verlängerungen zu automatisieren. Machen wir es mit einem Azure Automation-Runbook.
Erstellen Sie ein Automatisierungskonto
1. Im Azure-Portal, Erstellen Sie ein Azure Automation-Konto (oder verwenden Sie ein vorhandenes) das Runbook hosten host. Beachten Sie, dass Sie dieses Automatisierungskonto erstellen und ausführen können, bis 500 Minuten pro Monat kostenlos.
2. Innerhalb der Automatisierungsressource, Öffnen Sie Module und durchsuchen Sie die Galerie, um die folgenden Module zu importieren: ‚AzureRM.profile‘, ‚AzureRM.Network‘ Ja ‚ACMESharp‘. Stellen Sie sicher, dass Sie die neueste Version von allen importieren und die aktuellen bereits importierten aktualisieren (zum Beispiel, AzureRM.profile ist standardmäßig aktiviert, aber wir brauchen die neueste Version, die in der Galerie verfügbar ist).
3. Im Azure Automation-Konto, Erstellen Sie ein PowerShell-Runbook namens LetsEncryptCertificateRenewal
4. Bearbeiten Sie das PowerShell-Runbook und fügen Sie den Inhalt des in verfügbaren Skripts ein GitHub und klicke auf den Button „Zum Posten“ damit es für Ihre Programmierung zur Verfügung steht.
Puede probar el runbook en el PanelEin Panel ist eine Gruppe von Experten, die sich trifft, um ein bestimmtes Thema zu diskutieren und zu analysieren. Diese Foren sind bei Konferenzen üblich, Seminare und öffentliche Debatten, wo die Teilnehmer ihr Wissen und ihre Perspektiven teilen. Panels können eine Vielzahl von Bereichen abdecken, Von der Wissenschaft bis zur Politik, Ziel ist es, den Gedankenaustausch und die kritische Reflexion unter den Teilnehmern zu fördern.... de prueba y pasar los parámetros necesarios (Domainname, In LetsEncrypt verwendete E-Mail-Adresse, Ressourcengruppennamen, Speicherkontoname, Name des Anwendungsgateways und Name des Zertifikats, das Sie bei der Konfiguration des https-Listeners verwendet haben ). Es dauert ein paar 15 Minuten zu vervollständigen. Beim erneuten Durchsuchen der Website mit https, Sie werden feststellen, dass das Zertifikat erfolgreich aktualisiert wurde.
WICHTIG: LetsEncrypt hat seine eigenen wöchentlichen Limits beim Ausstellen von Zertifikaten für eine bestimmte Domain in der Produktion (50 pro Woche), Seien Sie also vorsichtig, wenn Sie das Powershell-Skript testen.
5. Erstellen Sie ein Azure-Automatisierungsprogramm, um das SSL-Zertifikat zu erneuern. In meinem Fall, Ich habe einen Zeitplan erstellt, um alle zu erneuern 2 Wochen.
6. Konfigurieren Sie die Parameter, um das Runbook mit dem zuvor erstellten Zeitplan zu planen.
Und das ist es. Sie haben jetzt die automatische Verlängerung Ihres Application Gateway-SSL-Zertifikats mit Azure Automation konfiguriert.
ich hoffe das hilft!



