Использование makecert для разработки SSL
Вот моя ситуация:
Я пытаюсь создать SSL-сертификат, который будет установлен на всех машинах разработчика, а также два внутренних сервера (все непродуктивно).
Что мне нужно сделать, чтобы создать сертификат, который можно установить во всех этих местах?
- Как отключить предупреждение ненадежного соединения Firefox с использованием Selenium?
- Запрос на перекрестный запрос заблокирован
- Trust Anchor не найден для подключения SSL для Android
- Подписанный SSL-сертификат третьей стороны для localhost или 127.0.0.1?
- Проблемы с использованием Maven и 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 :, я получаю подсказку безопасности (даже после того, как я вы установили сертификат). Кто-нибудь делал это раньше?
- Как установить версию TLS на apache HttpClient
- Принудительное HTTPS для определенного URL-адреса
- Можно ли заставить Java игнорировать «хранилище доверия» и просто принять любой сертификат SSL, который он получает?
- Предупреждение о подтверждении SSL: ошибка unrecognized_name с момента обновления до версии 1.7.7
- Как восстановить отсутствующий сертификат IIS Express SSL?
- Каков правильный способ безопасного отключения сокета SSL asio?
- Android HttpClient и HTTPS
- Как использовать ssh / scp между непубличными машинами
Вот мои сценарии для этого:
Создать центр сертификации
Создайте самозаверяющий сертификат (-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 certmgr.msc MMC или утилиту командной строки certutil :
certutil -user -addstore Root CA.cer
Чтобы программно установить сертификат в IIS 6.0, просмотрите эту статью Microsoft KB . Для IIS 7.0 я не знаю.
Вы должны добавить -cy authority
к коммутаторам при создании центра сертификации, иначе некоторые магазины сертификатов не будут рассматривать его как надлежащий ЦС.