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.cer
ist 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.com
und*.example.com
kö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