Использование makecert для разработки SSL

Вот моя ситуация:

Я пытаюсь создать сертификат SSL, который будет установлен на всех машинах разработчика, вместе с двумя внутренними серверами (все непродуктивно).

Что мне нужно сделать, чтобы создать сертификат, который можно установить во всех этих местах?

Сейчас у меня есть что-то в этом роде, используя приложение makecert в Microsoft Visual Studio 8\SDK\v2.0\Bin:

makecert -r -pe -n "CN=MySite.com Dev" -b 01/01/2000 -e 01/01/2033 -eku 1.3.6.1.5.5.7.3.1 -ss Root -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 mycert.cer

Однако я не уверен, как разместить этот файл .cer на других компьютерах, и когда я устанавливаю его на свой локальный компьютер IIS, каждый раз, когда я посещаю страницу через https:, я получаю запрос безопасности ( даже после того, как я установил сертификат). Кто-нибудь сделал это раньше?

Ответ 1

Вот мои сценарии для этого:

Создать центр сертификации

Создайте самозаверяющий сертификат (-r) с помощью экспортируемого закрытого ключа (-pe), используя SHA1 (-r) для подписания (-sky подписи). Закрытый ключ записывается в файл (-sv).

makecert -r -pe -n "CN=My Root Authority" -ss CA -sr CurrentUser ^
         -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer

(^ = разрешить пакетную строку командной строки)

Создать сертификат сервера

Создайте сертификат сервера с помощью экспортируемого закрытого ключа (-pe), используя SHA1 (-a) для обмена ключами (-sky exchange). Его можно использовать в качестве сертификата сервера SSL (-eku 1.3.6.1.5.5.7.3.1). Сертификат выдачи находится в файле (-ic), как и ключ (-iv). Используйте конкретного поставщика криптографии (-sp, -sy).

makecert -pe -n "CN=fqdn.of.server" -a sha1 -sky Exchange ^
         -eku 1.3.6.1.5.5.7.3.1 -ic CA.cer -iv CA.pvk ^
         -sp "Microsoft RSA SChannel Cryptographic Provider" ^
         -sy 12 -sv server.pvk server.cer

pvk2pfx -pvk server.pvk -spc server.cer -pfx server.pfx

Затем вы используете файл .PFX в своем серверном приложении (или устанавливаете его в IIS). Обратите внимание, что по умолчанию pvk2pfx не применяет пароль к выходному файлу PFX. Для этого вам нужно использовать переключатель -po.

Чтобы доверять всем вашим клиентским машинам, установите CA.cer в свои хранилища сертификатов (в хранилище доверенных корневых серверов). Если вы находитесь в домене, вы можете использовать групповую политику Windows, чтобы сделать это глобально. Если нет, вы можете использовать snapin MMC certmgr.msc или служебную программу certutil:

certutil -user -addstore Root CA.cer

Чтобы программно установить сертификат в IIS 6.0, просмотрите эту статью Microsoft KB. Для IIS 7.0 я не знаю.

Ответ 2

Вы должны добавить -cy authority к переключателям при создании центра сертификации, иначе некоторые хранилища сертификатов не будут рассматривать его как надлежащий ЦС.