Seite 1 von 1

Apache Reverse Proxy: SSL Error: "Private key not found" (Letsencrypt)

Verfasst: Di 18. Jun 2019, 11:44
von broto2019
Hallo,

ich habe Apache als Reverse Proxy eingerichtet, um über eine Subdomain auf einen Dienst zuzugreifen. Über HTTP funktioniert das auch einwandfrei. Aber wenn ich die Konfiguration dann auf SSL umstelle, habe ich scheinbar ein Problem mit dem Private Key des Let'sEncrypt-Zertifikats.

Code: Alles auswählen

[Tue Jun 18 10:49:38.186387 2019] [ssl:error] [pid 29113:tid 140577418039360] AH02579: Init: Private key not found
[Tue Jun 18 10:49:38.186428 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Jun 18 10:49:38.186449 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Tue Jun 18 10:49:38.186462 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Jun 18 10:49:38.186475 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Tue Jun 18 10:49:38.186488 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Tue Jun 18 10:49:38.186500 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Jun 18 10:49:38.186540 2019] [ssl:error] [pid 29113:tid 140577418039360] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)
[Tue Jun 18 10:49:38.186562 2019] [ssl:emerg] [pid 29113:tid 140577418039360] AH02564: Failed to configure encrypted (?) private key subdomain.domain.de:443:1, check /etc/ssl/keyhelp/letsencrypt/nutzer/subdomain.domain.de/cert.pem
In der Apache-Konfiguration für die Subdomain (/etc/apache2/keyhelp/custom_vhosts/nutzer_subdomain.domain.de.conf) habe ich u.a. folgende Einstellungen angegeben:

Code: Alles auswählen

SSLEngine On
SSLCertificateFile "/etc/ssl/keyhelp/letsencrypt/nutzer/subdomain.domain.de/cert.pem"
SSLCertificateKeyFile "/etc/ssl/keyhelp/letsencrypt/nutzer/subdomain.domain/private.pem"
SSLCertificateChainFile "/etc/ssl/keyhelp/letsencrypt/nutzer/subdomain.domain/chain.pem"
Habe ich die PEM-Files falsch zugeordnet? In den Konfigurationsanweisungen der Software heißt die Zeile zum __SSLCertificateKeyFile__: SSLCertificateKeyFile /path/to/your/privkey.pem Aber LetsEncrypt erzeugt kein solches File.

Viele Grüße
Thomas

Re: Apache Reverse Proxy: SSL Error: "Private key not found" (Letsencrypt)

Verfasst: Mi 19. Jun 2019, 14:32
von Florian
Hallo,

also normalerweise sind solche Konstrukte nicht notwendig bei der Nutzung von mod_proxy. Der Apache terminiert das SSL und gibt intern dann die Anfrage an den Dienst weiter. Wichtig ist nur, dass man eine Ausnahme für Let's Encrypt definiert, z.B könnte das ganze dann so aussehen:

<IfModule mod_proxy.c>
ProxyPass /.well-known/acme-challenge !
</IfModule>

Alias /.well-known/acme-challenge /home/keyhelp/www/.well-known/acme-challenge

ProxyPass / http://127.0.0.1:8065/
ProxyPassReverse / http://127.0.0.1:8065/

Re: Apache Reverse Proxy: SSL Error: "Private key not found" (Letsencrypt)

Verfasst: Mi 19. Jun 2019, 15:27
von broto2019
Vielen Dank für den Hinweis. Ja, bei Mattermost (ebenfalls über Port 8065) sieht meine Konfiguration ähnlich aus. Aber bei der genannten Konfiguration geht es um Confluence. Da habe ich mich an die Hinweise von Atlassian (s. https://confluence.atlassian.com/kb/sec ... 84349.html) und Foreneinträgen bei Atlassian gehalten (bei denen die Konfiguration ähnlich aussieht). Ob das so mit mod.proxy geeignet ist, kann ich nicht wirklich einschätzen. Mir ist nicht klar, wie das Zusammenspiel mit dem Tomcat abläuft.

Re: Apache Reverse Proxy: SSL Error: "Private key not found" (Letsencrypt)

Verfasst: Mi 19. Jun 2019, 16:04
von Florian
Hallo,

eine funktionierende Konfig würde bei Atlassian würde es z.B so aussehen:

<IfModule mod_proxy.c>
ProxyPass /.well-known/acme-challenge !
</IfModule>

Alias /.well-known/acme-challenge /home/keyhelp/www/.well-known/acme-challenge

ProxyRequests Off
ProxyPreserveHost On

# RewriteEngine On
# RewriteCond %{REQUEST_URI} !^/synchrony
# RewriteRule ^/(.*) http://127.0.0.1:8090/$1


<Proxy *>
Require all granted
</Proxy>

ProxyPass /synchrony http://127.0.0.1:8091/synchrony

<Location /synchrony>
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$
RewriteCond %{HTTP:CONNECTION} Upgrade$
RewriteRule .* ws://127.0.0.1:8091%{REQUEST_URI}


</Location>


ProxyPass / http://127.0.0.1:8090/
ProxyPassReverse / http://127.0.0.1:8090/




Die Zeilen:

# RewriteEngine On
# RewriteCond %{REQUEST_URI} !^/synchrony
# RewriteRule ^/(.*) http://127.0.0.1:8090/$1



müssen kommentiert sein, ansonsten funktioniert Let's Encrypt nicht. Wenn Sie Synchrony nutzen, entfernen Sie die Kommentarzeichen, Sie müssen diese dann aber bei Erneuerung des Let's Encrypt temporär wieder setzen. Hier kann man sicher aber auch noch Ausnahmen für let's Encrypt einpflegen, nur habe ich mich damit noch nicht beschäftigt

Re: Apache Reverse Proxy: SSL Error: "Private key not found" (Letsencrypt)

Verfasst: Mi 19. Jun 2019, 17:10
von broto2019
Vielen Dank. Das funktioniert so, um mit Confluence zu arbeiten. Aber kann es sein, dass die von Atlassian vorgeschlagene Konfiguration (mit den PEM-Dateien) den Hintergrund hat, dass sie Confluence befähigt selbst auch gesicherte Verbindungen nach außen aufzunehmen? Denn Marketplace, Aktualisierungs-Check, etc. funktionieren mit der von Ihnen vorgeschlagenen Konfiguration leider nicht.

Re: Apache Reverse Proxy: SSL Error: "Private key not found" (Letsencrypt)

Verfasst: Do 20. Jun 2019, 17:38
von Florian
Hallo,

so genau kenne ich Confluence nicht. Aber wenn es in der Lage sein soll sichere Verbindungen aufzunehmen muss diese Konfiguration ja in der Software vorgenommen werden. Die Einträge der Zertifikate in der /etc/apache2/keyhelp/custom_vhosts/nutzer_subdomain.domain.de.conf sind dafür unnötig, denn die betreffen ja nur den Apache und sind außerdem eh schon durch die SSL Konfiguration der Domain aktiv.