Да, это работает просто отлично; центр сертификации Windows не имеет никаких сомнений в том, что работает как подчиненный корень не из Windows.
Протестировано с корнем OpenSSL и подчиненным Windows 2008 R2 в режиме Enterprise.
Несколько вещей, чтобы играть хорошо с тем, что MS CA ожидает в конфигурации OpenSSL:
Допустимые местоположения AIA и CDP должны применяться к корневому сертификату, в разделе, настроенном x509_extensions
свойством [req]
раздела для самоподписанного корня. Что-то в этом роде:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Данная конфигурация OpenSSL, вероятно, не позволяет подчиненным ЦС по умолчанию. Измените это для подписанных запросов (конечно, убедитесь, что это не относится к запросам, которые не должны быть CA). Это будет в разделе, настроенном x509_extensions
свойством [ca]
раздела:
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
Итак, мы сделаем CA для тестирования.
Сделайте свой корень:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Поиграйте с вашим конфигом и создайте необходимые файлы и каталоги в [ca]
разделе вашего конфига OpenSSL.
Все готово для того, чтобы добиться успеха со стороны Microsoft; создать подчиненный ЦС Windows с ручной подписью.
Загрузите запрос сертификата на сервер OpenSSL. Пока вы на нем, загрузите корневой сертификат. Импортируйте его в хранилище доверенных корней - компьютера, а не вашего пользователя!
Выдайте подчиненный сертификат:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Если это не сработало, возможно, у вашего ЦС есть проблема с конфигурацией - новый каталог сертификатов, индексный файл, последовательный файл и т. Д. Проверьте сообщение об ошибке.
Если это пошло, то это все. Если нет, создайте CRL и поместите его в CDP, который вы настроили выше; Я только что установил Apache и заклинил его в webroot:
openssl ca -gencrl -out /var/www/root.crl
И поместите свой сертификат в местоположение AIA, если это еще не сделано:
cp /etc/ssl/certs/root.pem /var/www/root.pem
Загрузите новый выданный подчиненный сертификат и установите его в ЦС с помощью оснастки MMC центра сертификации. Он будет касаться любых вопросов с доверием или проверкой, но у него нет никаких моральных возражений против его принятия.
Конечный результат; работающий Windows CA без жалоб от оснастки Enterprise PKI с контрольным сигналом OpenSSL Generated Certificate
в атрибутах.