Tak, działa dobrze; urząd certyfikacji systemu Windows nie ma żadnych wątpliwości co do działania jako jednostka podrzędna w stosunku do katalogu głównego innego niż Windows.
Przetestowano przy użyciu katalogu głównego OpenSSL i podwładnego systemu Windows 2008 R2 w trybie Enterprise.
Kilka rzeczy do zabawy z tym, czego oczekuje MS CA w konfiguracji OpenSSL:
Prawidłowe lokalizacje AIA i CDP powinny mieć zastosowanie do certyfikatu głównego w sekcji skonfigurowanej przez x509_extensions
właściwość [req]
sekcji dla roota z podpisem własnym. Coś w tym stylu:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Dana konfiguracja OpenSSL prawdopodobnie domyślnie nie pozwala na podrzędne urzędy certyfikacji. Zmień to w przypadku podpisanych żądań (oczywiście upewnij się, że nie ma tego w przypadku żądań, które nie powinny być urzędami certyfikacji). Będzie to w sekcji skonfigurowanej przez x509_extensions
właściwość [ca]
sekcji:
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
Zrobimy więc urząd certyfikacji w celu przetestowania.
Zrób swój root:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Postępuj zgodnie ze swoją konfiguracją i utwórz niezbędne pliki i katalogi w [ca]
sekcji swojej konfiguracji OpenSSL.
Wszystko gotowe, aby wszystko działało po stronie Microsoftu; utwórz podrzędny urząd certyfikacji systemu Windows z ręcznym podpisywaniem.
Prześlij żądanie certyfikatu na serwer OpenSSL. W tym momencie pobierz certyfikat główny. Zaimportuj go do zaufanego katalogu głównego - komputera, a nie użytkownika!
Wystaw certyfikat podrzędny:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Jeśli to nie zadziałało, prawdopodobnie urząd certyfikacji ma problem z katalogiem config - new certs, plikiem indeksu, plikiem szeregowym itp. Sprawdź komunikat o błędzie.
Jeśli poszło, to o to chodzi. Jeśli nie, zrób listę CRL i umieść ją w CDP, który skonfigurowałeś powyżej; Właśnie zainstalowałem Apache i zablokowałem go w katalogu głównym:
openssl ca -gencrl -out /var/www/root.crl
I umieść swój certyfikat w lokalizacji AIA, jeśli jeszcze nie jest:
cp /etc/ssl/certs/root.pem /var/www/root.pem
Pobierz nowo wydany certyfikat podrzędny i zainstaluj go w urzędzie certyfikacji za pomocą przystawki MMC urzędu certyfikacji. Zajmie się wszelkimi kwestiami związanymi z zaufaniem lub potwierdzeniem, ale nie ma moralnego sprzeciwu wobec tego.
Wynik końcowy; działający urząd certyfikacji systemu Windows bez żadnych skarg ze strony przystawki Enterprise PKI, z charakterystycznym OpenSSL Generated Certificate
atrybutem.