Ich muss eine Zertifikatskette unter Windows erstellen, von einem X.509-Smartcard-Zertifikat über eine oder mehrere Zwischenzertifizierungsstellen bis hin zu einer Stammzertifizierungsstelle. Das ist einfach, wenn sich die CA-Zertifikate in einem JKS-Schlüsselspeicher befinden, aber ich muss auch die Windows-Schlüsselspeicher verwenden.
Ich kann das Root-CA-Zertifikat von "Windows-ROOT" abrufen, aber ich kann nicht zum Keystore "Intermediate Certification Authorities" gelangen.
Hat jemand das getan?
Danke!
Der SunMSCAPI Cryptographic Provider unterstützt nur zwei Keystores: Windows-MY
(persönlicher Zertifikatsspeicher) und Windows-ROOT
(vertrauenswürdiger Autoritätszertifikatspeicher), daher glaube ich nicht, dass es möglich ist, direkt auf andere Windows-Zertifikatsspeicher zuzugreifen. Es ist jedoch möglicherweise nicht erforderlich, da der Windows-MY
keystore in der Lage ist, Zertifikatketten mit den Zertifikaten anderer Speicher zu erstellen.
Hier ist ein Code-Snippet, mit dem ich es teste:
%Vor%Wenn ich ein einzelnes Zertifikat mit privatem Schlüssel im persönlichen Zertifikatsspeicher hinzufüge, ist die Kettenlänge 1. Nach dem Hinzufügen der CA in den Zwischenzertifizierungsstellen-Zertifikatsspeicher starte ich das Programm ein zweites Mal und die Kettenlänge ist jetzt 2.
UPDATE (2. April)
Es ist möglich, Zertifikate im Keystore Windows-MY
und Windows-ROOT
mit einigen Einschränkungen programmgesteuert hinzuzufügen:
Windows-ROOT
wird der Benutzer zur Bestätigung aufgefordert Windows-MY
Keystore hinzugefügte Zertifikat ist ein TrustedCertificateEntry
(aus Sicht des Keystores und nicht aus Sicht von Windows). Der Keystore scheint die längste Kette mit allen verfügbaren Zertifikaten aufzubauen. Das Hinzufügen eines Zertifikats in einem Keystore ist einfach:
%Vor%Jcs hatte die Antwort, aber ich möchte einen Pseudocode zeigen:
%Vor%Windows-Cert-Ketten werden nicht validiert, da sie erstellt wurden, aber jetzt können Sie CertPath und PKIXParameters erstellen und diese zur Überprüfung der Kette verwenden.
%Vor%Tags und Links java windows x509certificate