Fragensteller
RDS - Es konnte keine Sperrprüfung für das Zertifikat durchgeführt werden.

Allgemeine Diskussion
-
Wir haben eine Serverlandschaft von 2008 R2 auf 2012 R2 umzuziehen.
U.a. gibt es auch eine neue RDS-Farm, welche via AD interner Zertifizierungsstelle mit
einem WildCard Zertifikat versorgt ist.
Konfiguriert ist via GPO Single Sign On, das WildCard ist auf den RDS Hosts installiert, an die
RDS Dienste gebunden, die RDP Datei signiert und der AD CA Server als vertrauenswürdiger
Herausgeber via GPO im Netz bekannt.
Die Clients (W7) verbinden sich innerhalb der Domäne mit der RDS-Farm.
Die Anmeldung funktionierte auch ohne jegliches Hinweisfenster zur RDS-Farm.
Am letzten Wochenende wurde als nächste zu migrierende Funktion die AD CA umgezogen.
Alter Server:
- CA gesichert
- CA Root Austellerzertifikat gesichert
- Regkey mit der Config exportiert, der CAServer Name auf den neuen Server geändert
- CA deinstalliert
Neuer Server:
- CA Rolle installiert,
- Zertifikat importiert
- Regkey importiert
- CA Rücksicherung
- Rechte via ADSI der neuen Container CDP und AIA auf Vollzugriff des neuen Server geprüft
- CA Dienstneustart
Alle Zertifikate wieder da.
Leider funktioniert seitdem das SSO auf die RDS-Farm nicht mehr.
"Es konnte keine Sperrprüfung für das Zertifikat durchgeführt werden."
Wenn man den Dialog, ob man trotz Zertifikatsfehler verbinden möchte, mit Ja bestätigt,
wiederholt sich der Dialog. Bestätige ich erneut mit Ja, wird per SSO ohne weiteres angemeldet.
Bei der nächsten Anmeldung an der RDS-Farm wiederholt sich das Spiel.
Im ersten Schritt dachte ich, es liegt daran, dass die CRL ja noch auf den alten Server zeigen.
Korrigiert mich, aber das ist wohl Quatsch, da dort ja nur Variablen im Pfad verwendet werden.
Ich habe daher am Anfang dann ein neues Wildcard erzeugt und nach bekannten und ursprünglichen Procedere
erneut verteilt. Mit dem gleichen Ergebnis.
Im Zertifikat wurden nur LDAP Pfade hinterlegt, was m.W. innerhalb der AD auch kein Problem sein sollte und
vor dem CA Umzug auch keines war.
Habe dennoch in den Erweiterungen in der CA die Haken gesetzt, dass auch Http Pfade angelegt werden sollen und
nun mittlerweile ein 3. Zertifikat erzeugt und verteilt.
Der Fehler bleibt. Ein Abruf der CRL über den hinterlegten Http Pfad ist aber ohne Probleme möglich.
Die angezeigte Zertifikatskette vom Client aus ist gültig.
Was kann ich tun?Gruß
Dirk
- Typ geändert Mihaela ParedesMicrosoft contingent staff, Moderator Montag, 31. Juli 2017 10:37 Wegen keiner weiteren Aktivitäten verschiebe ich das Thema als Diskussion
Alle Antworten
-
Im ersten Schritt dachte ich, es liegt daran, dass die CRL ja noch auf den alten Server zeigen.
Korrigiert mich, aber das ist wohl Quatsch, da dort ja nur Variablen im Pfad verwendet werden.Fühle Dich korrigiert ;-)
In der Konfiguration der CA stehen Platzhalter in den Pfaden, bei der Ausstellung der Zertifikate werden sie natürlich durch Werte ersetzt. Sonst bräuchte der Client bei der Validierung ja Zusatzinformationen.
Kannst ja mal den Trust mit viel Output prüfen lassen (certutil -f -urlfetch -verify <Pfad zur .cer>), vielleicht fällt Dir da was auf.
Welchen Vertraulichkeitsstatus zeigt denn Deine Farm? (Get-RDCertificate | Select Role, Level)?
Du könntest versuchen statt einem Wildcard ein Zert zu verwenden, der auf den LoadBalancing-Namen Deiner Connection Broker ausgestellt ist.
Und, last but not least, must Du natürlich den Thumbprint des als RDPublishing eingestellten Zertifikates auch an die Clients als "vertrauenswürdigen Signierer" per GPO verteilen.
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Ok. ich kann wohl kaum verbergen, dass ich im Thema AD CA nicht sonderlich tief drin bin. :-)
Danke.
Der Output vom urlfetch:
Aussteller:
CN=XXXXXXXXX - interne Zertifizierungsstelle
DC=XXXXXXXXX
DC=local
Antragsteller:
CN=*.XXXXXXXXX.local
OU=IT
O=XXXXXXXXX e.V.
L=XXXXXXXX
S=NRW
C=DE
Zertifikatseriennummer: 29000000238400195b4e942e55000100000023
dwFlags = CA_VERIFY_FLAGS_ALLOW_UNTRUSTED_ROOT (0x1)
dwFlags = CA_VERIFY_FLAGS_IGNORE_OFFLINE (0x2)
dwFlags = CA_VERIFY_FLAGS_FULL_CHAIN_REVOCATION (0x8)
dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000)
dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000)
ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN (0x20000000)
HCCE_LOCAL_MACHINE
CERT_CHAIN_POLICY_BASE
-------- CERT_CHAIN_CONTEXT --------
ChainContext.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
SimpleChain.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
CertContext[0][0]: dwInfoStatus=102 dwErrorStatus=0
Issuer: CN=XXXXXXXXX - interne Zertifizierungsstelle, DC=XXXXXXXXX, DC=local
NotBefore: 26.06.2017 22:17
NotAfter: 26.06.2019 22:17
Subject: CN=*.XXXXXXXXX.local, OU=IT, O=XXXXXXXXX e.V., L=XXXXXXXX, S=NRW, C=DE
Serial: 29000000238400195b4e942e55000100000023
Template: WebServer
c8 26 30 31 55 7c d2 ae a6 08 d4 9f 84 52 b8 4b fb 60 e5 f6
Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2)
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
---------------- Zertifikat abrufen ----------------
Überprüft "Zertifikat (0)" Zeit: 0
[0.0] ldap:///CN=XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle,CN=AIA,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=XXXXXXXXX,DC=local?cACertificate?base?objectClass=certificationAuthority
Überprüft "Zertifikat (1)" Zeit: 0
[0.1] ldap:///CN=XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle,CN=AIA,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=XXXXXXXXX,DC=local?cACertificate?base?objectClass=certificationAuthority
---------------- Zertifikat abrufen ----------------
Überprüft "Basissperrliste (07c3)" Zeit: 0
[0.0] ldap:///CN=XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle,CN=XXXXX-SRV-0021,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=XXXXXXXXX,DC=local?certificateRevocationList?base?objectClass=cRLDistributionPoint
Überprüft "Deltasperrliste (07c3)" Zeit: 0
[0.0.0] ldap:///CN=XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle,CN=XXXXX-SRV-0021,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=XXXXXXXXX,DC=local?deltaRevocationList?base?objectClass=cRLDistributionPoint
Überprüft "Basissperrliste (07c3)" Zeit: 0
[1.0] http://XXXXX-SRV-0021.XXXXXXXXX.local/CertEnroll/XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle.crl
Überprüft "Deltasperrliste (07c3)" Zeit: 0
[1.0.0] ldap:///CN=XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle,CN=XXXXX-SRV-0021,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=XXXXXXXXX,DC=local?deltaRevocationList?base?objectClass=cRLDistributionPoint
---------------- Basissperrliste veraltet ----------------
OK "Deltasperrliste (07c5)" Zeit: 0
[0.0] ldap:///CN=XXXXXXXXX%20um%20XXXXXXXXX%20-%20interne%20Zertifizierungsstelle,CN=XXXXX-SRV-0021,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=XXXXXXXXX,DC=local?deltaRevocationList?base?objectClass=cRLDistributionPoint
---------------- Zertifikat-OCSP ----------------
Keine URLs "Keine" Zeit: 0
--------------------------------
CRL 07c3:
Issuer: CN=XXXXXXXXX - interne Zertifizierungsstelle, DC=XXXXXXXXX, DC=local
62 d7 62 a7 59 65 10 05 45 3e 84 7e 10 32 30 bd c3 29 8b 18
Delta CRL 07c5:
Issuer: CN=XXXXXXXXX - interne Zertifizierungsstelle, DC=XXXXXXXXX, DC=local
eb 98 9d 20 22 9c 6d ff a9 26 9c bf 5a dd c9 3b f9 f4 89 50
Application[0] = 1.3.6.1.5.5.7.3.1 Serverauthentifizierung
CertContext[0][1]: dwInfoStatus=10c dwErrorStatus=0
Issuer: CN=XXXXXXXXX - interne Zertifizierungsstelle, DC=XXXXXXXXX, DC=local
NotBefore: 09.01.2012 17:13
NotAfter: 08.02.2023 13:08
Subject: CN=XXXXXXXXX - interne Zertifizierungsstelle, DC=XXXXXXXXX, DC=local
Serial: 3936312c7dd8d0914f8ced629492c59e
b5 f4 2a 78 7b 27 b8 9f 22 ab db ef a3 64 37 bd 49 27 65 89
Element.dwInfoStatus = CERT_TRUST_HAS_NAME_MATCH_ISSUER (0x4)
Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8)
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
---------------- Zertifikat abrufen ----------------
Keine URLs "Keine" Zeit: 0
---------------- Zertifikat abrufen ----------------
Keine URLs "Keine" Zeit: 0
---------------- Zertifikat-OCSP ----------------
Keine URLs "Keine" Zeit: 0
--------------------------------
Exclude leaf cert:
4b 7b e4 9f 23 d7 41 cb f5 d2 e5 5d 7a 6e 03 81 5f 0e 93 91
Full chain:
0e b6 69 df 56 dd 35 e4 85 4b 55 a4 f7 6b 40 2c 3a 1d fa f4
------------------------------------
Verfizierte Ausstellungsrichtlinien: Kein
Verfizierte Anwendungsrichtlinien:
1.3.6.1.5.5.7.3.1 Serverauthentifizierung
Sperrstatussüberprüfung des untergeordneten Zertifikats erfolgreich abgeschlossen.
CertUtil: -verify-Befehl wurde erfolgreich ausgeführt.Sieht glaub ich ok aus.
Der RD Status ist bei allen vertrauenswürdig.
Den Thumbprint habe ich versäumt zu erwähnen. Auch er wird via GPO verteilt.
-
Ja, sieht erst mal gut aus. Die Deltas verteilst Du nur über LDAP, die Basis-CRLS über beide Kanäle - glaube zwar nicht, dass es daran liegt, aber einheitlich ist immer besser, gerade wenn Du eines Tages einen Client kriegst, der nicht in der Domäne ist.
Ich würde mich als erstes vergewissern (hast Du bestimmt schon gemacht ;-) ), dass wenn ich beim Pop-Up auf "Zertifikat anzeigen" gehe, auch das richtige Zertifikat rauskommt und nicht eine seiner früheren Inkarnationen. Und dann eine Testmaschine, GPO-Vererbung abschneiden und nur die aktuelle PKI verteilen (auch den Thumbprint), ohne irgendwelche Spuren der alten. Vielleicht noch rein aus Jux die CRL neu generieren. Auch schauen, ob auf RDS-Servern noch alte Zertifikate schlummern, und gnadenlos wegputzen.
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Ich habe auf jeden Fall Clients, welche aus einem separaten Schulungsnetz (andere Domäne) zugreifen bzw. zugreifen werden.
Beim Login wird das richtige Zertifikat genommen.
Die RDS Server haben nur noch das aktuelle Zertifikat, da ich die alten immer über das SnapIn wieder gelöscht habe.
Jetzt bekomme ich heute die Rückmeldung, dass die 4 User, welche schon die neue RDS-Farm testweise nutzen, überhaupt keine Fehlermeldung beim connect (ebenso W7 Clients) erhalten, sondern nur ich in der Test VM?!
Dort ist aber der Aussteller in den richtigen Zertifikatsspeichern (Stammzert./Herausgeber) enthalten.
Die W7 VM aus der Domäne raus und wieder rein, anderen Testuser genommen und die Maschine bringt immer noch den Fehler.
Eine neue Test VM aufgesetzt und da funktioniert der Login auch ohne Fehler! Also habe bis dato nur ich auf der Testmaschine das Problem. Wenn es so bleiben sollte, ist das natürlich schön. Wäre dumm, wir gehen mit der Farm nun produktiv und 20% der Mitarbeiter bekommen auch das Problem. Dann wüsste ich gerne, wonach ich auf den einzelnen Clients noch gucken soll.
Hast Du noch eine Idee wo ich da ansetzen könnte, oder erfahrungsgemäß einfach "Deckel drauf" und die schlafenden Hunde schlafen lassen. :-)
Gruß
Dirk