So fordern Sie eine LetsEncrypt Zertifikat Mit Acme

0
244

LetsEncrypt verändert das SSL-Zertifikat der Welt, wenn das Angebot frei, kurzlebig, SSL-Zertifikate erlaubt, eine große Menge von Einzelpersonen und Unternehmen zur Sicherung Ihrer web-Anwendungen, die nichts Kosten. Mit diesem service die nötige Infrastruktur vorhanden sein müssen, und zu diesem Zweck eine Vielzahl von Anwendungen entstanden, die passen die SSL-ausstellen muss.

Eine der häufigsten utilities, die von CertBot, die gut funktionieren kann, aber eine andere open-source-Anwendung, die verfügbar ist acme.sh. Dies ist eine völlig shell-basierten ACME (das Protokoll von LetsEncrypt für die Ausstellung von SSL-Zertifikaten) client. Mit vielen erweiterten Funktionen eingebaut, dieser client ermöglicht es, auch für komplexe Konfigurationen.

Installieren Acme.sh

Der einfachste Weg zur Installation [acme.sh](<http://acme.sh>), ist die folgende, die downloads und führt das script von hier https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh.

curl <https://get.acme.sh> | sh

Die Quelle für diese site befindet sich hier, wenn Sie möchten, um zu überprüfen, was das eigentliche Skript zu tun

Die installation herunterladen und verschieben Sie die Dateien in ~/.acme.sh und installieren Sie einen alias in deiner ~/.bashrc-Datei. Zusätzlich wird ein cron-job installiert werden, wenn verfügbar.

Erste Schritte

Viel, wie Sie Sie verwenden [acme.sh](<http://acme.sh>), hängt von der Methode und Anwendung, mit der Sie das Zertifikat anfordern. Acme.sh bietet viele verschiedene Methoden, um tatsächlich ein Zertifikat anfordern, wie z.B.:

  • Webroot-Modus
  • Standalone-Modus
  • Standalone-tls-alpn-Modus
  • Apache-Modus
  • Nginx-Modus
  • DNS-Modus
  • DNS-alias-Modus
  • Stateless-Modus

In diesem Artikel werde ich zeigen zwei verschiedene Möglichkeiten, um ein Zertifikat anzufordern. Ich bin auch web-server-Konfigurationen für NGINX und Apache, verwendet Webroot-Methode. Die DNS-mode-Methode verwendet eine Konfigurationsdatei zu erstellen, die CNAME-records, die verwendet werden, um die Domäne zu überprüfen, anstatt eine Datei auf dem system.

Web-Server-Konfiguration

NGINX Konfiguration LetsEncrypt

NGINX macht es einfach zu erstellen Sie eine freigegebene Konfiguration zu verwenden, wenn die webroot-Methode der Anforderung eines Zertifikats.

letsencrypt.conf

Es wird empfohlen, zum erstellen einer standalone-Konfiguration, die aufgenommen werden können, wie erforderlich, in die vhost-Konfigurationen, etwa so: include /etc/nginx/letsencrypt.conf

# Regel für legitime ACME Herausforderung-Anfragen (wie /.bekannte/acme-challenge/xxxxxxxxx)
# Wir verwenden ^~ hier, so dass wir nicht überprüfen Sie die anderen regexes (für speed-up). Wir eigentlich Abbrechen MÜSSEN
# weitere regex-Prüfungen, da in den anderen config-Dateien haben die regex-Regel, die den Zugriff auf Dateien, die mit gepunkteten Namen.
location ^~ /.bekannte/acme-challenge/ {
# Set richtige content-type. Nach diesem:
# <https://community.letsencrypt.org/t/using-the-webroot-domain-verification-method/1445/29>
# Aktuelle Spezifikation erfordert “text/plain” oder keine content header auf allen.
# Es scheint, dass “text/plain” ist eine sichere option.
default_type “text/plain”;
}

# Direct access gibt einen 404
location = /.bekannte/acme-challenge/ {
return 404;
}

Apache

Ähnlich wie NGINX, Apache, kann eine separate Konfigurationsdatei erstellen. Ein Beispiel für diese Konfiguration ist nachfolgend dargestellt.

/etc/apache2/conf-available/letsencrypt.conf

In diesem Fall der Apache-Konfiguration ist spezifisch für den virtuellen host, aufgrund der Notwendigkeit, die Festplatte Lage. Das folgende ist eine gemeinsame Position, aber es kann sein, je nach Ihrer spezifischen Konfiguration.

Alias /.bekannte/acme-challenge/ “/var/www/html/.bekannte/acme-challenge/”
<Directory “/var/www/html/”>
AllowOverride None
Options MultiViews Indizes SymLinksIfOwnerMatch IncludesNoExec
Erfordern Methode GET POST OPTIONS
</Directory>

DNS-Konfiguration

In diesem Artikel, ich bin die Demonstration der DNS-Modus mit Cloudflare, bietet es extrem schnelle DNS-Veränderungen und arbeitet außergewöhnlich gut mit dieser Methode.

Acme.sh benutzt die beiden Umgebungsvariablen für die dns_cf Methode: CF_Key und CF_Email. Um diese in Ihrer Umgebung auf Start, können Sie diese Konfiguration in Ihr .bashrc-Datei.

Es kann nicht ohne weiteres erkennbar, aber es gibt einem vorangestellten Leerzeichen vor jedem Befehl exportieren, die in der Regel sichergestellt, dass Sie nicht Lesen in der Geschichte, just in case.

export CF_Key=”#########…”
export CF_Email=”cfaccount@email.com”

Ausgabe Zertifikat über das Webroot-Methode

Wenn Sie den folgenden Befehl ausgeben, der zwei Domänen definiert sind, in ein einziges Zertifikat. Dies ist, um sicherzustellen, dass wenn entweder der Hostnamen angefordert wird (und oft umgeleitet, um die kanonisch), die Anforderung wird noch geschützt durch eine sichere Verbindung.

acme.sh –Thema -d example.com -d www.example.com -w /var/www/html

Ausgestellt werden die Zertifikate in /.acme.sh/acme.sh/{domain_name}

Ausgabe Zertifikat über die DNS-Methode

Bei Verwendung des DNS-Ausstellung-Methode, eine temporäre txt-Eintrag erstellt, über das Cloudflare-API, und LetsEncrypt überprüft, ob die domain mit diesem temporären Datensatz. Dies ist eine sauberere Methode, da nicht webroot-Konfiguration ist erforderlich.

# Mehrere Domains
acme.sh –Thema –dns-dns_cf -d example.com -d www.example.com

Ausgestellt werden die Zertifikate in /.acme.sh/acme.sh/{domain_name}

Erneuerung Zertifikat

Standardmäßig Acme.sh wird, erstellen Sie einen cron-Job wie den folgenden Eintrag:

48 0 * * * “/home/user/.acme.sh/acme.sh” –cron –home “/home/user/.acme.sh” > /dev/null

Zu zwingen, eine Verlängerung, können Sie den folgenden Befehl erteilen, die die gleiche Erteilung Methode, wie Sie ursprünglich verwendet:

acme.sh –renew-d example.com -d www.example.com

Entfernen Von Zertifikaten

Wenn Sie nicht wollen, zu erneuern eines Zertifikats, es ist sehr einfach zu entfernen. Dies gilt nicht entfernen Sie das Zertifikat von der Festplatte, obwohl. Um das zu tun, müssen Sie navigieren Sie zu ~/.acme.sh/ und entfernen Sie das Verzeichnis mit den Zertifikaten.

acme.sh –remove -d example.com -d www.example.com

Dies erlaubt einem zu bereinigen, die Zertifikate, die für die Erneuerung, die Sie überprüfen können, durch die Auflistung der Zertifikate wie folgt:

acme.sh –Liste

Fazit

LetsEncrypt bietet eine ausgezeichnete und leicht zu bedienende service für die Bereitstellung von SSL-Zertifikaten für den Einsatz in Webseiten. Erstellen Sie eine sichere website ist einfacher als je zuvor, und mithilfe des acme.sh client heißt, Sie haben vollständige Kontrolle über, wie dies tritt auf Ihrem web-server.

Mit einer Reihe von verschiedenen Methoden, um ein Zertifikat abzurufen, auch sehr sichere Methoden, wie eine Delegierte Domäne, erlaubt es, die richtig abrufen der benötigten Zertifikate.