Erneuerung Letsencrypt Zertifikat nicht möglich

letsencrypt
ucs-4-3

#1

Hallo Forum,
ich schaffe es einfach nicht, den UCS (4.3-0 errata89 (Neustadt)) zur Erneuerung des Letsencrypt-Zertifikates zu überreden.
Fehlermeldung:

ValueError: Challenge did not pass for mmn-buero.de: {u'status': u'invalid', u'challenges': [{u'status': u'invalid', u'url': u'https://acme-v02.api.letsencrypt.org/acme/challenge/tMMbesw3vtelCBGs4nXpZ3bJ4xhOUwmq2s5Tu1wTbzk/4953221617', u'token': u'DfCtlawXuTsUAASoDyUgIOif2DEGxp6UMHt1rPERe2g', u'type': u'tls-sni-01'}, {u'status': u'invalid', u'url': u'https://acme-v02.api.letsencrypt.org/acme/challenge/tMMbesw3vtelCBGs4nXpZ3bJ4xhOUwmq2s5Tu1wTbzk/4953221618', u'token': u'nxZobHw2S2CWS2Di6KQFQaIi0oF58mHi3yFqqQx1a0o', u'type': u'dns-01'}, {u'status': u'invalid', u'validationRecord': [{u'url': u'http://mmn-buero.de/.well-known/acme-challenge/9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM', u'hostname': u'mmn-buero.de', u'addressUsed': u'80.153.200.212', u'port': u'80', u'addressesResolved': [u'80.153.200.212']}], u'url': u'https://acme-v02.api.letsencrypt.org/acme/challenge/tMMbesw3vtelCBGs4nXpZ3bJ4xhOUwmq2s5Tu1wTbzk/4953221619', u'token': u'9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM', u'error': {u'status': 403, u'type': u'urn:ietf:params:acme:error:unauthorized', u'detail': u'Invalid response from http://mmn-buero.de/.well-known/acme-challenge/9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM: "\n\n\n\n
Forbidden

Die Zertifikatsspeicherung schlägt vermutlich fehl, weil der Server von extern nur über HTTPS erreichbar ist was wegen abgelaufenem Zertifikat nicht funktioniert. Alle HTTP Aufrufe werden auf HTTPS redirected obwohl ich die ucs Variablen entsprechend gesetzt habe. 2018-06-04%2013_10_45
Ich bitte um Hilfe!

Wolfgang


#2

Huhu,

Forbidden klingt nicht nach einem Problem mit der Umleitung von HTTP zu HTTPS, sondern eher nach einem Berechtigungsproblem — entweder in den Dateirechten oder in der Apache-Konfiguration.

Was gibt denn curl -v http://mmn-buero.de/.well-known/acme-challenge/9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM aus? Und was steht im Apache-access.log und -error.log für den Zeitpunkt?

Gruß
mosu


#3

Hier die Curl-Ausgabe aus dem internen Netz:

root@mmnucs:/etc/apache2# curl -v http://mmn-buero.de/.well-known/acme-challenge/9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM
*   Trying 192.168.2.8...
* TCP_NODELAY set
* Connected to mmn-buero.de (192.168.2.8) port 80 (#0)
> GET /.well-known/acme-challenge/9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM HTTP/1.1
> Host: mmn-buero.de
> User-Agent: curl/7.52.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Mon, 04 Jun 2018 13:06:56 GMT
< Server: Apache/2.4.25 (Univention)
< Last-Modified: Mon, 04 Jun 2018 10:51:53 GMT
< ETag: "57-56dceb8b53417"
< Accept-Ranges: bytes
< Content-Length: 87
<
* Curl_http_done: called premature == 0
* Connection #0 to host mmn-buero.de left intact
9aZg7HEq_JyEnOnKn0fw0xrwDEUvTvx21owF6m_7MoM.yIqEqvodkYLwWXLZkF7_lj_W_2o7TmbWckXXWK8Y7-Yroot@mmnucs:/etc/apache2#

und der Eintrag aus apache2 Error Log

[Mon Jun 04 15:12:58.019855 2018] [authz_core:error] [pid 27101] [client 66.133.109.36:35896] AH01630: client denied by server configuration: /var/www/.well-known/acme-challenge/BXpNA3V9p05c6wpjYYyRYA9xPcspo06GEOgyhcauWMM

und aus der apache2 Access-Log

Blockquote
66.133.109.36 - - [04/Jun/2018:15:20:24 +0200] “GET /.well-known/acme-challenge/bhfpdIe3CSeDpU4HF8Pi6qHGMdVgfTuU0-CFxNh9ROA HTTP/1.1” 403 545 “-” “Mozilla/5.0 (compatible; Let’s Encrypt validation server; +https://www.letsencrypt.org)”


#4

Huhu,

der curl-Aufruf zeigt, dass der Zugriff funktioniert. Das passt aber nur begrenzt mit der Logdatei zusammen, denn dort steht, dass die Apache-Server-Konfiguration den Zugriff gerade nicht zulässt.

Offensichtlicher Unterschied zwischen beiden Szenarien: im curl-Test kommt die Anfrage von einer internen IP, bei Let’s Encrypt von einer externen IP. Haben Sie irgendwo in der Apache-Konfiguration Zugriffe anhand der Quell-IP eingeschränkt?

Gruß
mosu


#5

Nein ich habe manuell gar nichts geändert. Resultiert alles aus der Installation über das App-Center.
Die Variable hosts/static/80.153.200.212 mmnucs.IBMMN.local wurde gesetzt. wegen Zugang über NAT

Habe jetzt curl-befehl von extern ausgeführt und erhalte die “403 forbidden” Fehlermeldung und "You dont have permission to access /.well-known/acme- …
Habe daraufhin den Besitzer von .well-known auf www-data geändert und die Zugriffsrechte auf 755.
Leider das gleiche Ergebnis.


#6

Huhu,

Was genau wollen Sie mit »von extern nur über HTTPS erreichbar« sagen? Gibt es nur für Port 443 ein Portforwarding zum internen Server? Gibt es Firewallregeln, die Zugriff auf Port 80 verhindern? Wie genau haben Sie erzwungen, dass der Zugriff nur via HTTPS geht?

Hängt da noch ein Reverse-Proxy oder eine HTTP-scannende Firewall oder sonst irgend eine Art von Gerät zwischen dem Internet und dem UCS-Server, das Verbindungen auf Port 80 irgendwie behandelt?

Das passt nicht zum Screenshot. Der zeigt, dass die Variable apache2/force_https leer ist und damit keine erzwungene Umleitung von HTTP zu HTTPS vorgenommen wird — zumindest nicht von den Univention-eigenen Mechanismen.

Bitte stellen Sie sicher, dass Sie die Orignal-Univention-Templates für Apache verwenden. Der folgende Befehl sollte nichts ausgeben: univention-check-templates

Ich kann das Problem hier auch nicht reproduzieren, weder wenn apache2/force_https nicht gesetzt ist, noch wenn es gesetzt ist.

Können Sie bitte mal alle Konfigurationsdateien aus /etc/apache2/conf-enabled, …/sites-enabled und …/ucs-sites.conf.d posten?

Gruß
mosu