Es gibt einige beliebte Methoden zum Generieren von SSL- und TLS-Zertifikaten in Linux. Eine der beliebtesten Methoden zum Ausstellen von SSL-Zertifikaten ist Let’s encrypt, eine Zertifizierungsstelle, die kostenlose SSL-Zertifikate anbietet. Es gibt eine noch einfachere Möglichkeit, das Zertifikat auszustellen, die keine Abhängigkeiten und Anforderungen erfordert. Das in Shell geschriebene Skript acme.sh erleichtert das Generieren und Installieren von SSL-Zertifikaten in Linux-Systemen. In diesem Artikel erfahren Sie, wie Sie das Skript acme.sh im Linux-System installieren und wie Sie damit SSL-Zertifikate generieren und installieren.
acme.sh-Installation
Die Installation von acme.sh ist ein einfacher und unkomplizierter Vorgang. Führen Sie die folgenden Schritte aus, um die Anwendung zu installieren.
Methode 1:Verwendung des Curl-Befehls
$ curl https://get.acme.sh | sh
Methode 2:Git-Repository verwenden
$ git clone https://github.com/acmesh-official/acme.sh.git $ cd ./acme.sh $ ./acme.sh --install
Führen Sie nach Abschluss der Installation den folgenden Befehl zur Überprüfung aus.
$ acme.sh --version
Ausgabe:
SSL-Zertifikat generieren
Das Generieren von SSL-Zertifikaten mit acme.sh ist ein sehr einfacher Vorgang. Führen Sie die folgenden Schritte aus, um das Zertifikat zu generieren.
Generieren Sie ein Zertifikat für eine einzelne Domain im Webroot-Modus.
$ acme.sh --issue -d vitux.com -w /home/wwwroot/vitux.com
Generieren Sie ein Zertifikat für mehrere Domains im selben Zertifikat
$ acme.sh --issue -d vitux.com -d www.vitux.com -d example.vitux.com -w /home/wwwroot/vitux.com
Wo,
/home/wwwroot/vitux.com ist der Webroot-Ordner, in dem die Website-Datei gehostet wird. Denken Sie daran, Schreibzugriff auf den Webroot-Ordner zu gewähren.
vitux.com ist der Domainname, den ich zum Generieren von SSL-Zertifikaten verwendet habe. Sie können Ihren Domainnamen entsprechend auswählen.
Alle Domainnamen sollten auf dasselbe Webroot-Verzeichnis verweisen.
Das generierte SSL-Zertifikat befindet sich im Verzeichnis ~/.acme.sh/
Wobei Domänenname das Verzeichnis ist, das mit Ihrer beim Generieren des Zertifikats bereitgestellten Domäne erstellt wurde.
Zertifikat mit dem eigenständigen Server ausstellen
Verwenden Sie den folgenden Befehl, um ein SSL-Zertifikat mit dem eigenständigen Server zu generieren.
Für eine einzelne Domain
$ acme.sh --issue --standalone -d vitux.com
Für mehrere Domains
$ acme.sh --issue --standalone -d vitux.com -d www.vitux.com -d example.vitux.com
Sudo- oder Root-Benutzerberechtigung ist erforderlich, um TCP-Port 80 abzuhören. Port 80 muss frei sein, um auf dem Server zu lauschen.
SSL-Zertifikat mit eigenständigem SSL-Server generieren
Verwenden Sie den folgenden Befehl, um ein SSL-Zertifikat mit einem eigenständigen SSL-Server zu generieren. In diesem Beispiel habe ich die Domäne linuxways.com zur Demonstration verwendet. Berücksichtigen Sie beim Generieren des Zertifikats Ihren eigenen Domänennamen.
$ acme.sh --issue --alpn -d vitux.com -d www.vitux.com -d example.vitux.com
Sudo- oder Root-Benutzerberechtigung ist erforderlich, um TCP-Port 443 abzuhören. Denken Sie auch daran, Port 443 zum Abhören freizugeben, da sonst Aufforderungen erscheinen, ihn freizugeben.
Verwenden Sie den Apache-Modus, um Zertifikate zu generieren
Der Webroot-Modus wird empfohlen, um ein SSL-Zertifikat zum Ausführen eines Webservers zu generieren. Wenn Apache als Webserver verwendet wird, kann der Apache-Modus verwendet werden, um das Zertifikat auszustellen. Dieser Modus schreibt keine Dateien in das Webroot-Verzeichnis.
Dieser Modus muss mit dem Apache-Webserver interagieren, daher müssen Sie root/sudo-Privilegien haben.
$ acme.sh --issue --apache -d vitux.com www.vitux.com
Der obige Befehl generiert nur die Zertifikatsdatei. Sie müssen auf das Verzeichnis der Zertifikatsdatei in der Apache-Konfigurationsdatei verweisen, um das Zertifikat zu installieren.
Verwenden Sie den nginx-Modus, um das Zertifikat auszustellen
Insbesondere wenn Sie nginx als Webserver verwenden, kann der nginx-Modus anstelle des Webroot-Modus verwendet werden. Alles, was Sie brauchen, ist das Root-/Sudo-Privileg, da dies mit dem Nginx-Webserver interagiert. Dieser Modus schreibt keine Dateien in das Webroot-Verzeichnis.
$ acme.sh --issue --nginx -d vitux.com www.vitux.com
Der obige Befehl generiert nur das Zertifikat. Sie müssen auf das Zertifikatdateiverzeichnis in der nginx-Konfigurationsdatei verweisen, um es zu installieren.
Zertifikat für Wildcard-Domain ausstellen
Das Generieren von Zertifikaten für Wildcard-Domains ist einfach. Verwenden Sie anstelle von -d Parament die Platzhalterdomäne als:
$ acme.sh --issue -d vitux.com -d *.vitux.com --dns dns_cf
Der Parameter –dns gibt an, welchen DNS-Hoster Sie verwenden, dns_cf steht für Cloudflare.
SSL-Zertifikat von Let’s Encrypt mit acme.sh erneuern
Während der Installation von acme.sh wird ein Cronjob erstellt, um das SSL-Zertifikat alle 60 Tage zu erneuern. Sie müssen das Zertifikat also nicht manuell erneuern. Sie können das Zertifikat jedoch mit force erneuern Option als:
$ acme.sh --renew -d vitux.com --force
Führen Sie den folgenden Befehl aus, um den Cron-Job zu finden.
$ crontab -l
Protokolldateiverzeichnis
Die Protokolldatei von acme.sh befindet sich im Verzeichnis ~/.acme.sh. Die Generierung von Protokolldateien ist standardmäßig nicht aktiviert. Nehmen Sie die folgenden Änderungen in der Datei account.conf vor.
$ cd ~/.acme.sh $ vi account.conf
Verwenden Sie nun den folgenden Befehl, um die generierte Protokolldatei zu finden.
$ cd ~/.acme.sh $ tail -f acme.sh.log
Schlussfolgerung
In diesem Artikel haben wir gelernt, wie man das Skript acme.sh installiert, um SSL-Zertifikate in Linux-Systemen zu generieren. Ich habe Ihnen gezeigt, wie Sie SSL-Zertifikate für mehrere Domains gleichzeitig generieren und SSL-Zertifikate erneuern können.