Ja, es funktioniert gut; Eine Windows-Zertifizierungsstelle hat keine Bedenken, als Untergebene eines Nicht-Windows-Stamms ausgeführt zu werden.
Getestet mit einem OpenSSL-Stamm und einem Windows 2008 R2-Untergebenen im Enterprise-Modus.
Ein paar Dinge, mit denen man gut spielen kann, was die MS CA in der OpenSSL-Konfiguration erwartet:
Gültige AIA- und CDP-Speicherorte sollten für das Stammzertifikat in dem Abschnitt gelten, der von der x509_extensions
Eigenschaft des [req]
Abschnitts für den selbstsignierten Stamm konfiguriert wurde . Etwas in diese Richtung:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
In einer bestimmten OpenSSL-Konfiguration sind wahrscheinlich standardmäßig keine untergeordneten Zertifizierungsstellen zulässig. Ändern Sie dies für signierte Anfragen (stellen Sie sicher, dass dies nicht für Anfragen gilt, bei denen es sich natürlich nicht um Zertifizierungsstellen handeln sollte). Dies wird in dem Abschnitt sein, der durch die x509_extensions
Eigenschaft des Abschnitts konfiguriert wird [ca]
:
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
Also machen wir eine Zertifizierungsstelle zum Testen.
Machen Sie Ihre Wurzel:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Probieren Sie Ihre Konfiguration aus und erstellen Sie die erforderlichen Dateien und Verzeichnisse im [ca]
Abschnitt Ihrer OpenSSL-Konfiguration.
Alles bereit, um die Microsoft-Seite in Schwung zu bringen. Erstellen Sie eine untergeordnete Windows-Zertifizierungsstelle mit manueller Signatur.
Laden Sie die Zertifikatsanforderung auf den OpenSSL-Server hoch. Laden Sie währenddessen das Stammzertifikat herunter. Importieren Sie es in den vertrauenswürdigen Stammspeicher - auf dem Computer, nicht auf Ihrem Benutzer!
Stellen Sie das untergeordnete Zertifikat aus:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Wenn dies nicht funktioniert hat, hat Ihre Zertifizierungsstelle wahrscheinlich ein Problem mit der Konfiguration - neues Zertifikatverzeichnis, Indexdatei, serielle Datei usw. Überprüfen Sie die Fehlermeldung.
Wenn es gelaufen ist, dann ist es das. Wenn nicht, erstellen Sie eine CRL und legen Sie sie in den CDP ein, den Sie oben konfiguriert haben. Ich habe gerade Apache installiert und es in Webroot gestaut:
openssl ca -gencrl -out /var/www/root.crl
Und legen Sie Ihr Zertifikat am AIA-Speicherort ab, falls dies noch nicht geschehen ist:
cp /etc/ssl/certs/root.pem /var/www/root.pem
Laden Sie das neu ausgestellte untergeordnete Zertifikat herunter und installieren Sie es mit dem MMC-Snap-In für Zertifizierungsstellen auf der Zertifizierungsstelle. Es wird sich über alle Probleme mit Vertrauen oder Validierung auseinandersetzen, aber es hat keine moralischen Einwände dagegen.
Endresultat; Eine funktionierende Windows-Zertifizierungsstelle, die sich nicht über das Enterprise-PKI-Snap-In beschwert OpenSSL Generated Certificate
und deren Attribute eindeutig sind.