Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:let_s_encrypt

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:let_s_encrypt [2016/09/16 14:17] klaustachtler:let_s_encrypt [2021/06/04 20:54] (aktuell) klaus
Zeile 3: Zeile 3:
 [[https://letsencrypt.org/|{{:tachtler:index:letsencrypt-48x48.png }}]] [[https://letsencrypt.org/|Let's Encrypt]] ist eine **kostenlose**, automatisierte und offene Zertifizierungsstelle (CA), welche offiziell dem Nutzen der Öffentlichkeit dienen soll. [[https://letsencrypt.org/|Let's Encrypt]] ist ein Service der von der [[https://letsencrypt.org/isrg|Internet Security Research Group (ISRG)]] zur Verfügung gestellt wird. [[https://letsencrypt.org/|{{:tachtler:index:letsencrypt-48x48.png }}]] [[https://letsencrypt.org/|Let's Encrypt]] ist eine **kostenlose**, automatisierte und offene Zertifizierungsstelle (CA), welche offiziell dem Nutzen der Öffentlichkeit dienen soll. [[https://letsencrypt.org/|Let's Encrypt]] ist ein Service der von der [[https://letsencrypt.org/isrg|Internet Security Research Group (ISRG)]] zur Verfügung gestellt wird.
  
-[[https://letsencrypt.org/|Let's Encrypt]] bietet öffentlich, jederman digitalen Zertifikate an, um HTTPS (SSL / TLS) Verschlüsselung für Websites zu ermöglichen. Dies wird **kostenlos** und in einer möglichst benutzerfreundlichen Art und Weise angeboten. [[https://letsencrypt.org/|Let's Encrypt]] tut dies, weil +[[https://letsencrypt.org/|Let's Encrypt]] bietet öffentlich, jedermann digitalen Zertifikate an, um HTTPS (SSL / TLS) Verschlüsselung für Websites zu ermöglichen. Dies wird **kostenlos** und in einer möglichst benutzerfreundlichen Art und Weise angeboten. [[https://letsencrypt.org/|Let's Encrypt]] tut dies, weil 
 [[https://letsencrypt.org/|Let's Encrypt]] offiziell ein sichereres und die Privatsphäre respektierendes Internet fördern möchte. [[https://letsencrypt.org/|Let's Encrypt]] offiziell ein sichereres und die Privatsphäre respektierendes Internet fördern möchte.
  
Zeile 18: Zeile 18:
 Die Erstellung soll durch Verwendung von nachfolgendem **Skript** durchgeführt werden: Die Erstellung soll durch Verwendung von nachfolgendem **Skript** durchgeführt werden:
   * [[https://github.com/lukas2511/dehydrated|dehydrated]]   * [[https://github.com/lukas2511/dehydrated|dehydrated]]
-welches unter obenstehendem externen Link herunterheladen werden kann.+welches unter oben stehendem externen Link heruntergeladen werden kann.
  
 ===== Herunterladen ===== ===== Herunterladen =====
Zeile 26: Zeile 26:
 :!: **HINWEIS** - Beim Einsatz des Standard-Clients von [[https://letsencrypt.org|Let's Encrypt]] mit dem Namen [[https://certbot.eff.org/|certbot]] sind gewisse Einschränkungen gegeben, bzw. dessen Konfiguration ist nicht so komfortabel. :!: **HINWEIS** - Beim Einsatz des Standard-Clients von [[https://letsencrypt.org|Let's Encrypt]] mit dem Namen [[https://certbot.eff.org/|certbot]] sind gewisse Einschränkungen gegeben, bzw. dessen Konfiguration ist nicht so komfortabel.
  
-Nachfolgender Befehl, wechselt in das Verzeichnis **''/opt''**, in dem auch **hier** alle weiteren Konfigurationen und Aktionen durchgeführt werden sollen, damit alle benötigten Komponenten später, zentral an einem Speicherort zu finden sind, was meiner Meinung nach die Handhabung insgesammt vereinfacht.+Nachfolgender Befehl, wechselt in das Verzeichnis **''/opt''**, in dem auch **hier** alle weiteren Konfigurationen und Aktionen durchgeführt werden sollen, damit alle benötigten Komponenten später, zentral an einem Speicherort zu finden sind, was meiner Meinung nach die Handhabung insgesamt vereinfacht.
 <code> <code>
 # cd /opt # cd /opt
 </code> </code>
  
-Anschließend kann mit nachfolgendem Befehl das Skript [[https://github.com/lukas2511/dehydrated|dehydrated]] unter **Angabe eines Ziel-Verzeichnisses** und eines **abweichenden Namen, unter dem die heruntergeladene Datei gespeichert werden soll**, heruntergeladen werden:+Anschliessend kann mit nachfolgendem Befehl das Skript [[https://github.com/lukas2511/dehydrated|dehydrated]] unter **Angabe eines Ziel-Verzeichnisses** und eines **abweichenden Namen, unter dem die heruntergeladene Datei gespeichert werden soll**, heruntergeladen werden:
 <code> <code>
 # wget -P /opt -O dehydrated.zip https://github.com/lukas2511/dehydrated/archive/master.zip # wget -P /opt -O dehydrated.zip https://github.com/lukas2511/dehydrated/archive/master.zip
Zeile 90: Zeile 90:
 </code> </code>
  
-Anschließend sollten nun nachfolgende Verzeichnisse und Dateien enstanden sein, was mit folgendem Befehl überprüft werden kann und in etwa die folgende Ausgabe erzeugen sollte:+Anschliessend sollten nun nachfolgende Verzeichnisse und Dateien entstanden sein, was mit folgendem Befehl überprüft werden kann und in etwa die folgende Ausgabe erzeugen sollte:
 <code> <code>
 # ls -l * # ls -l *
Zeile 105: Zeile 105:
 </code> </code>
  
-Als abschließenden Schritt der Installation, soll nun ebenfalls unter dem Verzeichnis **''/opt''** eine Ordnerstruktur mit nachfolgendem Befehl angelegt werden:+Als abschliessenden Schritt der Installation, soll nun ebenfalls unter dem Verzeichnis **''/opt''** eine Ordnerstruktur mit nachfolgendem Befehl angelegt werden:
 <code> <code>
-# mkdir -p /opt/dehydrated-master/{accounts,certs,etc,work,www}+# mkdir -p /opt/dehydrated-master/{alpn-certs,accounts,certs,etc,hook,work,www}
 </code> </code>
  
Zeile 123: Zeile 123:
 total 64 total 64
 drwxr-xr-x 2 root   root       6 Sep 16 08:21 accounts drwxr-xr-x 2 root   root       6 Sep 16 08:21 accounts
 +drwxr-xr-x 2 root   root       6 Sep 16 08:21 alpn-certs
 drwxr-xr-x 2 root   root       6 Sep 16 08:21 certs drwxr-xr-x 2 root   root       6 Sep 16 08:21 certs
 +drwxr-xr-x 2 root   root       6 Sep 16 08:21 chains
 -rw-r--r-- 1 root   root    1898 Sep 14 15:11 CHANGELOG -rw-r--r-- 1 root   root    1898 Sep 14 15:11 CHANGELOG
 -rwxr-xr-x 1 root   root   39373 Sep 14 15:11 dehydrated -rwxr-xr-x 1 root   root   39373 Sep 14 15:11 dehydrated
 drwxr-xr-x 3 root   root    4096 Sep 14 15:11 docs drwxr-xr-x 3 root   root    4096 Sep 14 15:11 docs
 drwxr-xr-x 2 root   root       6 Sep 16 08:21 etc drwxr-xr-x 2 root   root       6 Sep 16 08:21 etc
 +drwxr-xr-x 2 root   root       6 Sep 16 08:21 hook
 -rw-r--r-- 1 root   root    1085 Sep 14 15:11 LICENSE -rw-r--r-- 1 root   root    1085 Sep 14 15:11 LICENSE
 -rw-r--r-- 1 root   root    3690 Sep 14 15:11 README.md -rw-r--r-- 1 root   root    3690 Sep 14 15:11 README.md
Zeile 160: Zeile 163:
 # Default values of this config are in comments        # # Default values of this config are in comments        #
 ######################################################## ########################################################
 +
 +# Which user should dehydrated run as? This will be implictly enforced when running as root
 +#DEHYDRATED_USER=
 +
 +# Which group should dehydrated run as? This will be implictly enforced when running as root
 +#DEHYDRATED_GROUP=
  
 # Resolve names to addresses of IP version only. (curl) # Resolve names to addresses of IP version only. (curl)
Zeile 168: Zeile 177:
 IP_VERSION=4 IP_VERSION=4
  
- +# Path to certificate authority (default: https://acme-v02.api.letsencrypt.org/directory)
-# Path to certificate authority (default: https://acme-v01.api.letsencrypt.org/directory)+
 # Tachtler # Tachtler
-# default: #CA="https://acme-v01.api.letsencrypt.org/directory" +# default: #CA="https://acme-v02.api.letsencrypt.org/directory" 
-#CA="https://acme-v01.api.letsencrypt.org/directory"+#CA="https://acme-v02.api.letsencrypt.org/directory"
 # Tachtler - TESTING without LIMITATION - IMPORTANT !!! # Tachtler - TESTING without LIMITATION - IMPORTANT !!!
-CA="https://acme-staging.api.letsencrypt.org/directory"+CA="https://acme-staging-v02.api.letsencrypt.org/directory"
  
-# Path to license agreement (default: https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf) +# Path to old certificate authority 
-#LICENSE="https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf"+# Set this value to your old CA value when upgrading from ACMEv1 to ACMEv2 under a different endpoint. 
 +# If dehydrated detects an account-key for the old CA it will automatically reuse that key 
 +# instead of registering a new one. 
 +default: https://acme-v01.api.letsencrypt.org/directory 
 +#OLDCA="https://acme-v01.api.letsencrypt.org/directory"
  
-# Which challenge should be used? Currently http-01 and dns-01 are supported +# Which challenge should be used? Currently http-01dns-01 and tls-alpn-01 are supported 
-#CHALLENGETYPE="http-01"+default: #CHALLENGTYPE="http-01"
  
 # Path to a directory containing additional config files, allowing to override # Path to a directory containing additional config files, allowing to override
Zeile 202: Zeile 214:
 # default: #CERTDIR="${BASEDIR}/certs" # default: #CERTDIR="${BASEDIR}/certs"
 CERTDIR="${SCRIPTDIR}/certs" CERTDIR="${SCRIPTDIR}/certs"
 +
 +# Output directory for alpn verification certificates
 +# Tachtler
 +# default: #ALPNCERTDIR="${BASEDIR}/alpn-certs"
 +ALPNCERTDIR="${SCRIPTDIR}/alpn-certs"
  
 # Directory for account keys and registration information # Directory for account keys and registration information
Zeile 218: Zeile 235:
 # Path to openssl config file (default: <unset> - tries to figure out system default) # Path to openssl config file (default: <unset> - tries to figure out system default)
 #OPENSSL_CNF= #OPENSSL_CNF=
 +
 +# Path to OpenSSL binary (default: "openssl")
 +#OPENSSL="openssl"
 +
 +# Extra options passed to the curl binary (default: <unset>)
 +#CURL_OPTS=
  
 # Program or function called in certain situations # Program or function called in certain situations
Zeile 240: Zeile 263:
  
 # Regenerate private keys instead of just signing new certificates on renewal (default: yes) # Regenerate private keys instead of just signing new certificates on renewal (default: yes)
-#PRIVATE_KEY_RENEW="yes"+# Tachtler 
 +# See: https://legacy.thomas-leister.de/lets-encrypt-mit-hpkp-und-dane/ 
 +# default: #PRIVATE_KEY_RENEW="yes
 +PRIVATE_KEY_RENEW="no" 
 + 
 +# Create an extra private key for rollover (default: no) 
 +#PRIVATE_KEY_ROLLOVER="no"
  
 # Which public key algorithm should be used? Supported: rsa, prime256v1 and secp384r1 # Which public key algorithm should be used? Supported: rsa, prime256v1 and secp384r1
Zeile 255: Zeile 284:
 # Option to add CSR-flag indicating OCSP stapling to be mandatory (default: no) # Option to add CSR-flag indicating OCSP stapling to be mandatory (default: no)
 #OCSP_MUST_STAPLE="no" #OCSP_MUST_STAPLE="no"
-</code>+ 
 +# Fetch OCSP responses (default: no) 
 +#OCSP_FETCH="no" 
 + 
 +# OCSP refresh interval (default: 5 days) 
 +#OCSP_DAYS=5 
 + 
 +# Issuer chain cache directory (default: $BASEDIR/chains) 
 +# Tachtler 
 +# default: #CHAINCACHE="${BASEDIR}/chains" 
 +CHAINCACHE="${SCRIPTDIR}/chains" 
 + 
 +# Automatic cleanup (default: no) 
 +#AUTO_CLEANUP="no" 
 + 
 +# ACME API version (default: auto) 
 +#API=auto</code>
  
 **__Erklärungen__**: **__Erklärungen__**:
Zeile 264: Zeile 309:
  
   * <code bash># Tachtler   * <code bash># Tachtler
-# default: #CA="https://acme-v01.api.letsencrypt.org/directory" +# default: #CA="https://acme-v02.api.letsencrypt.org/directory" 
-#CA="https://acme-v01.api.letsencrypt.org/directory"+#CA="https://acme-v02.api.letsencrypt.org/directory"
 # Tachtler - TESTING without LIMITATION - IMPORTANT !!! # Tachtler - TESTING without LIMITATION - IMPORTANT !!!
-CA="https://acme-staging.api.letsencrypt.org/directory"</code>+CA="https://acme-staging-v02.api.letsencrypt.org/directory"</code>
  
 Während der Einrichtung und **Test**-Phase, sollte **__nicht__ gegen die Produktiven Systeme** von [[https://letsencrypt.org/|Let's Encrypt]] getestet werden, da hier relativ rasch ein **Resourcen-Limit** von Anfragen in einer bestimmten Zeit greift. Erst wenn das Skript voll funktionsfähig und getestet ist und alle Konfigurationen entsprechend abgeschlossen sind, sollte hier dann das Produktive System von [[https://letsencrypt.org/|Let's Encrypt]] konfiguriert werden! Während der Einrichtung und **Test**-Phase, sollte **__nicht__ gegen die Produktiven Systeme** von [[https://letsencrypt.org/|Let's Encrypt]] getestet werden, da hier relativ rasch ein **Resourcen-Limit** von Anfragen in einer bestimmten Zeit greift. Erst wenn das Skript voll funktionsfähig und getestet ist und alle Konfigurationen entsprechend abgeschlossen sind, sollte hier dann das Produktive System von [[https://letsencrypt.org/|Let's Encrypt]] konfiguriert werden!
Zeile 286: Zeile 331:
 # default: #CERTDIR="${BASEDIR}/certs" # default: #CERTDIR="${BASEDIR}/certs"
 CERTDIR="${SCRIPTDIR}/certs" CERTDIR="${SCRIPTDIR}/certs"
 +
 +# Output directory for alpn verification certificates
 +# Tachtler
 +# default: #ALPNCERTDIR="${BASEDIR}/alpn-certs"
 +ALPNCERTDIR="${SCRIPTDIR}/alpn-certs"
  
 # Directory for account keys and registration information # Directory for account keys and registration information
Zeile 295: Zeile 345:
 # Tachtler # Tachtler
 # default: #WELLKNOWN="/var/www/dehydrated" # default: #WELLKNOWN="/var/www/dehydrated"
-WELLKNOWN="${SCRIPTDIR}/www"</code>+WELLKNOWN="${SCRIPTDIR}/www" 
 +</code>
  
 Anpassung der einzelnen Pfade bzw. Verzeichnisse, in denen die verschiedenen Dateien dann permanent, oder temporär abgelegt werden sollen. Anpassung der einzelnen Pfade bzw. Verzeichnisse, in denen die verschiedenen Dateien dann permanent, oder temporär abgelegt werden sollen.
Zeile 306: Zeile 357:
  
 :!: **HINWEIS** - Hier können **maximal 90 Tage** eingestellt werden! :!: **HINWEIS** - Hier können **maximal 90 Tage** eingestellt werden!
 +
 +  * <code bash>PRIVATE_KEY_RENEW="no"</code>
 +
 +**Deaktiviert** die Erstellung eines **__neuen__ privaten Schlüssels**, bei **__jeder__** Zertifikatserneuerung.
 +
 +:!: **HINWEIS** - Der private Schlüssel sollte trotzdem von Zeit zu Zeit z.B. **1 x Jahr** erneuert werden!
  
   * <code bash>CONTACT_EMAIL=hostmaster@tachtler.net</code>   * <code bash>CONTACT_EMAIL=hostmaster@tachtler.net</code>
  
 E-Mail-Adresse welche als Kontakt dienen soll. E-Mail-Adresse welche als Kontakt dienen soll.
 +
 +  * <code bash>
 +# Issuer chain cache directory (default: $BASEDIR/chains)
 +# Tachtler
 +# default: #CHAINCACHE="${BASEDIR}/chains"
 +CHAINCACHE="${SCRIPTDIR}/chains"</code>
 +
 +Anpassung der einzelnen Pfade bzw. Verzeichnisse, in denen die verschiedenen Dateien dann permanent, oder temporär abgelegt werden sollen.
  
 ==== /opt/dehydrated-master/etc/domains.txt ==== ==== /opt/dehydrated-master/etc/domains.txt ====
Zeile 418: Zeile 483:
 </code> </code>
  
-Abschließend ist ein Neustart des Web-Servers, hier [[http://www.apache.org|Apache HTTPD Server]] mit nachfolgendem Befehl erfordelrich:+Abschließend ist ein Neustart des Web-Servers, hier [[http://www.apache.org|Apache HTTPD Server]] mit nachfolgendem Befehl erforderlich:
 <code> <code>
 # systemctl restart httpd.service # systemctl restart httpd.service
Zeile 440: Zeile 505:
 nachfolgende Einstellung **erst geändert werden, wenn die Test-Phase erfolgreich abgeschlossen ist!** nachfolgende Einstellung **erst geändert werden, wenn die Test-Phase erfolgreich abgeschlossen ist!**
   * <code bash># Tachtler   * <code bash># Tachtler
-# default: #CA="https://acme-v01.api.letsencrypt.org/directory" +# default: #CA="https://acme-v02.api.letsencrypt.org/directory" 
-#CA="https://acme-v01.api.letsencrypt.org/directory"+#CA="https://acme-v02.api.letsencrypt.org/directory"
 # Tachtler - TESTING without LIMITATION - IMPORTANT !!! # Tachtler - TESTING without LIMITATION - IMPORTANT !!!
-CA="https://acme-staging.api.letsencrypt.org/directory"</code>+CA="https://acme-staging-v02.api.letsencrypt.org/directory"</code> 
 + 
 +**__Bei__ der ersten Generierung von Zertifikaten**, muss eine **Registrierung** **__einmalig__** erfolgen, welche mit nachfolgendem Befehl durchgeführt werden kann: 
 +<code> 
 +# /opt/dehydrated-master/dehydrated --register --accept-terms --config /opt/dehydrated-master/etc/config 
 +</code> 
 +* //Danke für den Hinweis an: Frank Kirschner// 
 + 
 +:!: **HINWEIS** - **Die zusätzlichen Parameter**  
 +<code> 
 +--register --accept-terms 
 +</code> 
 +**können bei weiteren Zertifikatserstellungen, weg gelassen werden!**
  
 <code> <code>
Zeile 479: Zeile 556:
   * **privaten Schlüssels**    * **privaten Schlüssels** 
   * **Zertifikast-Requests**   * **Zertifikast-Requests**
-  * **Zertifikats**+  * **Zertifikat**
   * **einfachen Zertifikatskette**   * **einfachen Zertifikatskette**
   * **vollständigen Zertifikatskette**   * **vollständigen Zertifikatskette**
Zeile 499: Zeile 576:
  
 :!: **HINWEIS** - Hier ist ebenfalls schön zu sehen, da jeweils **symbolische Links** erstellt wurden, was bei einer erneuten Generierung **__keine__** Konfiguration in den Web-Server Konfigurationsdateien nach sich zieht, da nur die symblischen Links angepasst werden! :!: **HINWEIS** - Hier ist ebenfalls schön zu sehen, da jeweils **symbolische Links** erstellt wurden, was bei einer erneuten Generierung **__keine__** Konfiguration in den Web-Server Konfigurationsdateien nach sich zieht, da nur die symblischen Links angepasst werden!
 +
 +===== Generierung =====
 +
 +Wie auch bei der Generierung des Zertifikas gegen die [[https://letsencrypt.org/|Let's Encrypt]]-Server, ist Vorgehensweise exakt die gleiche.
 +
 +:!: **WICHTIG** - Während der Einrichtung und **Test**-Phase, sollte **__nicht__ gegen die Produktiven Systeme** von [[https://letsencrypt.org/|Let's Encrypt]] getestet werden, da hier relativ rasch ein **Resourcen-Limit** von Anfragen in einer bestimmten Zeit greift. Erst wenn das Skript voll funktionsfähig und getestet ist und alle Konfigurationen entsprechend abgeschlossen sind, sollte hier dann das Produktive System von [[https://letsencrypt.org/|Let's Encrypt]] konfiguriert werden!
 +
 +Deshalb sollte in der Konfigurationsdatei
 +  * ''/opt/dehydrated-master/etc/config''
 +nachfolgende Einstellung **jetzt geändert werden, wenn die Test-Phase erfolgreich abgeschlossen ist!**
 +  * <code bash># Tachtler
 +# default: #CA="https://acme-v02.api.letsencrypt.org/directory"
 +CA="https://acme-v02.api.letsencrypt.org/directory"
 +# Tachtler - TESTING without LIMITATION - IMPORTANT !!!
 +#CA="https://acme-staging-v02.api.letsencrypt.org/directory"</code>
 +
 +<code>
 +# /opt/dehydrated-master/dehydrated -c --config /opt/dehydrated-master/etc/config
 +</code>
  
tachtler/let_s_encrypt.1474028264.txt.gz · Zuletzt geändert: 2016/09/16 14:17 von klaus