Generieren Sie HTTPS-Zertifikate über acme.sh.

Was ist acme.sh?

acme.sh ist ein Open-Source-Shell-Skript zur Automatisierung der Generierung und Verwaltung von HTTPS-Zertifikaten.

Installieren

curl https://get.acme.sh | sh -s [email protected]

Nach der Installation erscheint acme.sh in Ihrem Home-Verzeichnis.

~/.acme.sh

Führen Sie den folgenden Befehl aus, damit die Umgebungsvariablen von acme.sh wirksam werden.

source ~/.basrc

Zertifikate generieren

Vor der Erstellung des Zertifikats muss acme.sh Ihren Besitz des Domänennamens überprüfen. Es gibt verschiedene Verifizierungsmodi:

HTTP-Verifizierung

Apache

Wenn Sie einen Apache-Server verwenden.

acme.sh --issue -d mydomain.com --apache

Nginx Server

Wenn Sie einen Nginx-Server verwenden.

acme.sh --issue -d mydomain.com --nginx

Datei zum Stammverzeichnis der Website hinzufügen.

Sie können acme.sh auch das Stammverzeichnis Ihrer Website mitteilen, woraufhin acme.sh automatisch eine Datei zur Überprüfung hinzufügt.

acme.sh --issue -d mydomain.com --webroot /path-to-the-webroot-of-the-site

DNS-Verifizierung

Manuell einen Eintrag hinzufügen

Befehl ausführen

acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

Dann, acme.sh generiert den entsprechenden Parsing-Datensatz und zeigt ihn an. Sie müssen diesen TXT-Eintrag nur in Ihrem Domain-Verwaltungsfenster hinzufügen.

Dann generieren Sie das Zertifikat erneut

acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

Überprüfen Sie dies über die API des DNS-Dienstanbieters.

Dies sollte der am häufigsten verwendete und empfohlene Verifizierungsmodus sein. Am Beispiel von CloudFlare lesen Sie bittehttps://github.com/acmesh-official/acme.sh/wiki/dnsapi zur Beantragung von Zertifikaten anderer Dienstleister.

Beantragen Sie eine API.

Sie können Ihren globalen API-Schlüssel auf Ihrer Cloudflare-Profilseite unter demAbschnitt API-Token. Klicken Sie neben „Globaler API-Schlüssel“ auf „Anzeigen“, überprüfen Sie Ihr Cloudflare-Passwort und es wird Ihnen angezeigt. Es handelt sich um eine 32-stellige Hexadezimalzeichenfolge, die Sie acme.sh durch Festlegen der Umgebungsvariablen bereitstellen müssenCF_Key zu seinem Wert. Sie müssen auch festlegenCF_Email an die E-Mail-Adresse, die mit Ihrem Cloudflare-Konto verknüpft ist; Dies ist die E-Mail-Adresse, die Sie beim Anmelden bei Cloudflare eingeben. Zum Beispiel:

export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4"
export CF_Email="[email protected]"

Zertifikat erstellen.

acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'

Zertifikatsdateien anzeigen

Nachdem das Zertifikat generiert wurde, können Sie auf ~/.acme.sh/mydomain.com_ecc zugreifen, um die Zertifikatsdateien anzuzeigen.fullchain.cerist die Zertifikatsdatei undmydomain.io.key ist die private Schlüsseldatei. Bei beiden handelt es sich um Textdateien, die während des Site-Konfigurationsprozesses auf i18n.so hochgeladen werden können.

Häufige Probleme bei der Verwendung von acme.sh

CA

acme.sh verwendet jetzt standardmäßig ZeroSSL als Zertifizierungsstelle, es treten jedoch häufig Probleme mit der Barrierefreiheit auf. Mit dem folgenden Befehl können Sie die CA auf Let’s Encrypt umstellen.

acme.sh --set-default-ca --server letsencrypt

Generieren Sie ein Wildcard-Domänenzertifikat.

Vorausgesetzt, Sie möchten einen Zertifikat beantragen, das anwendbar ist aufexample.comund*.example.comkönnen Sie mit dem folgenden Befehl ein Wildcard-Domänenzertifikat generieren.

acme.sh -d example.com -d *.example.com

Zertifikatverlängerung

Nachdem acme.sh das Zertifikat generiert hat, fügt es eine geplante Crontab-Aufgabe hinzu, um das Zertifikat regelmäßig zu aktualisieren. Mit dem folgenden Befehl können Sie die geplante Aufgabe anzeigen und der aktualisierte Inhalt wird auch in gespeichert~/.acme.sh/mydomain.com_ecc.

crontab -e