In einem früheren Blogbeitrag habe ich beschrieben wie das automatische Verteilen von Zertifikaten in einer Microsoft Mobile Device Management Cloud/Onpremis Hybridumgebung konfiguriert werden muss.
Nach zwei Jahren wurden jedoch plötzlich keine Zertifikate mehr für Mobile Endgeräte ausgestellt. Da die Funktionalität weitestgehend PKI basierend ist habe ich zunächst die CAPI2 Logs auf den in der Kommunikation beteiligten Servern aktiviert (NDES, SCCM, Client).
Auf dem NDES Server konnte ich beim Reproduzieren der automatischen Zertifikatsanforderung schließlich die Ereignis IDs 30 und 11 finden:
Event xmlns=“http://schemas.microsoft.com/win/2004/08/events/event„>
– <System>
<Provider Name=“Microsoft-Windows-CAPI2„ Guid=“{5bbca4a8-b209-48dc-a8c7-b23d3e5216fb}“ />
<EventID>30</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>30</Task>
<Opcode>0</Opcode>
<Keywords>0x4000000000000001</Keywords>
<TimeCreated SystemTime=“2015-08-21T21:31:32.502150700Z“ />
<EventRecordID>84</EventRecordID>
<Correlation />
<Execution ProcessID=“584„ ThreadID=“604“ />
<Channel>Microsoft-Windows-CAPI2/Operational</Channel>
<Computer>NDES-Server.domain.com</Computer>
<Security UserID=“S-1-5-21-1972785607-1531977173-2068054413-106082“ />
– <UserData>
– <CertVerifyCertificateChainPolicy>
<Policy type=“CERT_CHAIN_POLICY_SSL„ constant=“4“ />
<Certificate fileRef=“5D87837BACC9486B3A879B8AB40F18ADCBD656FF.cer„ subjectName=“NDES-Server.domain.com“ />
<CertificateChain chainRef=“{58E5A807-2E20-4407-971A-BC07FD30242A}“ />
<Flags value=“0“ />
– <SSLAdditionalPolicyInfo authType=“server„>
<IgnoreFlags value=“280„ SECURITY_FLAG_IGNORE_REVOCATION=“true„ SECURITY_FLAG_IGNORE_WRONG_USAGE=“true“ />
</SSLAdditionalPolicyInfo>
<Status chainIndex=“0„ elementIndex=“0“ />
<EventAuxInfo ProcessName=“lsass.exe„ impersonateToken=“S-1-5-21-1972785607-1531977173-2068054413-106082“ />
<CorrelationAuxInfo TaskId=“{F5DE2ECC-8DD8-411B-8669-29B9145E4B7E}„ SeqNumber=“1“ />
<Result value=“800B0101„>A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.</Result>
</CertVerifyCertificateChainPolicy>
</UserData>
</Event>
<Event xmlns=“http://schemas.microsoft.com/win/2004/08/events/event„>
– <System>
<Provider Name=“Microsoft-Windows-CAPI2„ Guid=“{5bbca4a8-b209-48dc-a8c7-b23d3e5216fb}“ />
<EventID>11</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>11</Task>
<Opcode>2</Opcode>
<Keywords>0x4000000000000003</Keywords>
<TimeCreated SystemTime=“2015-08-21T21:34:59.073849200Z“ />
<EventRecordID>91</EventRecordID>
<Correlation />
<Execution ProcessID=“584„ ThreadID=“2784“ />
<Channel>Microsoft-Windows-CAPI2/Operational</Channel>
<Computer>NDES-Server.domain.com</Computer>
<Security UserID=“S-1-5-21-1972785607-1531977173-2068054413-106082“ />
</System>
– <UserData>
– <CertGetCertificateChain>
<Certificate fileRef=“5D87837BACC9486B3A879B8AB40F18ADCBD656FF.cer“ subjectName=“NDES-Server.domain.com“ />
<ExtendedKeyUsage />
<Flags value=“0“ />
<ChainEngineInfo context=“user“ />
– <CertificateChain chainRef=“{B19DB0AE-A1EC-469F-8C89-1389D6FC51AE}„>
– <TrustStatus>
<ErrorStatus value=“1„ CERT_TRUST_IS_NOT_TIME_VALID=“true“ />
<InfoStatus value=“100„ CERT_TRUST_HAS_PREFERRED_ISSUER=“true“ />
</TrustStatus>
– <ChainElement>
<Certificate fileRef=“5D87837BACC9486B3A879B8AB40F18ADCBD656FF.cer„ subjectName=“NDES-Server.domain.com“ />
<SignatureAlgorithm oid=“1.2.840.113549.1.1.5„ hashName=“SHA1„ publicKeyName=“RSA“ />
<PublicKeyAlgorithm oid=“1.2.840.113549.1.1.1„ publicKeyName=“RSA„ publicKeyLength=“1024“ />
– <TrustStatus>
<ErrorStatus value=“1„ CERT_TRUST_IS_NOT_TIME_VALID=“true“ />
<InfoStatus value=“102„ CERT_TRUST_HAS_KEY_MATCH_ISSUER=“true„ CERT_TRUST_HAS_PREFERRED_ISSUER=“true“ />
</TrustStatus>
– <ApplicationUsage>
<Usage oid=“1.3.6.1.5.5.7.3.2„ name=“Client Authentication“ />
</ApplicationUsage>
<IssuanceUsage />
</ChainElement>
– <ChainElement>
<Certificate fileRef=“03924C0F96F4FE488E1EBCD04F7DBA00C5FB4A00.cer„ subjectName=“Issuing-CA-01“ />
<SignatureAlgorithm oid=“1.2.840.113549.1.1.5„ hashName=“SHA1„ publicKeyName=“RSA“ />
<PublicKeyAlgorithm oid=“1.2.840.113549.1.1.1„ publicKeyName=“RSA„ publicKeyLength=“2048“ />
– <TrustStatus>
<ErrorStatus value=“0“ />
<InfoStatus value=“102„ CERT_TRUST_HAS_KEY_MATCH_ISSUER=“true„ CERT_TRUST_HAS_PREFERRED_ISSUER=“true“ />
</TrustStatus>
<ApplicationUsage any=“true“ />
<IssuanceUsage />
</ChainElement>
– <ChainElement>
<Certificate fileRef=“A474E335E45BF0A22C28F76D63DB3D1BD4225C36.cer„ subjectName=“Root-CA“ />
<SignatureAlgorithm oid=“1.2.840.113549.1.1.5„ hashName=“SHA1„ publicKeyName=“RSA“ />
<PublicKeyAlgorithm oid=“1.2.840.113549.1.1.1„ publicKeyName=“RSA„ publicKeyLength=“4096“ />
– <TrustStatus>
<ErrorStatus value=“0“ />
<InfoStatus value=“10C„ CERT_TRUST_HAS_NAME_MATCH_ISSUER=“true„ CERT_TRUST_IS_SELF_SIGNED=“true„ CERT_TRUST_HAS_PREFERRED_ISSUER=“true“ />
</TrustStatus>
<ApplicationUsage any=“true“ />
– <IssuanceUsage>
<Usage oid=“1.3.6.1.4.1.36013.509.1.1“ />
</IssuanceUsage>
</ChainElement>
</CertificateChain>
<EventAuxInfo ProcessName=“lsass.exe„ impersonateToken=“S-1-5-21-1972785607-1531977173-2068054413-106082“ />
<CorrelationAuxInfo TaskId=“{D9BB5151-5F96-41F4-A806-02513EE2E7AB}„ SeqNumber=“3“ />
<Result value=“800B0101„>A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.</Result>
</CertGetCertificateChain>
</UserData>
</Event>
Der Fehlertext (Result value) gibt an das ein Zertifikat ungültig ist. Beim ersten Blick in die MMC konnte ich jedoch kein abgelaufenes Zertifikat finden. Auf den zweiten Blick entdeckte ich jedoch, dass das Zertifikat für die „Clientauthentifizierung“ automatisch durch die Steuerung von Gruppenrichtlinien erneuert wurde. Dieses automatisch erneuerte Zertifikat verwendete ich bei der Konfiguration des SCCM Policy Moduls welches auf dem NDES Server installiert wurde. Das Zertifikat hatte beim Erneuern einen neuen „Thumbprint“ erhalten. Nach einem Blick in den „NDES.log konnte ich feststellen das für die Zertifikatsanforderung das Zertifikat mit dem vorherigen „Thumbprint“ verwendet wurde.
Doch wie kann der Zertifikats Thumbprint des SCCM Policy Moduls geändert werden? Der zu verwendende Thumbprint kann über die Registrierung geändert werden:
HKLMSOFTWAREMicrosoftCryptographyMSCEPModulesNDESPolicyNDESCertThumbprint
Der „Internet Information Service (IIS)“ muss nach der Änderung neu gestartet werden um das neue Zertifikat zu verwenden.
Referenz:
https://technet.microsoft.com/en-us/library/dn464311.aspx?f=255&MSPPError=-2147217396
Super beschrieben 🙂
Du kannst auch den Event ID 29 erwähnen weil das ist das erste was man im NDES Logs sieht bevor man die CAPI Logs aktiviert.