Использование makecert для разработки SSL - PullRequest
55 голосов
/ 30 января 2009

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

Я пытаюсь создать сертификат 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:, я получаю приглашение безопасности ( даже после того, как я установил сертификат). Кто-нибудь делал это раньше?

Ответы [ 2 ]

139 голосов
/ 30 января 2009

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

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

Создайте самоподписанный сертификат (-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 в их хранилища сертификатов (в хранилище Trusted Root Authorities). Если вы находитесь в домене, вы можете использовать групповую политику Windows, чтобы сделать это глобально. Если нет, вы можете использовать оснастку MMC certmgr.msc или утилиту командной строки certutil :

certutil -user -addstore Root CA.cer

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

12 голосов
/ 24 марта 2010

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

...