Jump to content

IIS: Root-Zertifikat mitsenden?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

 

Auf einem IIS auf Windows Server 2019 läuft eine Webanwendung mit gekauftem Zertifikat. Dieses ist wie üblich von einer Zwischenzertifizierungsstelle signiert, deren Zertifikat wiederum von der Root-CA signiert ist. Im Browser funktioniert alles bestens und SSL Labs ist zufrieden.

 

Der IIS sendet das Zertifikat sowie das Zertifikat der Zwischenzertifizierungsstelle mit, nicht aber das Root-Zertifikat. Was laut Standard erlaubt und auch sinnvoll ist, denn der Client muss das Root-Zertifikat ja selbst haben. (Laut Standard darf der Webserver das Root-Zertifikat mitliefern, muss aber nicht.)

 

Leider verlangen die angeschlossenen Zeiterfassungs-Terminals eine vollständige Zertifikatskette. Dazu ist zu erwähnen, dass die Software normalerweise auf einem vom Hersteller gelieferten Webserver läuft, der die ganze Kette ausliefert. Anscheinend liefern andere Webserver wie Nginx einfach alle Zertifikate aus, die man ihnen als Kette angibt.

 

Kann man den IIS dazu bringen, auch das Root-Zertifikat mitzusenden? Ich habe Anleitungen gefunden, laut deren man die automatische Aktualisierung der Root-Zertifikate deaktivieren und das entsprechende Zertifikat dann zu den Zwischenzertifizierungsstellen verschieben soll. Das funktioniert insofern, als beim Zertifikat danach keine vollständige Kette mehr angezeigt wird und der IIS beim Zuweisen der Bindung reklamiert. Aber er liefert das als Zwischenzertifikat getarnte Root-Zertifikat trotzdem nicht aus.

Link zu diesem Kommentar

Moin,

 

die Dokumentation geht davon aus, dass Root nicht mitgeschickt wird: https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/www-authentication-authorization/configure-intermediate-certificates

image.png.14d3da619911f69df1b0cd1c7eb27ce8.png

 

Das Root-Zertifikat in den Intermediate-Store zu verschieben, ist sicher nicht zielführend. Du kannst aber probieren, es dorthin zu *kopieren*. Vielleicht hilft es.

Link zu diesem Kommentar

Das Verhalten ist aber am Ende auch „falsch“, deswegen wirds ja bei diversen ssl checks auch als Problem angemeckert. Wozu soll ich die Root denn geliefert bekommen? Wenn ich ihr nicht vertraue hilft das Nix und wenn ich sowieso allem vertraue, dann brauch ich die ja nicht unbedingt. Im intermediate sollte ja die ausstellende Stelle mit drin stehen ;)

 

was ich sagen will: frag doch mal bei denen an, warum die das nicht konform regeln können, oder einfach nen „egal-Haken“ einbauen. 

bearbeitet von NorbertFe
Link zu diesem Kommentar

Vielen Dank für eure Antworten! Das Root-Zertifikat zu den Zwischenzertifikaten zu kopieren, hat leider nicht geholfen.

 

Es scheint, als liefen die Terminals mit einem Uralt-Android und entweder hatte jemand die famose Idee, dem vom Webserver gesendeten Root-Zertifikat zu vertrauen oder sie haben die Krypto selbst implementiert und vergleichen das vom Server gelieferte Root-Zertifikat mit dem in ihrem Store oder so... Auf jeden Fall will man noch einmal mit den Entwicklern sprechen, nachdem ich aus RFC 5246 zitiert habe:

 

certificate_list
      This is a sequence (chain) of certificates.  The sender's
      certificate MUST come first in the list.  Each following
      certificate MUST directly certify the one preceding it.  Because
      certificate validation requires that root keys be distributed
      independently, the self-signed certificate that specifies the root
      certificate authority MAY be omitted from the chain, under the
      assumption that the remote end must already possess it in order to
      validate it in any case.

 

Link zu diesem Kommentar
vor 2 Stunden schrieb tesso:

Das Root Zertifikat gehört nicht in die Zwischenzertifikate, sondern zu den vertrauenswürdigen Stammzertifikaten.

Bei den Stammzertifikaten ist es schon. Es war der Versuch, den IIS dazu zu bringen, es als Teil der Kette an die Clients auszuliefern. Ich habe Berichte von Leuten gefunden, bei denen das funktioniert hat, allerdings waren das ältere Versionen vom IIS.

Link zu diesem Kommentar

Man kann zwar die Root-Zertifikate mit senden, die müssen dann aber trotzdem beim Endgerät in den richtigen Cert-Store importiert werden, damit man denen vertrauen kann.

Und ja, für Root und Intermediate gibt es eigentlich 2 Stores, Java z.B. sieht das aber oft nicht so. Java, zumindest alte Versionen, wollen die teilweise im gleichen Store.

Falls sich der Keystore bei dem Endgerät in Dateiform editieren lässt, empfehle ich https://keystore-explorer.org/downloads.html 

Das Tool kommt mit sehr vielen Formaten zurecht. OpenSSL ist mir zu anstrengend... 

 

PS: Und aus eigener Erfahrung: Entwickler wollen sie oft nicht mit Basics (hier: SSL) beschäftigen. Self Signed Zertifikate sind dann eben doch etwas anders. Die muss man aber auch in den Truststore importieren. 

bearbeitet von zahni
Link zu diesem Kommentar

Habe die Rückmeldung bekommen: Das Problem lag an einer falschen Konfiguration der Software. Auf die Idee mit der Zertifikatskette ist man gekommen, weil man den Qualys SSL Server Test gemacht hat bei meinem Kunden und bei einem anderen Kunden, bei dem es funktioniert. Und das fehlende Root-Zertifikat war der einzige Unterschied. Eine Recherche im Internet hat dann ergeben, dass Android "manchmal Probleme mit Root-Zertifkaten hat".

 

Also eine Kombination aus Unkenntnis und hoher Selbstsicherheit. Kennen manche von uns vielleicht von ihren jungen Jahren.:-)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...