looser27
Goto Top

Nginx - jitsi meet und eigene CA

Guten Tag,

ich habe gerade ein Problem und sehe den Wald vor lauter Bäumen nicht mehr.

Ausgangslage:
"mal eben fix nen Jitsi-Server aufsetzen für interne Videokonferenzen" (der Server darf nicht von extern erreichbar sein)

Wir nutzen eine interne Windows-CA für diverse Webseiten und Makro-Zertifizierungen.

Jetzt stelle ich gem. Anleitung eine Cert-Request samt neuem Key-File unter Ubuntu.
Den Cert-Request lade ich über die CA-Webseite hoch und kann mein Zertifikat herunterladen.
Da nginx aber auch noch die CA kennen will, das CA-Zertifikat gleich mit runter geladen.

Alles gem. Anleitung gebundelt und in den conf.-File von der Webseite eingetragen.

Wenn ich den Browser öffne, wird mir trotzdem ein Zertifikat-Fehler angezeigt.
Gehe ich auf die Zertifikate im Browser, so werden alle als gültig angezeigt.

Das CA-Zertifikat ist allen Clients bekannt (es funktioniert ja auch bei anderen Webseiten).
Nach meinem Verständnis sollte es somit nicht mehr zu einer Fehlermeldung kommen.

Ich komme irgendwie gerade nicht weiter und brauche mal nen Denkanstoß.

Gruß

Looser

Content-Key: 642572

Url: https://administrator.de/contentid/642572

Printed on: April 24, 2024 at 19:04 o'clock

Member: SpielfoxLP
SpielfoxLP Jan 20, 2021 at 11:52:48 (UTC)
Goto Top
Wie ist das CA ausgestellt ?
Member: rana-mp
rana-mp Jan 20, 2021 at 12:27:15 (UTC)
Goto Top
Welche Browser?
Welche Fehlermeldung?

Gerne vergessen wird, dass in aktuellen Browsern ein Common Name alleine nicht mehr reicht, sondern auch als Subject Alternative Name im Zertifikat stehen muss.
Soweit ich weiss wird Chrome auch bald anfangen, Zertifikate deren Gueltigkeit zu lang ist nicht mehr zu akzeptieren.
Member: Looser27
Looser27 Jan 20, 2021 at 12:33:10 (UTC)
Goto Top
Alle Browser und er meckert, dass der Common Name nicht stimmen würde. Laut Zertifikat stimmt der aber.
Member: rana-mp
Solution rana-mp Jan 20, 2021 at 12:47:34 (UTC)
Goto Top
Hat das Zertifikat einen Subject Alternative Name?
Der ist zumindest im Chrome Pflicht. Und ja, die Fehlermedung ist bei fehlendem, bzw falschen SAN leider auch "Common Name Invalid"

Wenn du einen (oder mehrere) SAN drin hast, passt der auch? Oft passierts das nur der FQDN drinsteht, man aber nur den Hostnamen verwendet im Browser, oder umgekehrt.
Ich halte es bei internen Systemen gerne so das ich den Hostnamen, den FQDN und ggf. die IP alle als SAN drin stehen habe.
Member: Looser27
Looser27 Jan 20, 2021 at 12:53:58 (UTC)
Goto Top
Zitat von @rana-mp:

Hat das Zertifikat einen Subject Alternative Name?
Der ist zumindest im Chrome Pflicht. Und ja, die Fehlermedung ist bei fehlendem, bzw falschen SAN leider auch "Common Name Invalid"

Wenn du einen (oder mehrere) SAN drin hast, passt der auch? Oft passierts das nur der FQDN drinsteht, man aber nur den Hostnamen verwendet im Browser, oder umgekehrt.
Ich halte es bei internen Systemen gerne so das ich den Hostnamen, den FQDN und ggf. die IP alle als SAN drin stehen habe.

Es scheint am fehlenden SAN zu liegen.

Ich google mir schon die Finger wund......hast Du zufällig ein Beispiel an dem ich mich langhangeln kann?
Member: rana-mp
rana-mp Jan 20, 2021 at 13:16:15 (UTC)
Goto Top
Puh, so leider nicht. Der Kollege der mir die Zertifikate erstellt ist auch leider aktuell nicht verfuegbar.
Ich weiss aber das es geht, auch bei CSRs wo keine SANs spezifiziert sind kann man nachtraeglich welche eintragen, so dass das Zertifikat die anschliessend drin stehen hat.
Member: Looser27
Looser27 Jan 20, 2021 at 13:32:23 (UTC)
Goto Top
Der vollständigkeit halber noch die fehlende Fehlermeldung:

NET::ERR_CERT_COMMON_NAME_INVALID
Member: LordGurke
Solution LordGurke Jan 20, 2021 at 21:02:41 (UTC)
Goto Top
Keine Ahnung, ob die OpenSSL-Version unter Ubuntu das schon kann — wenn ja, kannst du bei Erstellung des CSR diesen Parameter mitgeben:

openssl req -new [...] -addext "subjectAltName = DNS:das.was.im.cn.stand" -out req.pem  
Member: Looser27
Looser27 Jan 26, 2021 updated at 12:06:41 (UTC)
Goto Top
Der Vollständigkeit halber:
Private Key erzeugen:

openssl genrsa -out private.key 2048

Anlegen einer Datei req.conf

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = DE
ST =
L = Stadt
O = Firma
OU =
CN = FQDN der Webseite
[v3_req]
#keyUsage = keyEncipherment, dataEncipherment
#extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = FQDN der Webseite

Zertifikatsanforderung erstellen:

openssl req -new -key private.key -sha256 -nodes -config req.conf -out certificate.csr