Vor einiger Zeit hat die Website die Aktualisierung des SSL-Zertifikats von Let`s Encrypt eingestellt. Gemessen an den Fehlern hat sich die Struktur der Dateien zum Organisieren von Schlüsseln etwas geändert. Nach der Untersuchung des Problems war die einfachste Option, SSL-Zertifikate mit dem speziellen Dienstprogramm Certbot zu installieren. Dieses Dienstprogramm installiert Zertifikate automatisch und erstellt automatisch eine Aufgabe zum Erneuern des Zertifikats, die entweder im cron -Scheduler oder in systemd. basiert.
Da der Standortserver auf Ubuntu 16.04 läuft, wurde das Installationskit für dieses Betriebssystem ausgewählt. Bei anderen Betriebssystemen werden auf der Certbot-Website auch Handbücher für andere Systeme bereitgestellt.
Wenn Sie zum ersten Mal ein SSL-Zertifikat einrichten, können Sie der Anleitung auf der Certbot-Website folgen, wenn Sie bereits ein Zertifikat mit anderen Dienstprogrammen eingerichtet haben, z. B. mit dem letsencrypt-Paket ohne Verwendung von certbot, wie in der nächster Artikel , müssen Sie höchstwahrscheinlich ein wenig aufräumen, bevor Sie Certbot `a.
Vorbereiten der Installation eines SSL-Zertifikats
Lassen Sie uns zuerst ein Backup der letsencrypt -Verzeichnisse erstellen
sudo cp /etc/letsencrypt/ /etc/letsencrypt.backup -r
Dann müssen Sie alle Konfigurationsdateien und Zertifikate Ihrer Site löschen
rm -rf /etc/letsencrypt/live/${DOMAIN} rm -rf /etc/letsencrypt/renewal/${DOMAIN}.conf rm -rf /etc/letsencrypt/archive/${DOMAIN}
Wenn Sie den Cron-Scheduler so konfiguriert haben, dass das Zertifikat automatisch erneuert wird, vergessen Sie nicht, diese Aufgabe zu löschen.
Installieren des SSL-Zertifikats
Als Nächstes müssen Sie das Certbot-Dienstprogramm für Ubuntu 16.04 installieren (in meinem Fall wird diese Betriebssystemversion verwendet), obwohl sich dieses Dienstprogramm nicht in den Standard-Repositorys befindet, sodass Sie das PPA der Entwickler verwenden müssen.
$ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-nginx
Ein Zertifikat erhalten
Der nächste Schritt besteht darin, ein Dienstprogramm zu starten, das automatisch die konfigurierten Server findet. Ich möchte Sie daran erinnern, dass meine Website Nginx verwendet, sodass die Einstellungen für diesen Servertyp vorgenommen werden.
$ sudo certbot --nginx
Das Dienstprogramm sucht mithilfe der Variablen server_name. in den Nginx-Konfigurationsdateien nach Domänen, die auf der Site funktionieren
Wenn diese Variable nicht gesetzt ist, werden die Domänen, für die Sie Zertifikate erhalten, nicht gefunden.
Beim Ausführen von certbot --nginx wird eine Liste angezeigt, aus der Sie auswählen müssen, für welchen Server Sie das Zertifikat erhalten. Und es wurde auch gefragt, wie genau der Server konfiguriert werden sollte: auf beiden Protokollen (HTTP und HTTPS) oder nur auf HTTPS zu arbeiten. Ich empfehle, die erste Option zu wählen, da Yandex keine robots.txt-Dateien über HTTPS sammelt. Nach Ausführung dieses Befehls nimmt certbot automatisch die erforderlichen Änderungen an den nginx-Konfigurationsdateien vor.
Es ist auch möglich, nur Zertifikate zu installieren und Nginx-Konfigurationsdateien manuell zu konfigurieren. Dies geschieht mit folgendem Befehl:
$ sudo certbot --nginx certonly
Automatisierung der Zertifikatserneuerung
Mit dem folgenden Befehl wird getestet, ob ein Zertifikat abgerufen wird, das nicht installiert wird.
$ sudo certbot renew --dry-run
Wenn das Zertifikat erfolgreich empfangen wurde, wird eine Aufgabe erstellt, um das Zertifikat automatisch zu erneuern.
Das certbot-Handbuch sagte, dass die Aufgabe entweder im cron -Scheduler oder in systemd erstellt würde. In meinem Fall wurde die Aufgabe als Timer in systemd erstellt.
Es wurde auf folgende Weise gefunden:
/etc/systemd/system/timers.target.wants/certbot.timer
Um die Erneuerung des Zertifikats manuell zu starten, können Sie den folgenden Befehl verwenden:
certbot renew