Zum Inhalt springen

Acme.sh/Anwendung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(53 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einfach eine Bescheinigung ausstellen ==
'''Acme.sh/Anwendung''' - Beschreibung
=== Einzelner Bereich ===
 
acme.sh --issue -d example.com -w /home/wwwroot/example.com
== Beschreibung ==
oder:
{| class="wikitable big options"
acme.sh --issue -d example.com -w /home/username/public_html
|-
oder:
! Aufgabe !! Beschreibung
acme.sh --issue -d example.com -w /var/www/html
|-
| [[#Zertifikat ausstellen|Zertifikat ausstellen]] ||
|-
| [[#Zertifikat installieren|Zertifikat installieren]] ||
|-
| [[#Standalone-Server|Standalone-Server]] ||
|-
| [[#Eigenständigen SSL-Server|Eigenständigen SSL-Server]] ||
|-
| [[#Apache-Modus|Apache-Modus]] ||
|-
| [[#Nginx-Modus|Nginx-Modus]] ||
|-
| [[#DNS-API-Integration|DNS-API-Integration]] ||
|-
| [[#Manueller DNS-Modus|Manueller DNS-Modus]] ||
|-
| [[#ECC-Zertifikate|ECC-Zertifikate]] ||
|-
| [[#Wildcard-Zertifikate|Wildcard-Zertifikate]] ||
|-
| [[#Zertifikate erneuern|Zertifikate erneuern]] ||
|-
| [[#Update acme.sh|Update acme.sh]] ||
|-
| [[#Benachrichtigungen|Benachrichtigungen]] ||
|}
 
== Zertifikat ausstellen ==
=== Einzelne Domäne ===
; Alternativen
<syntaxhighlight lang="bash" highlight="1-3" line>
acme.sh --issue -d example.com -w /home/wwwroot/example.com
acme.sh --issue -d example.com -w /home/username/public_html
acme.sh --issue -d example.com -w /var/www/html
</syntaxhighlight>


=== Mehrere Domänen in einem Zertifikat ===
=== Mehrere Domänen in einem Zertifikat ===
acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com
<syntaxhighlight lang="bash" highlight="1" line copy>
Der Parameter <code>/home/wwwroot/example.com</code> oder <code>/home/username/public_html</code> oder <code>/var/www/html</code> ist der Web-Stammordner, in dem Sie die Dateien Ihrer Website hosten. Sie '''MÜSSEN''' <code>Schreibzugriff</code> auf diesen Ordner haben.
acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com
</syntaxhighlight>


Das zweite Argument '''"example.com"''' ist die Hauptdomain, für die Sie das Zertifikat ausstellen möchten. Sie müssen dort mindestens eine Domain haben.
Der Parameter <code>/home/wwwroot/example.com</code> oder <code>/home/username/public_html</code> oder <code>/var/www/html</code> ist der Web-Stammordner, in dem Sie die Dateien Ihrer Website hosten
* Sie '''MÜSSEN''' <code>Schreibzugriff</code> auf diesen Ordner haben


Sie müssen alle Domänen auf das gleiche Webroot-Verzeichnis verweisen und binden: <code>/home/wwwroot/example.com</code>.
Das zweite Argument '''"example.com"''' ist die Hauptdomain, für die Sie das Zertifikat ausstellen möchten
* Sie müssen dort mindestens eine Domain haben


Die Zertifikate werden in <code>~/.acme.sh/example.com/</code> abgelegt.
Sie müssen alle Domänen auf das gleiche Webroot-Verzeichnis verweisen und binden: <code>/home/wwwroot/example.com</code>


Die Zertifikate werden automatisch alle '''60''' Tage erneuert.
Die Zertifikate werden in <code>~/.acme.sh/example.com/</code> abgelegt


Weitere Beispiele: <nowiki>https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert</nowiki>
Die Zertifikate werden automatisch alle '''60''' Tage erneuert


== Installieren Sie das Zertifikat auf Apache/Nginx usw. ==
; Beispiele
Nachdem das Zertifikat generiert wurde, möchten Sie es wahrscheinlich auf Ihren Apache/Nginx- oder anderen Servern installieren/kopieren. Sie '''MÜSSEN''' diesen Befehl verwenden, um die Zertifikate in die Zieldateien zu kopieren, verwenden Sie '''NICHT''' die Zertifikatsdateien im Ordner '''~/.acme.sh/''', sie sind nur für den internen Gebrauch, die Ordnerstruktur kann sich in Zukunft ändern.
# https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert


Beispiel '''Apache''':
=== Aus vorhandenem CSR ===
Ausstellen eines Zertifikats aus einer vorhandenen [[CSR]]
# https://github.com/acmesh-official/acme.sh/wiki/Issue-a-cert-from-existing-CSR
 
== Zertifikat installieren ==
; Installieren des Zertifikates auf dem Webserver (Apache, Nginx, …)
Nachdem das Zertifikat generiert wurde, möchten Sie es wahrscheinlich auf Ihren Apache/Nginx- oder anderen Servern installieren/kopieren
* Sie '''MÜSSEN''' diesen Befehl verwenden, um die Zertifikate in die Zieldateien zu kopieren, verwenden Sie '''NICHT''' die Zertifikatsdateien im Ordner '''~/.acme.sh/''', sie sind nur für den internen Gebrauch, die Ordnerstruktur kann sich in Zukunft ändern
 
; Apache
<syntaxhighlight lang="bash" highlight="1" line copy>
  acme.sh --install-cert -d example.com \
  acme.sh --install-cert -d example.com \
  --cert-file     /path/to/certfile/in/apache/cert.pem \
  --cert-file /path/to/certfile/in/apache/cert.pem \
  --key-file       /path/to/keyfile/in/apache/key.pem \
  --key-file /path/to/keyfile/in/apache/key.pem \
  --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
  --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
  --reloadcmd     "service apache2 force-reload"
  --reloadcmd "service apache2 force-reload"
'''Nginx''' Beispiel:
</syntaxhighlight>
 
; Nginx
<syntaxhighlight lang="bash" highlight="1" line copy>
  acme.sh --install-cert -d example.com \
  acme.sh --install-cert -d example.com \
  --key-file       /path/to/keyfile/in/nginx/key.pem \
  --key-file /path/to/keyfile/in/nginx/key.pem \
  --fullchain-file /path/to/fullchain/nginx/cert.pem \
  --fullchain-file /path/to/fullchain/nginx/cert.pem \
  --reloadcmd     "service nginx force-reload"
  --reloadcmd "service nginx force-reload"
Nur die Domäne ist erforderlich, alle anderen Parameter sind optional.
</syntaxhighlight>
 
Nur die Domäne ist erforderlich, alle anderen Parameter sind optional


Die Eigentums- und Berechtigungsinformationen vorhandener Dateien werden beibehalten. Sie können die Dateien im Voraus erstellen, um die Eigentümerschaft und die Berechtigung zu definieren.
Die Eigentums- und Berechtigungsinformationen vorhandener Dateien werden beibehalten
* Sie können die Dateien im Voraus erstellen, um die Eigentümerschaft und die Berechtigung zu definieren


Installieren/kopieren Sie das Zertifikat/den Schlüssel in den Apache- oder Nginx-Produktionspfad.
Installieren/kopieren Sie das Zertifikat/den Schlüssel in den Apache- oder Nginx-Produktionspfad


Das Zertifikat wird standardmäßig alle '''60''' Tage erneuert (was konfigurierbar ist). Sobald das Zertifikat erneuert wurde, wird der Apache/Nginx-Dienst automatisch mit dem folgenden Befehl neu geladen: <code>service apache2 force-reload</code> oder <code>service nginx force-reload</code>.
Das Zertifikat wird standardmäßig alle '''60''' Tage erneuert (was konfigurierbar ist)
* Sobald das Zertifikat erneuert wurde, wird der Apache/Nginx-Dienst automatisch mit dem folgenden Befehl neu geladen: <code>service apache2 force-reload</code> oder <code>service nginx force-reload</code>


'''Seien Sie bitte vorsichtig: Der "reloadcmd" ist sehr wichtig. Das Zertifikat kann automatisch erneuert werden, aber ohne einen korrekten "reloadcmd" wird das Zertifikat möglicherweise nicht auf Ihren Server (wie Nginx oder Apache) übertragen, und Ihre Website kann dann in 60 Tagen kein erneuertes Zertifikat anzeigen.'''
'''Seien Sie bitte vorsichtig: Der "reloadcmd" ist sehr wichtig
* Das Zertifikat kann automatisch erneuert werden, aber ohne einen korrekten "reloadcmd" wird das Zertifikat möglicherweise nicht auf Ihren Server (wie Nginx oder Apache) übertragen, und Ihre Website kann dann in 60 Tagen kein erneuertes Zertifikat anzeigen.'''


== Standalone-Server zum Ausstellen von Zertifikaten verwenden ==
== Standalone-Server ==
; Standalone-Server zum Ausstellen von Zertifikaten verwenden
'''(Sie müssen root/sudoer sein oder die Erlaubnis haben, auf Port 80 (TCP) zu lauschen)'''
'''(Sie müssen root/sudoer sein oder die Erlaubnis haben, auf Port 80 (TCP) zu lauschen)'''


Port <code>80</code> (TCP) '''MUSS''' zum Abhören frei sein, sonst werden Sie aufgefordert, ihn freizugeben und es erneut zu versuchen.
Port <code>80</code> (TCP) '''MUSS''' zum Abhören frei sein, sonst werden Sie aufgefordert, ihn freizugeben und es erneut zu versuchen
acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com
<syntaxhighlight lang="bash" highlight="1" line copy>
Weitere Beispiele: <nowiki>https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert</nowiki>
acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com
</syntaxhighlight>


== Eigenständigen SSL-Server zum Ausstellen von Zertifikaten verwenden ==
; Weitere Beispiele
# https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
 
== Eigenständigen SSL-Server ==
; Eigenständigen SSL-Server zum Ausstellen von Zertifikaten verwenden
'''(Sie müssen root/sudoer sein oder die Erlaubnis haben, auf Port 443 (TCP) zu lauschen)'''
'''(Sie müssen root/sudoer sein oder die Erlaubnis haben, auf Port 443 (TCP) zu lauschen)'''


Port <code>443</code> (TCP) '''MUSS''' zum Abhören frei sein, sonst werden Sie aufgefordert, ihn freizugeben und es erneut zu versuchen.
Port <code>443</code> (TCP) '''MUSS''' zum Abhören frei sein, sonst werden Sie aufgefordert, ihn freizugeben und es erneut zu versuchen
acme.sh --issue --alpn -d example.com -d www.example.com -d cp.example.com
<syntaxhighlight lang="bash" highlight="1" line copy>
Weitere Beispiele: <nowiki>https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert</nowiki>
acme.sh --issue --alpn -d example.com -d www.example.com -d cp.example.com
</syntaxhighlight>


== Apache-Modus verwenden ==
; Beispiele
# https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
 
== Apache-Modus ==
; Apache-Modus verwenden
'''(Sie müssen root/sudoer sein, da dies für die Interaktion mit dem Apache-Server erforderlich ist)'''
'''(Sie müssen root/sudoer sein, da dies für die Interaktion mit dem Apache-Server erforderlich ist)'''


Wenn Sie einen Webserver betreiben, wird empfohlen, den <code>Webroot-Modus</code> zu verwenden.
Wenn Sie einen Webserver betreiben, wird empfohlen, den <code>Webroot-Modus</code> zu verwenden


Insbesondere, wenn Sie einen Apache-Server betreiben, können Sie stattdessen den Apache-Modus verwenden. In diesem Modus werden keine Dateien in Ihren Web-Stammordner geschrieben.
Insbesondere, wenn Sie einen Apache-Server betreiben, können Sie stattdessen den Apache-Modus verwenden
* In diesem Modus werden keine Dateien in Ihren Web-Stammordner geschrieben


Setzen Sie einfach die Zeichenkette "apache" als zweites Argument, und es wird automatisch die Verwendung des Apache-Plugins erzwungen.
Setzen Sie einfach die Zeichenkette "apache" als zweites Argument, und es wird automatisch die Verwendung des Apache-Plugins erzwungen
acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com
<syntaxhighlight lang="bash" highlight="1" line copy>
'''Dieser Apache-Modus dient nur dazu, das Zertifikat auszustellen, er wird Ihre Apache-Konfigurationsdateien nicht verändern. Sie müssen Ihre Website-Konfigurationsdateien selbst so konfigurieren, dass das Zertifikat verwendet wird. Wir wollen Ihren Apache-Server nicht durcheinander bringen, keine Sorge.'''
acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com
</syntaxhighlight>


Weitere Beispiele: <nowiki>https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert</nowiki>
'''Dieser Apache-Modus dient nur dazu, das Zertifikat auszustellen, er wird Ihre Apache-Konfigurationsdateien nicht verändern
* Sie müssen Ihre Website-Konfigurationsdateien selbst so konfigurieren, dass das Zertifikat verwendet wird
* Wir wollen Ihren Apache-Server nicht durcheinander bringen, keine Sorge.'''


== Nginx-Modus verwenden ==
; Beispiele
# https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
 
== Nginx-Modus ==
; Nginx-Modus verwenden
'''(Sie müssen root/sudoer sein, da dies für die Interaktion mit dem Nginx-Server erforderlich ist)'''
'''(Sie müssen root/sudoer sein, da dies für die Interaktion mit dem Nginx-Server erforderlich ist)'''


Wenn Sie einen Webserver betreiben, wird empfohlen, den <code>Webroot-Modus</code> zu verwenden.
Wenn Sie einen Webserver betreiben, wird empfohlen, den <code>Webroot-Modus</code> zu verwenden
 
Insbesondere, wenn Sie einen nginx-Server betreiben, können Sie stattdessen den nginx-Modus verwenden
* In diesem Modus werden keine Dateien in Ihr Web-Root-Verzeichnis geschrieben


Insbesondere, wenn Sie einen nginx-Server betreiben, können Sie stattdessen den nginx-Modus verwenden. In diesem Modus werden keine Dateien in Ihr Web-Root-Verzeichnis geschrieben.
Geben Sie einfach die Zeichenfolge "nginx" als zweites Argument ein


Geben Sie einfach die Zeichenfolge "nginx" als zweites Argument ein.
Der nginx-Server wird automatisch konfiguriert, um die Domäne zu verifizieren und dann die nginx-Konfiguration auf die ursprüngliche Version zurückzusetzen


Der nginx-Server wird automatisch konfiguriert, um die Domäne zu verifizieren und dann die nginx-Konfiguration auf die ursprüngliche Version zurückzusetzen.
Die Konfiguration wird also nicht geändert
<syntaxhighlight lang="bash" highlight="1" line copy>
acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com
</syntaxhighlight>


Die Konfiguration wird also nicht geändert.
'''Dieser Nginx-Modus dient nur zur Ausstellung des Zertifikats, er ändert nicht Ihre Nginx-Konfigurationsdateien
acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com
* Sie müssen Ihre Website-Konfigurationsdateien selbst für die Verwendung des Zertifikats konfigurieren
'''Dieser Nginx-Modus dient nur zur Ausstellung des Zertifikats, er ändert nicht Ihre Nginx-Konfigurationsdateien. Sie müssen Ihre Website-Konfigurationsdateien selbst für die Verwendung des Zertifikats konfigurieren. Wir wollen Ihren Nginx-Server nicht durcheinander bringen, keine Sorge.'''
* Wir wollen Ihren Nginx-Server nicht durcheinander bringen, keine Sorge.'''


Weitere Beispiele: <nowiki>https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert</nowiki>
; Beispiele
# https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert


== Automatische DNS-API-Integration ==
== DNS-API-Integration ==
Wenn Ihr DNS-Anbieter API-Zugriff unterstützt, können wir diese API verwenden, um die Zertifikate automatisch auszustellen.
; Automatische DNS-API-Integration
Wenn Ihr DNS-Anbieter API-Zugriff unterstützt, können wir diese API verwenden, um die Zertifikate automatisch auszustellen


Sie müssen nichts manuell tun!
Sie müssen nichts manuell tun!


==== Derzeit unterstützt acme.sh die meisten DNS-Anbieter: ====
; ''acme.sh'' unterstützt die meisten DNS-Anbieter
<nowiki>https://github.com/acmesh-official/acme.sh/wiki/dnsapi</nowiki>
# https://github.com/acmesh-official/acme.sh/wiki/dnsapi
 
== Manueller DNS-Modus ==
Verwenden des manuellen DNS-Modus


== Verwenden Sie den manuellen DNS-Modus: ==
; Siehe
Siehe: <nowiki>https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode</nowiki> first.
# https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode
 
Wenn Ihr DNS-Anbieter keinen API-Zugang unterstützt, können Sie den txt-Eintrag von Hand hinzufügen
<syntaxhighlight lang="bash" highlight="1" line copy>
acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com
</syntaxhighlight>


Wenn Ihr DNS-Anbieter keinen API-Zugang unterstützt, können Sie den txt-Eintrag von Hand hinzufügen.
acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com
Sie sollten eine Ausgabe wie unten erhalten:
Sie sollten eine Ausgabe wie unten erhalten:
<syntaxhighlight lang="bash" highlight="1" line copy>
  Add the following txt record:
  Add the following txt record:
  Domain:_acme-challenge.example.com
  Domain:_acme-challenge.example.com
Zeile 111: Zeile 201:
  Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


  Please add those txt records to the domains. Waiting for the dns to take effect.
  Please add those txt records to the domains
</syntaxhighlight>
 
Waiting for the dns to take effect
 
Dann wiederholen Sie den Vorgang einfach mit <code>neuen</code> Argumenten:
Dann wiederholen Sie den Vorgang einfach mit <code>neuen</code> Argumenten:
acme.sh --renew -d example.com
<syntaxhighlight lang="bash" highlight="1" line copy>
Okay, es ist geschafft.
acme.sh --renew -d example.com
</syntaxhighlight>
 
Okay, es ist geschafft


'''Achten Sie darauf, dass dies ein manueller DNS-Modus ist, der nicht automatisch erneuert werden kann. Sie müssen einen neuen txt-Eintrag zu Ihrer Domain hinzufügen, wenn Sie Ihr Zertifikat erneuern.'''
'''Achten Sie darauf, dass dies ein manueller DNS-Modus ist, der nicht automatisch erneuert werden kann
* Sie müssen einen neuen txt-Eintrag zu Ihrer Domain hinzufügen, wenn Sie Ihr Zertifikat erneuern.'''


'''Bitte verwenden Sie stattdessen den dns api-Modus.'''
'''Bitte verwenden Sie stattdessen den dns api-Modus.'''


== ECC-Zertifikate ausstellen ==
== ECC-Zertifikate ==
Setzen Sie einfach den Parameter <code>keylength</code> mit einem Präfix <code>ec-</code>.
; ECC-Zertifikate ausstellen
 
Setzen Sie einfach den Parameter <code>keylength</code> mit einem Präfix <code>ec-</code>
Zum Beispiel:


==== ECC-Zertifikat für eine Domäne ====
; ECC-Zertifikat für eine Domäne
acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256
<syntaxhighlight lang="bash" highlight="1" line copy>
acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256
</syntaxhighlight>


==== SAN-Multi-Domain-ECC-Zertifikat ====
; SAN-Multi-Domain-ECC-Zertifikat
acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256
<syntaxhighlight lang="bash" highlight="1" line copy>
Bitte beachten Sie den obigen Parameter <code>keylength</code>.
acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256
</syntaxhighlight>


Gültige Werte sind:
Bitte beachten Sie den obigen Parameter <code>keylength</code>


; Gültige Werte sind:
# '''ec-256 (prime256v1, "ECDSA P-256", dies ist der Standardschlüsseltyp)'''
# '''ec-256 (prime256v1, "ECDSA P-256", dies ist der Standardschlüsseltyp)'''
# '''ec-384 (secp384r1, "ECDSA P-384")'''
# '''ec-384 (secp384r1, "ECDSA P-384")'''
Zeile 141: Zeile 242:
# '''4096 (RSA4096)'''
# '''4096 (RSA4096)'''


== Wildcard-Zertifikate ausstellen ==
== Wildcard-Zertifikate ==
Es ist ganz einfach: Geben Sie als Parameter <code>-d</code> einen Platzhalter für eine Domäne an.
; Wildcard-Zertifikate ausstellen
acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf
Geben Sie als Parameter <code>-d</code> einen Platzhalter für eine Domäne an
<syntaxhighlight lang="bash" highlight="1" line copy>
acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf
</syntaxhighlight>


== Wie man die Zertifikate erneuert ==
== Zertifikate erneuern ==
Nein, Sie brauchen die Zertifikate nicht manuell zu erneuern. Alle Zertifikate werden automatisch alle '''60''' Tage erneuert.
* Zertifikate müssen nicht manuell erneuert werden
* Alle Zertifikate werden automatisch alle '''60''' Tage erneuert


Sie können aber auch die Erneuerung eines Zertifikats erzwingen:
; Erneuerung erzwingen
acme.sh --renew -d example.com --force
<syntaxhighlight lang="bash" highlight="1" line copy>
oder, für ECC cert:
acme.sh --renew -d example.com --force
acme.sh --renew -d example.com --force --ecc
</syntaxhighlight>


== Wie man die Zertifikatserneuerung stoppt ==
oder, für ECC cert
<syntaxhighlight lang="bash" highlight="1" line copy>
acme.sh --renew -d example.com --force --ecc
</syntaxhighlight>
 
; Zertifikatserneuerung anhalten
Um die Erneuerung eines Zertifikats zu stoppen, können Sie folgendes ausführen, um das Zertifikat aus der Erneuerungsliste zu entfernen:
Um die Erneuerung eines Zertifikats zu stoppen, können Sie folgendes ausführen, um das Zertifikat aus der Erneuerungsliste zu entfernen:
acme.sh --remove -d example.com [--ecc]
<syntaxhighlight lang="bash" highlight="1" line copy>
Die Zertifikats-/Schlüsseldatei wird nicht von der Festplatte entfernt.
acme.sh --remove -d example.com [--ecc]
</syntaxhighlight>
 
Die Zertifikats-/Schlüsseldatei wird nicht von der Festplatte entfernt
* Sie können das entsprechende Verzeichnis (beispielsweise <code>~/.acme.sh/example.com</code>) selbst entfernen
 
== Update ''acme.sh'' ==
''acme.sh'' wird ständig weiterentwickelt, es wird daher dringend empfohlen, den neuesten Code zu verwenden!
 
; Update
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo acme.sh --upgrade
</syntaxhighlight>


Sie können das entsprechende Verzeichnis (z.B. <code>~/.acme.sh/example.com</code>) selbst entfernen.
; Automatische Update aktivieren
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo acme.sh --upgrade --auto-upgrade
</syntaxhighlight>


== Wie man <code>acme.sh</code> aktualisiert ==
; Deaktivieren Sie die automatische Aktualisierung
acme.sh wird ständig weiterentwickelt, es wird daher dringend empfohlen, den neuesten Code zu verwenden.
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo acme.sh --upgrade --auto-upgrade 0
</syntaxhighlight>


Sie können acme.sh mit dem neuesten Code aktualisieren:
== Benachrichtigungen ==
acme.sh --upgrade
; Benachrichtigungen in Cronjob senden
Sie können auch die automatische Aktualisierung aktivieren:
# https://github.com/acmesh-official/acme.sh/wiki/notify
acme.sh --upgrade --auto-upgrade
Dann wird '''acme.sh''' automatisch auf dem neuesten Stand gehalten.


Deaktivieren Sie die automatische Aktualisierung:
<noinclude>
acme.sh --upgrade --auto-upgrade 0
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
=== Links ===
==== Weblinks ====
# https://github.com/acmesh-official/acme.sh


== Ausstellen eines Zertifikats aus einer vorhandenen CSR ==
[[Kategorie:Apache/HTTP/Kryptografie]]
<nowiki>https://github.com/acmesh-official/acme.sh/wiki/Issue-a-cert-from-existing-CSR</nowiki>


== Benachrichtigungen in Cronjob senden ==
</noinclude>
<nowiki>https://github.com/acmesh-official/acme.sh/wiki/notify</nowiki>

Aktuelle Version vom 26. Februar 2026, 10:57 Uhr

Acme.sh/Anwendung - Beschreibung

Beschreibung

Aufgabe Beschreibung
Zertifikat ausstellen
Zertifikat installieren
Standalone-Server
Eigenständigen SSL-Server
Apache-Modus
Nginx-Modus
DNS-API-Integration
Manueller DNS-Modus
ECC-Zertifikate
Wildcard-Zertifikate
Zertifikate erneuern
Update acme.sh
Benachrichtigungen

Zertifikat ausstellen

Einzelne Domäne

Alternativen
acme.sh --issue -d example.com -w /home/wwwroot/example.com
acme.sh --issue -d example.com -w /home/username/public_html
acme.sh --issue -d example.com -w /var/www/html

Mehrere Domänen in einem Zertifikat

acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com

Der Parameter /home/wwwroot/example.com oder /home/username/public_html oder /var/www/html ist der Web-Stammordner, in dem Sie die Dateien Ihrer Website hosten

  • Sie MÜSSEN Schreibzugriff auf diesen Ordner haben

Das zweite Argument "example.com" ist die Hauptdomain, für die Sie das Zertifikat ausstellen möchten

  • Sie müssen dort mindestens eine Domain haben

Sie müssen alle Domänen auf das gleiche Webroot-Verzeichnis verweisen und binden: /home/wwwroot/example.com

Die Zertifikate werden in ~/.acme.sh/example.com/ abgelegt

Die Zertifikate werden automatisch alle 60 Tage erneuert

Beispiele
  1. https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

Aus vorhandenem CSR

Ausstellen eines Zertifikats aus einer vorhandenen CSR

  1. https://github.com/acmesh-official/acme.sh/wiki/Issue-a-cert-from-existing-CSR

Zertifikat installieren

Installieren des Zertifikates auf dem Webserver (Apache, Nginx, …)

Nachdem das Zertifikat generiert wurde, möchten Sie es wahrscheinlich auf Ihren Apache/Nginx- oder anderen Servern installieren/kopieren

  • Sie MÜSSEN diesen Befehl verwenden, um die Zertifikate in die Zieldateien zu kopieren, verwenden Sie NICHT die Zertifikatsdateien im Ordner ~/.acme.sh/, sie sind nur für den internen Gebrauch, die Ordnerstruktur kann sich in Zukunft ändern
Apache
 acme.sh --install-cert -d example.com \
 --cert-file /path/to/certfile/in/apache/cert.pem \
 --key-file /path/to/keyfile/in/apache/key.pem \
 --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
 --reloadcmd "service apache2 force-reload"
Nginx
 acme.sh --install-cert -d example.com \
 --key-file /path/to/keyfile/in/nginx/key.pem \
 --fullchain-file /path/to/fullchain/nginx/cert.pem \
 --reloadcmd "service nginx force-reload"

Nur die Domäne ist erforderlich, alle anderen Parameter sind optional

Die Eigentums- und Berechtigungsinformationen vorhandener Dateien werden beibehalten

  • Sie können die Dateien im Voraus erstellen, um die Eigentümerschaft und die Berechtigung zu definieren

Installieren/kopieren Sie das Zertifikat/den Schlüssel in den Apache- oder Nginx-Produktionspfad

Das Zertifikat wird standardmäßig alle 60 Tage erneuert (was konfigurierbar ist)

  • Sobald das Zertifikat erneuert wurde, wird der Apache/Nginx-Dienst automatisch mit dem folgenden Befehl neu geladen: service apache2 force-reload oder service nginx force-reload

Seien Sie bitte vorsichtig: Der "reloadcmd" ist sehr wichtig

  • Das Zertifikat kann automatisch erneuert werden, aber ohne einen korrekten "reloadcmd" wird das Zertifikat möglicherweise nicht auf Ihren Server (wie Nginx oder Apache) übertragen, und Ihre Website kann dann in 60 Tagen kein erneuertes Zertifikat anzeigen.

Standalone-Server

Standalone-Server zum Ausstellen von Zertifikaten verwenden

(Sie müssen root/sudoer sein oder die Erlaubnis haben, auf Port 80 (TCP) zu lauschen)

Port 80 (TCP) MUSS zum Abhören frei sein, sonst werden Sie aufgefordert, ihn freizugeben und es erneut zu versuchen

acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com
Weitere Beispiele
  1. https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

Eigenständigen SSL-Server

Eigenständigen SSL-Server zum Ausstellen von Zertifikaten verwenden

(Sie müssen root/sudoer sein oder die Erlaubnis haben, auf Port 443 (TCP) zu lauschen)

Port 443 (TCP) MUSS zum Abhören frei sein, sonst werden Sie aufgefordert, ihn freizugeben und es erneut zu versuchen

acme.sh --issue --alpn -d example.com -d www.example.com -d cp.example.com
Beispiele
  1. https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

Apache-Modus

Apache-Modus verwenden

(Sie müssen root/sudoer sein, da dies für die Interaktion mit dem Apache-Server erforderlich ist)

Wenn Sie einen Webserver betreiben, wird empfohlen, den Webroot-Modus zu verwenden

Insbesondere, wenn Sie einen Apache-Server betreiben, können Sie stattdessen den Apache-Modus verwenden

  • In diesem Modus werden keine Dateien in Ihren Web-Stammordner geschrieben

Setzen Sie einfach die Zeichenkette "apache" als zweites Argument, und es wird automatisch die Verwendung des Apache-Plugins erzwungen

acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com

Dieser Apache-Modus dient nur dazu, das Zertifikat auszustellen, er wird Ihre Apache-Konfigurationsdateien nicht verändern

  • Sie müssen Ihre Website-Konfigurationsdateien selbst so konfigurieren, dass das Zertifikat verwendet wird
  • Wir wollen Ihren Apache-Server nicht durcheinander bringen, keine Sorge.
Beispiele
  1. https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

Nginx-Modus

Nginx-Modus verwenden

(Sie müssen root/sudoer sein, da dies für die Interaktion mit dem Nginx-Server erforderlich ist)

Wenn Sie einen Webserver betreiben, wird empfohlen, den Webroot-Modus zu verwenden

Insbesondere, wenn Sie einen nginx-Server betreiben, können Sie stattdessen den nginx-Modus verwenden

  • In diesem Modus werden keine Dateien in Ihr Web-Root-Verzeichnis geschrieben

Geben Sie einfach die Zeichenfolge "nginx" als zweites Argument ein

Der nginx-Server wird automatisch konfiguriert, um die Domäne zu verifizieren und dann die nginx-Konfiguration auf die ursprüngliche Version zurückzusetzen

Die Konfiguration wird also nicht geändert

acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com

Dieser Nginx-Modus dient nur zur Ausstellung des Zertifikats, er ändert nicht Ihre Nginx-Konfigurationsdateien

  • Sie müssen Ihre Website-Konfigurationsdateien selbst für die Verwendung des Zertifikats konfigurieren
  • Wir wollen Ihren Nginx-Server nicht durcheinander bringen, keine Sorge.
Beispiele
  1. https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

DNS-API-Integration

Automatische DNS-API-Integration

Wenn Ihr DNS-Anbieter API-Zugriff unterstützt, können wir diese API verwenden, um die Zertifikate automatisch auszustellen

Sie müssen nichts manuell tun!

acme.sh unterstützt die meisten DNS-Anbieter
  1. https://github.com/acmesh-official/acme.sh/wiki/dnsapi

Manueller DNS-Modus

Verwenden des manuellen DNS-Modus

Siehe
  1. https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode

Wenn Ihr DNS-Anbieter keinen API-Zugang unterstützt, können Sie den txt-Eintrag von Hand hinzufügen

acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com

Sie sollten eine Ausgabe wie unten erhalten:

 Add the following txt record:
 Domain:_acme-challenge.example.com
 Txt value:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c

 Add the following txt record:
 Domain:_acme-challenge.www.example.com
 Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 Please add those txt records to the domains

Waiting for the dns to take effect

Dann wiederholen Sie den Vorgang einfach mit neuen Argumenten:

acme.sh --renew -d example.com

Okay, es ist geschafft

Achten Sie darauf, dass dies ein manueller DNS-Modus ist, der nicht automatisch erneuert werden kann

  • Sie müssen einen neuen txt-Eintrag zu Ihrer Domain hinzufügen, wenn Sie Ihr Zertifikat erneuern.

Bitte verwenden Sie stattdessen den dns api-Modus.

ECC-Zertifikate

ECC-Zertifikate ausstellen

Setzen Sie einfach den Parameter keylength mit einem Präfix ec-

ECC-Zertifikat für eine Domäne
acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256
SAN-Multi-Domain-ECC-Zertifikat
acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256

Bitte beachten Sie den obigen Parameter keylength

Gültige Werte sind
  1. ec-256 (prime256v1, "ECDSA P-256", dies ist der Standardschlüsseltyp)
  2. ec-384 (secp384r1, "ECDSA P-384")
  3. ec-521 (secp521r1, "ECDSA P-521", das von Let's Encrypt noch nicht unterstützt wird).
  4. 2048 (RSA2048)
  5. 3072 (RSA3072)
  6. 4096 (RSA4096)

Wildcard-Zertifikate

Wildcard-Zertifikate ausstellen

Geben Sie als Parameter -d einen Platzhalter für eine Domäne an

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

Zertifikate erneuern

  • Zertifikate müssen nicht manuell erneuert werden
  • Alle Zertifikate werden automatisch alle 60 Tage erneuert
Erneuerung erzwingen
acme.sh --renew -d example.com --force

oder, für ECC cert

acme.sh --renew -d example.com --force --ecc
Zertifikatserneuerung anhalten

Um die Erneuerung eines Zertifikats zu stoppen, können Sie folgendes ausführen, um das Zertifikat aus der Erneuerungsliste zu entfernen:

acme.sh --remove -d example.com [--ecc]

Die Zertifikats-/Schlüsseldatei wird nicht von der Festplatte entfernt

  • Sie können das entsprechende Verzeichnis (beispielsweise ~/.acme.sh/example.com) selbst entfernen

Update acme.sh

acme.sh wird ständig weiterentwickelt, es wird daher dringend empfohlen, den neuesten Code zu verwenden!

Update
sudo acme.sh --upgrade
Automatische Update aktivieren
sudo acme.sh --upgrade --auto-upgrade
Deaktivieren Sie die automatische Aktualisierung
sudo acme.sh --upgrade --auto-upgrade 0

Benachrichtigungen

Benachrichtigungen in Cronjob senden
  1. https://github.com/acmesh-official/acme.sh/wiki/notify


Anhang

Siehe auch

  1. https://github.com/acmesh-official/acme.sh