Zertifikatfehler! nach Update auf 19.18 (eigenes Zertifikat)

Hallo,

nach dem Update einer OnSite-pascom 19.16 auf 19.18 wird ein (vermeintlicher) Zertifikatfehler auf dem öffentlichen Interface angezeigt. Es wird ein eigenes Zertifikat verwendet.

Das von der pascom auf dem Interface bereitgestellte Zertifikat ist aber korrekt - und nicht ein selbst signiertes wie in der Meldung genannt.

Gruß,
Rapha

Update-Referenz:

ich habe ebenfalls das Update von 19.16 → 19.18 installiert und die gleiche Meldung. Ich weiß nicht ob die Info relevant ist: Ich habe am Zertifikat noch nie etwas konfiguriert oder geändert da die LE-Zertifikate von der davor liegenden pfSense vorgehalten werden (HAProxy & acme).

Habe die selbe Konfiguration, bisher auch noch keine Probleme mit der 19.18 - habe das LE Zertifikat bei der pascom auf dem Interface eingetragen (key und fullchain).

Nach dem Reboot der pascom findet sich dies im Log des certmanagers:

Sep 18 12:41:09 ifens224 systemd[1]: Starting Manage certificate...
Sep 18 12:41:09 ifens224 certmanager[406]: Managing certificate [meinedomain.com]
Sep 18 12:41:09 ifens224 certmanager[406]: Manage user provided certifcate
Sep 18 12:41:09 ifens224 certmanager[406]: /etc/ssl/certs/cs-tls-cert.pem: OK
Sep 18 12:41:09 ifens224 certmanager[406]: Certificate seems to be ok
Sep 18 12:41:09 ifens224 certmanager[406]: /etc/ssl/certs/cs-tls-cert.pem: OK
Sep 18 12:41:09 ifens224 certmanager[406]: Certificate seems to be ok
Sep 18 12:41:09 ifens224 certmanager[406]: Certificate has changes, reloading services
Sep 18 12:41:09 ifens224 certmanager[406]: Reloading slapd
Sep 18 12:41:09 ifens224 certmanager[406]: Done
Sep 18 12:41:09 ifens224 systemd[1]: Started Manage certificate.

Sieht für mich OK aus :slight_smile: - die Meldung im UI bleibt.

Gruß,
Rapha

@rapha Kannst Du mir kurz sagen wie man das einträgt oder hast eventuel einen Screenshot für mich? Ich habe die ganzen Zertifikate damals alle auf der pfSense eingerichtet aber sonst keine Erfahrung damit :frowning:

Im pascom Server am Interface auf “Edit”, dann die Auswahl “eigenes Zertifikat”.
PEM ist der öffentliche Teil des Zertifikats, hier am besten die Fullchain eintragen (also das LE-Zertifikat mit Zwischenzertifizierungsstellenzertifikaten). Das findest du auf der pfsense unter /conf/acme/...fullchain.

Den Key (privater Teil) findest du an der selben Stelle auf der pfsense, Endung ist dann logischerweise .key

Am pascom Interface dann speichern und schon sollte es passen. Der HAproxy braucht das Zertifikat aber trotzdem.

Leider wird das Zertifikat auf der pascom so natürlich nicht automatisch aktualisiert - man muss alle drei monate Hand anlegen und den PEM hineinkopieren (der Key ändert sich nicht).

Gruß,
Rapha

Hallo zusammen,

danke für den Hinweis. Wir untersuchen das noch näher.

Besten Gruß
Sebastian

@rapha Danke für die Info. Da es (scheinbar) keine Auswirkung hat warte ich mal mit dem eintragen. Die Meldung war ja vorher auch nicht da.

Moin,

noch ein Hinweis zu diesem Problem. Das eigene Zertifikat wird auf den Webserver (Port 443) übernommen, aber nicht auf den Port 8884 für die Provisionierung und auch nicht auf Port 5061 für SIP. Dort liegen nachwievor ein (ur-) altes Zertifikat mit unserer IP-Adresse anstatt dem eigenen (Let’s Encrypt und Hostnamen).

Erst nach einem Neustart der pascom und vmtl. einer Re-Provisionierung der externen Geräte können diese nicht mehr verbinden bzw. melden ein ungültiges Zertifikat (hostname mismatch).

Oct 04 09:01:54 ifens224 /usr/sbin/kamailio[636]: ERROR: tls [tls_server.c:1283]: tls_h_read_f(): protocol level error
Oct 04 09:01:54 ifens224 /usr/sbin/kamailio[636]: ERROR: tls [tls_util.h:42]: tls_err_ret(): TLS accept:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate
Oct 04 09:01:54 ifens224 /usr/sbin/kamailio[636]: ERROR: tls [tls_server.c:1287]: tls_h_read_f(): source IP: 91.249.xx.xx
Oct 04 09:01:54 ifens224 /usr/sbin/kamailio[636]: ERROR: tls [tls_server.c:1290]: tls_h_read_f(): destination IP: 10.10.xx.xx
Oct 04 09:01:54 ifens224 /usr/sbin/kamailio[636]: ERROR: <core> [core/tcp_read.c:1501]: tcp_read_req(): ERROR: tcp_read_req: error reading - c: 0x7f49ecac1ea8 r: 0x7f49ecac1fd0 (-1)

Edit: Das eigene Zertifikat wird garnicht übernommen, auf keinen der Dienste. (Fälschlicherweise hat der HA-Proxy natürlich das korrekte Zertifikat gemeldet).
Daher ist die Meldung im UI korrekt - das Zertifikat konnte nicht übernommen werden.

Gruß,
Rapha

Workaround:

  • Login per SSH auf die pascom
  • lxc-attach auf das Interface (ifens…)
  • /etc/ssl/private/cs-tls-cert.key mit dem eigenen Schlüssel ersetzen löschen?
  • /etc/ssl/certs/cs-tls-cert.pem mit dem eigenen Zertifikat ersetzen löschen?
  • pascom neustarten (nicht nur das Interface)

Edit: Das Self-Signed-Zertifikat wurde beim Neustart erneuert und der Hostname stimmt nun wieder mit dem FQDN am Interface überein. Auch wenn hier nicht das eigene Zertifikat übernommen wird sind Verbindungen wieder möglich - die externen Geräte müssen das Zertifikat dann noch akzeptieren.

Gruß,
Rapha

Moin @Sebastian_F

gibt es neue Erkenntnisse?

Beim letzten Zertifikattausch gibt es auch im certmanager fehler. Das Zertifikat wurde (manuell) über Let’s Encrypt ausgestellt.

Es spielt keine Rolle ob der PEM nur das “eigene” Zertifikat enthält oder die fullchain (also mit LE R3 und X1).

Bei dem fullchain Zertifikat ist die Reihenfolge korrekt, erst das “eigene”, dann Intermediate R3 gefolgt von Root X1 (also bottom-up).

certmanager[408]: Managing certificate [mobile.domain.com]
certmanager[408]: Manage user provided certifcate
certmanager[408]: CN = mobile.domain.com
certmanager[408]: error 20 at 0 depth lookup: unable to get local issuer certificate
certmanager[408]: error /etc/ssl/certs/cs-tls-cert.pem: verification failed
certmanager[408]: Falling back to self signed because something is wrong with provided certificate

Wenn nur das “eigene” und Intermediate R3 angegeben wird passt der private key angeblich nicht.
Edit: Mein Fehler - es war tatsächlich das falsche Zertifikat :blush:
Wen nur das Intermediate und “eigene” im PEM angegeben wird funktioniert es korrekt!

certmanager[419]: Managing certificate [mobile.domain.com]
certmanager[419]: Manage user provided certifcate
certmanager[419]: /etc/ssl/certs/cs-tls-cert.pem: OK
certmanager[419]: Certificate seems to be ok
certmanager[419]: /etc/ssl/certs/cs-tls-cert.pem: OK
certmanager[419]: Certificate seems to be ok
certmanager[419]: Certificate has changes, reloading services
certmanager[419]: Reloading slapd

Edit2: Die Meldung im UI bleibt aber bestehen - warte da aber nochmal einen Neustart ab.

Danke und Gruß,
Rapha