Создать сертификат OpenSSL в Windows [закрыто]

82

Поскольку я новичок в SSL-сертификатах, а также в их создании и использовании, я подумал, что, возможно, члены StackOverflow могут мне помочь.

Я из Голландии, обычный способ онлайн-платежей - внедрение iDEAL. Протокол онлайн-платежей, поддерживаемый крупными банками. Мне нужно реализовать «профессиональную» версию. Это включает создание закрытого ключа RSA. На основе этого ключа я должен создать сертификат и загрузить его на веб-сервер.

Я на машине с Windows и совершенно не понимаю, что делать. Я взглянул на веб-сайт OpenSSL, потому что руководство направило меня на этот веб-сайт, чтобы получить набор инструментов SSL.

В руководстве представлены две команды, которые необходимо выполнить для создания ключа RSA и сертификата.

Команды:

openssl genrsa -des3 –out priv.pem -passout pass:myPassword 1024

и

openssl req -x509 -new -key priv.pem -passin pass:myPassword -days 3650 -out cert.cer

Есть ли способ сделать это с помощью служебной программы на компьютере с Windows? Я скачал PuTTy KeyGenerator. Но я не уверен, что делать, я создал ключ (SSH-2 RSA, что бы это ни было ...), но как мне создать сертификат с этим ключом?

Бен Франсен
источник
Здесь вы можете создать самоподписанный сертификат онлайн: mobilefish.com/services/ssl_certificates/ssl_certificates.php
lubosdz

Ответы:

29

Вы можете скачать собственный OpenSSL для Windows или всегда использовать Cygwin .

Адам Баткин
источник
3
Из этой ссылки OpenSSL: «Проект OpenSSL не распространяет какой-либо код в двоичной форме и официально не рекомендует какие-либо конкретные двоичные дистрибутивы»
Эд Норрис
Если у вас уже установлен scoop, вы можете «scoop install openssl».
мпр
Вы также можете запустить Bash для Windows (в Windows 10)
Altair7852,
99

Если вы работаете в Windows и используете apache, возможно, через WAMP или установщик стека Drupal, вы можете дополнительно загрузить git для Windows. пакет , который включает в себя множество полезных инструментов командной строки Linux, одним из которых является openssl.

Следующая команда создает самоподписанный сертификат и ключ, необходимые для apache, и отлично работает в Windows:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privatekey.key -out certificate.crt
Alexkb
источник
16
Спасибо, что упомянули, что OpenSSL поставляется с git для Windows.
Бенджамин Альберт,
2
Вы также можете использовать этот метод в git bash в Windows: как создать https-сервер?
Eido95
это SSH-2 или SSH-1?
Маниш Кумар 08
У меня ошибка: unable to find 'distinguished_name' in config 18268:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:crypto\conf\conf_lib.c:270: privatekey.keyсгенерирован, но не crtфайл.
tryHard
15

Рассмотрите возможность использования веб-приложения хранилища сертификатов, чтобы легко создавать закрытый ключ и сертификат на его основе: http://www.cert-depot.com/

Он также может создать для вас PFX.

Отказ от ответственности: я являюсь создателем хранилища сертификатов.

Дима Стопель
источник
36
Осторожно: закрытые ключи никогда не должны передаваться по общедоступным сетям; и они никогда не должны создаваться на машине, над которой вы не имеете полного контроля. - Итак, используйте вывод cert-depot.com для тестирования и разработки, но убедитесь, что ваши производственные сертификаты созданы в надежной среде. - Дима, я не имею в виду, что ваш сервис не заслуживает доверия, но общепринятая практика безопасности запрещает использование этих сертификатов в производственной среде. Тем не менее, теперь я собираюсь получить сертификат с вашего сайта для моего нового сервера разработки; спасибо за удобный сервис. :)
JimmyB
5
Я согласен с каждым словом, Ханно. Более того, даже если соединение защищено, не следует доверять третьей стороне создание закрытых ключей для него (они могут быть сохранены и использованы позже). Везде, где я мог, я пытался подчеркнуть, что сгенерированные сертификаты подходят только для целей разработки / тестирования.
Дима Стопель
4
Спасибо за удобный инструмент для разработки, Дима, но ваше утверждение: «Где бы я ни пытался подчеркнуть, что сгенерированные сертификаты подходят только для целей разработки / тестирования», в настоящее время не соответствует действительности. Домашняя страница была бы идеальным местом для такого заявления об отказе от ответственности, а его просто нет.
Джереми Кук
4
Эта услуга, похоже, больше не доступна, и в любом случае передавать ваши личные ключи в руки кому-либо еще - действительно плохая идея.
Фабиан Ритцманн,
2
ваш сайт cert-depot.com исчез.
darkenergy
14

Чтобы создать самозаверяющий сертификат в Windows 7 с IIS 6 ...

  1. Откройте IIS

  2. Выберите свой сервер (элемент верхнего уровня или имя вашего компьютера)

  3. В разделе IIS откройте «Сертификаты сервера».

  4. Нажмите «Создать самозаверяющий сертификат».

  5. Назовите его "localhost" (или что-то в этом роде, не определенное)

  6. Нажмите "ОК"

Затем вы можете привязать этот сертификат к своему веб-сайту ...

  1. Щелкните правой кнопкой мыши на своем веб-сайте и выберите «Редактировать привязки ...»

  2. Нажмите "Добавить"

    • Тип: https
    • IP-адрес: «Все неназначенные»
    • Порт: 443
    • Сертификат SSL: "localhost"
  3. Нажмите "ОК"

  4. Нажмите "Закрыть"

Teewuane
источник
Генератор сертификатов IIS не генерирует действительные сертификаты SSL (см. Stackoverflow.com/questions/46641473/… ), и это не отвечает на заданный вопрос.
Дуг
Вопрос был изменен в мае 2014 года после моего ответа.
teewuane
9

Вы, безусловно, можете использовать для этого putty (puttygen.exe).

Или вы можете заставить Cygwin использовать только что описанные утилиты.

Пабло Санта Крус
источник
1
puttygen.exeсупер просто и я всегда забываю об этом!
кодибраун
17
Я понимаю, как создать пару открытого и закрытого ключей в puttygen, но как создать сертификат (.pem) в puttygen?
Aaron_H
Я создал открытый и закрытый ключ, а как насчет сертификата?
пытаясь