Как связать сертификат SSL - PullRequest
2 голосов
/ 22 октября 2010

Есть ли способ связать нашу собственную сгенерированную пару ключей с существующим сертификатом, который был связан с корневым центром сертификации (например, verisign)? В основном мой вопрос описан на диаграмме ниже

Verisign Root CA
     |
     --> Company XYZ certificate
                     |
                     ---> Server foo certificate

Как только я сгенерировал пару ключей для сервера foo, как связать ее с сертификатом компании XYZ?

Ответы [ 2 ]

4 голосов
/ 22 октября 2010

Если компания XYZ имеет Промежуточный центр сертификации , то вы можете. Сертификаты такого типа авторизуются корневым центром сертификации для выпуска новых сертификатов, и этот факт определяется во время создания конкретными свойствами (основные ограничения, использование ключа, расширенное использование ключа).

Но если компания XYZ имеет обычный сертификат, используемый, например, для идентификации веб-сайтов, пользователей электронной почты или разработчиков программного обеспечения, это невозможно. Даже если на практике ничто не мешает вам создать новый сертификат и подписать его другим (если у вас есть закрытый ключ), я не думаю, что вы получите действительный сертификат.

Итак, если у вас есть правильный вид сертификата, вам придется подписать его с помощью foo. Вы можете использовать makecert или open ssl для создания нового X509 сертификата . Например:

makecert -pe -n "CN=foo" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Company XYZ" -is my -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -ss my -sr LocalMachine

Вам понадобится сертификат для компании XYZ, установленный на локальном компьютере / в личном хранилище сертификатов Windows. Полученный сертификат будет добавлен в то же место, и вы сможете экспортировать его оттуда в различные форматы (.pfx, .cer, .p7b). Также это создает пару ключей для нового сертификата.

1 голос
/ 22 октября 2010

Если у вас есть оба сертификата, попробуйте объединить файлы сертификатов. Если нет, пожалуйста, измените ваш вопрос, чтобы мы знали, где вы находитесь.

Если вы настраиваете его на сервере Apache, посмотрите директиву mod_ssl SSLCertificateChainFile .

...