Openssl windows 10 создает сертификат

Обновлено: 21.11.2024

США Доллар Евро Британский фунт Канадские доллары Австралийские доллары Индийские рупии Китайский юань Юань Подробнее →

Мы поддерживаем наших друзей и коллег в Украине. Чтобы поддержать Украину в трудную минуту, посетите эту страницу.

Создание CSR в Windows с использованием OpenSSL

Во время настройки SSL, если вы работаете в системе на базе Windows, могут возникнуть ситуации, когда вам потребуется сгенерировать запрос на подпись сертификата (CSR) и закрытый ключ вне хранилища ключей Windows. Это может быть полезно, например, если вы хотите сделать резервную копию своего SSL-сертификата или импортировать его на несколько серверов. Вот шаги, которые вы должны предпринять для создания CSR с помощью инструмента приложения OpenSSL:

Шаг 1. Установите OpenSSL на ПК с Windows

<р>1.1. Нажмите здесь и перейдите к таблице сторонних двоичных дистрибутивов, связанных с OpenSSL.

Примечание: мы рекомендуем этот список двоичных файлов, поскольку он дает возможность загрузить готовые к запуску исполняемые файлы приложений. Это удобнее, чем скачивать бинарные файлы с официального сайта.

<р>1.2. Выберите один из вариантов OpenSSL для Windows, выбрав описание, которое подходит вам.

<р>1.3. Вы найдете раздел загрузки, подобный этому примеру, где вы прокрутите вниз и увидите Загрузка Win32/Win64 OpenSSL. Загрузите последнюю версию Light OpenSSL в зависимости от вашей версии Windows, например «Win32» или «Win64». Если вы не знаете, какая у вас Windows, загрузите 32-разрядную версию OpenSSL.

<р>1.4. Дважды щелкните, чтобы начать установку, и следуйте инструкциям. После этого на сервере будет установлено приложение OpenSSL. Вот некоторые из экранов настройки, которые вы увидите:

Примечание: по умолчанию базовая папка OpenSSL будет загружена на диск C вашего ПК. Он будет называться в соответствии с выбранной вами версией OpenSSL.

Шаг 2. Этапы настройки OpenSSL

<р>2.1. Откройте Cmd (командная строка Windows). Для этого нажмите Win+R на клавиатуре. Затем введите cmd и нажмите OK.

Далее вы увидите терминал cmd:

<р>2.2. Перейдите в базовую папку OpenSSL, выполнив (добавив) следующую команду в cmd:

cd *базовая папка OpenSSL*

Примечание: путь к расположению установленной базовой папки OpenSSL на вашем ПК будет выглядеть примерно так: C:\OpenSSL-Win32 или C:\OpenSSL-Win64.

<р>2.3. Теперь выполните следующую команду в cmd:

установить OPENSSL_CONF=*базовую папку OpenSSL*\bin\openssl.cfg

<р>2.4. Перезагрузите компьютер, чтобы изменения вступили в силу.

Шаг 3. Создайте код CSR

<р>3.1. Перейдите в подпапку \bin вашей папки OpenSSL, выполнив эту команду:

корзина для компакт-дисков

3.2. Сгенерируйте код CSR и закрытый ключ для вашего сертификата, выполнив эту команду:

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server_csr.txt

Примечание. server.key и server_csr.txt — это закрытый ключ и файлы кода CSR. Не стесняйтесь использовать любые имена файлов, если вы сохраняете расширения .key и .txt.

Совет: если вы хотите с самого начала сгенерировать закрытый ключ и код CSR в другом месте, пропустите шаг 3.1. и замените часть команды openssl на *базовую папку OpenSSL*\bin\openssl.exe:

*базовая папка OpenSSL*\bin\openssl.exe req -new -newkey rsa:2048 -nodes -keyout *какой-то путь*\server.key -out *какой-то путь*\server_csr.txt

<р>3.3. Заполните обязательные поля:

Примечание. Для полей «Адрес электронной почты», «Запрос пароля» и «Необязательное название компании» просто нажмите Enter, чтобы оставить их пустыми, так как это устаревшие поля.

В качестве альтернативы вы можете запустить следующую команду со всеми уже перечисленными параметрами. Замените информацию по умолчанию фактическими значениями в команде, прежде чем копировать и вставлять ее в cmd и нажимать Enter:

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server_csr.txt -subj "/C=*Страна*/ST=*Штат или провинция*/L=*Местность или Город*/O=*Компания*/OU=*Организационная единица*/CN=*Общее название*"

<р>3.4. Это создаст файлы закрытого ключа (.key) и кода CSR (.txt) в *базовой папке OpenSSL*\bin. Откройте файл CSR напрямую в любом текстовом редакторе или в Блокноте с помощью этой команды:

блокнот server_csr.txt

3.5. Скопируйте созданный код, включая -----BEGIN CERTIFICATE SIGNING REQUEST----- и -----END CERTIFICATE SIGNING REQUEST----- в активируйте свой SSL-сертификат.

Примечание: если CSR был сгенерирован таким образом, но сертификат необходимо установить на сервер Windows (т. е. IIS), вам потребуется сгенерировать PFX-файл из сертификата и закрытого ключа. Для этого используйте эту команду:

openssl pkcs12 -export -out *ваш сертификат*.pfx -inkey server.key -in *ваш сертификат*.p7b

Или вместо этой команды вы можете использовать онлайн-инструмент, подобный этому примеру. Затем импортируйте его на сервер Windows.

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

Как создать самосертифицированный SSL-сертификат и файлы открытых/закрытых ключей.

Если вы спешите (и не нуждаетесь в объяснениях), то можете просто пропустить этот раздел.

Однако, если у вас возникла проблема с тем, что Iguana не принимает ваш закрытый ключ, вам следует открыть файл ключа в текстовом редакторе и проверить, соответствует ли он одному из двух допустимых форматов.

Iguana поддерживает эти два формата PKCS:

Примечание. Iguana не поддерживает формат SSH, определенный в RFC4716, даже если этот формат похож:

В этом разделе показано, как создать файл открытого/закрытого ключа с помощью OpenSSL.

Чтобы сгенерировать файл открытого/закрытого ключа в системе Windows:

  1. У вас должен быть установлен OpenSSL.
  2. Создайте новый каталог на диске C и дайте ему соответствующее имя (например, Test).
  3. Откройте окно командной строки и перейдите в новый каталог. Например:
  4. Введите путь к каталогу установки OpenSSL, а затем алгоритм ключа RSA. Например:
  5. Затем запустите эту команду, чтобы разделить сгенерированный файл на отдельные файлы с закрытым и открытым ключами.

Чтобы сгенерировать файл открытого/закрытого ключа в системе POSIX:

  1. Используйте утилиту ssh-keygen, которая входит в состав большинства систем POSIX.
  2. Создайте новый каталог и дайте ему соответствующее имя (например, Test).
  3. Откройте окно командной строки и перейдите в новый каталог. Например:
  4. Используйте параметр rsa, чтобы создать пару открытых закрытых ключей (используя свой адрес электронной почты в качестве комментария):

Совет. Для Iguana требуются ключи формата PEM. Утилита ssh-keygen недавно была изменена на использование (более безопасного) формата закрытого ключа openssh по умолчанию, тогда как ранее по умолчанию использовался формат PEM. Для создания формата PEM мы добавили к старой команде параметр «-m PEM».

Файлы открытого и закрытого ключей сохраняются в новом каталоге, который вы создали ранее. Пример файла закрытого ключа показан ниже:

Вы можете скопировать ключ сверху. Этот ключ следует использовать только в целях тестирования.

Примечание. В этом примере параметр 4096 команды openssl genrsa указывает, что сгенерированный ключ имеет длину 4096 бит. Ключ длиной 4096 бит или более считается более безопасным. Более короткий ключ будет менее безопасным, но для его использования потребуется меньше вычислений.

В этом разделе показано, как создать файл самоподписанного сертификата с помощью OpenSSL.

Примечание: Iguana предлагает поддержку совместимых с x509 сертификатов в формате pem, сертификаты не должны быть защищены паролем.

Чтобы создать файл самоподписанного сертификата в системе Windows:

  1. У вас должен быть установлен OpenSSL.
  2. Откройте окно командной строки и перейдите в созданный ранее каталог для файла открытого/закрытого ключа. Например:
  3. Введите путь к каталогу установки OpenSSL, а затем алгоритм самозаверяющего сертификата. Например:
  4. Следуйте инструкциям, которые появляются на экране. Например:

Чтобы создать файл самоподписанного сертификата в системе POSIX:

  1. У вас должен быть установлен OpenSSL.
  2. Откройте окно командной строки и перейдите в созданный ранее каталог для файла открытого/закрытого ключа. Например:
  3. Введите путь к каталогу установки OpenSSL, а затем алгоритм самозаверяющего сертификата. Например:
  4. Следуйте инструкциям, которые появляются на экране. Например:

Файл самозаверяющего сертификата создается и сохраняется в каталоге, который вы указали ранее. Пример формата сертификата показан ниже:

Вы можете скопировать сертификат сверху. Этот сертификат предназначен только для целей тестирования.

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

В этих инструкциях используются скриншоты из Windows 7, но в других версиях Windows процесс такой же.

Чтобы сгенерировать файл открытого/закрытого ключа:

    Откройте файл puttygen.exe, дважды щелкнув его:

Стандартная установка puttygen.exe находится в папке C:\Program Files\PuTTY, но это отдельный исполняемый файл, который можно запускать откуда угодно.

PuTTYgen по умолчанию использует нужный ключ RSA (SSH-2 RSA).

Не забудьте прокрутить вниз, чтобы убедиться, что вы получили весь ключ.

Создание SSL-сертификатов может оказаться непростой задачей, полной разочарований и печали. Но так не должно быть! Если у вас есть Windows 10 и OpenSSL, а также небольшая помощь из этого руководства, у вас все получится.

В этой статье вы узнаете, как установить OpenSSL в Windows 10. После установки вы сможете создавать SSL-сертификаты, устранять неполадки и отлаживать сертификаты, а также преобразовывать форматы.

Начнем осваивать OpenSSL с PowerShell!

Оглавление

Предпосылки

В этой статье вы будете учиться, используя практический подход. Хотя OpenSSL исторически является утилитой ОС Linux, вы можете использовать ее и с ОС Windows.

  • Система Windows с правами локального администратора — в руководстве будет использоваться Windows 10
  • Установлена ​​Windows PowerShell 5.1 (поставляется с Windows) или PowerShell 7.
  • PowerShell ISE, Visual Studio Code или любой текстовый редактор по вашему выбору

Все скриншоты в этом руководстве были взяты из Windows 10 сборки 1909 и PowerShell 7.

Установка OpenSSL с PowerShell и Chocolatey

Предполагая, что вы установили Chocolatey с помощью инструкций по установке, ваша первая задача — установить OpenSSL в Windows 10. Для этого откройте консоль PowerShell и запустите choco install OpenSSL.Light, как показано ниже.

Вот оно! Теперь вы установили OpenSSL с PowerShell.

Настройка рабочего каталога

В этом руководстве будет создано несколько сертификатов для обучения. Чтобы вся работа, которую вы здесь выполняете, была ограничена одной папкой, которую вы сможете очистить позже, создайте ее.

В этом руководстве все сертификаты и связанные файлы будут храниться в папке C:\certs. Вы можете создать папку с помощью PowerShell, выполнив приведенную ниже команду.

Пришло время настроить OpenSSL.

Настройка OpenSSL

По умолчанию OpenSSL в Windows 10 не поставляется с файлом конфигурации. Это сделано намеренно, потому что существует множество параметров конфигурации, которые вы можете настроить. Для целей этого руководства вы будете использовать образец конфигурации, который вы сможете позже настроить в соответствии с вашими требованиями безопасности.

Откройте PowerShell и выполните указанную ниже команду. Эта команда загружает образец файла конфигурации из Массачусетского технологического института и сохраняет его как openssl.cnf в текущем рабочем каталоге.

Теперь вы можете открыть файл openssl.cnf, и вы должны увидеть что-то похожее на следующее.

Пример файла конфигурации OpenSSL

Загруженная конфигурация пока будет работать как есть. Не используйте значения по умолчанию в рабочей среде!

Обновление переменных среды профиля PowerShell

Чтобы все прошло гладко, вам следует изменить свой профиль PowerShell в Windows 10. Настройка некоторых переменных среды позволяет легко переключаться между различными версиями OpenSSL, которые вы, возможно, установили.

Я предлагаю добавить в ваш профиль PowerShell две переменные среды: path и OPENSSL_CONF . Вы обновите переменную среды PATH, чтобы гарантировать возможность запуска двоичного файла openssl в любом месте из командной строки.

Ниже вы увидите, как создать профиль PowerShell, если у вас его еще нет. Эта команда добавляет двоичный путь OpenSSL к вашему PATH и назначает путь к файлу конфигурации OPENSSL_CONF .

Чтобы использовать переменные среды, перезагрузите свой профиль, набрав . $profile или просто закройте и снова откройте PowerShell.

Теперь вы можете легко вызывать двоичный файл openssl, где бы вы ни находились в PowerShell, как показано ниже.

Использование OpenSSL в Windows 10 для создания CSR и закрытого ключа

Прежде чем вы сможете создать сертификат SSL, вы должны создать запрос на подпись сертификата (CSR). CSR — это закодированный файл, который предоставляет вам возможность поделиться своим открытым ключом с центром сертификации (CA). Этот файл содержит идентифицирующую информацию, алгоритм подписи и цифровую подпись. Давайте создадим ваш первый CSR и закрытый ключ.

Чтобы создать CSR, выполните приведенную ниже команду. Затем OpenSSL предложит вам ввести некоторую идентифицирующую информацию, как показано на следующей демонстрации.

После завершения у вас будет действующий CSR и закрытый ключ, которые можно использовать для выдачи вам SSL-сертификата.

Значения по умолчанию в файле конфигурации можно изменить, чтобы упростить этот процесс, если вы не хотите вводить данные каждый раз при создании CSR.

Подробнее о доступных параметрах CSR и примерах конфигураций можно прочитать на справочных страницах. OpenSSL также имеет активный репозиторий GitHub с примерами.

Создание пар ключей RSA

Вы также можете создавать пары ключей RSA (открытый/закрытый) с помощью OpenSSL. Для этого сначала создайте закрытый ключ с помощью подкоманды genrsa, как показано ниже.

При выполнении приведенной ниже команды OpenSSL в Windows 10 сгенерирует закрытый ключ RSA с длиной ключа 2048 бит. Этот ключ генерируется практически сразу на современном оборудовании. Полученный ключ выводится в рабочий каталог

Затем сгенерируйте открытый ключ, используя закрытый ключ, который вы только что создали с помощью подкоманды rsa. Приведенный ниже синтаксис создаст открытый ключ с именем rsa.public в рабочем каталоге из закрытого ключа rsa.private.

Создание самозаверяющего сертификата

Иногда вам может потребоваться создать самозаверяющий сертификат. Самозаверяющие сертификаты подходят для использования в лаборатории, но не являются безопасной практикой для использования в производственной среде.

Давайте создадим самозаверяющий сертификат, прежде чем переходить к следующей задаче. Для этого введите команду ниже, чтобы создать SSL-сертификат X509. Этот сертификат будет использовать криптографию SHA256, которая будет действительна в течение 365 дней с использованием ключа RSA длиной 2048 бит. Сертификат будет сохранен в рабочем каталоге.

Теперь вы готовы импортировать сертификат в браузер или на сервер.

Проверка CSR, сертификатов и ключей с помощью OpenSSL

Начнем с проверки CSR с помощью команды req и некоторых параметров:

Такие данные, как название страны, название организации и адрес электронной почты, которые вы ввели при создании CSR в начале этого руководства, должны точно совпадать.

Вы также можете проверить сертификат с помощью подкоманды x509 с несколькими параметрами:

Преобразование сертификатов с помощью OpenSSL

В некоторых случаях приложение не использует определенный формат сертификата. Вы можете столкнуться с этой проблемой с приложением под названием HAproxy, например, для которого требуется сертификат PEM, когда у вас может быть сертификат в формате DER (.crt .cer .der).

Чтобы продемонстрировать преобразование сертификата, давайте преобразуем созданный ранее самоподписанный сертификат в формате DER (certificate.crt) в PEM. Для этого используйте код из следующего фрагмента кода.

Эта команда ниже использует подкоманду x509 с параметром -inform, который должен соответствовать формату файла -in, за которым следует формат -out.

Вы также можете изменить порядок, если хотите использовать формат DER из PEM, как показано ниже.

Устранение неполадок и отладка

Теперь, когда вы можете создавать и преобразовывать CSR, сертификаты и пары ключей, пришло время узнать, как устранять неполадки и отлаживать их. OpenSSL поставляется с командами, которые упрощают устранение неполадок.

OpenSSL также позволяет проверять сертификаты на целостность файлов и тестировать на возможное повреждение данных. Используя контрольную сумму MD5, вы можете использовать следующие примеры кода для проверки сертификатов, ключей и CSR:

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

Вот пример того, как выглядит этот код при запуске в PowerShell:

Пример вывода команды устранения неполадок с OpenSSL в PowerShell

Обзор

В этой статье вы узнали, как установить и настроить OpenSSL в Windows 10, создать CSR, пару ключей и сертификат SSL.Вы также узнали, как выполнять преобразование между различными форматами сертификатов и выполнять базовые действия по устранению неполадок с помощью встроенных подкоманд.

Дополнительные ресурсы

  • Справочная страница конфигурации OpenSSL
  • Команды OpenSSL
  • Онлайн-проверка SSL
  • Автоматическая установка SSL-сертификата IIS с помощью PowerShell
  • Как создавать самозаверяющие сертификаты с помощью PowerShell

Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.

Ещё от ATA Learning & Partners

Резервное копирование Office 365 для чайников

Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.

Руководства ATA

ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах. Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!

Некоторые люди, следуя моему руководству «Как сделать свой собственный сертификат с помощью OpenSSL», делают это в Windows, и некоторые из них сталкиваются с проблемами. Итак, в этом посте показана процедура для Windows.

Если вы не знаете, как использовать командную строку, или не хотите устанавливать OpenSSL для создания простого сертификата, я создал инструмент для Windows, не требующий установки: CreateCertGUI.

Для вашей информации: у меня также есть видео, показывающее это руководство.

Прежде всего, в Windows вам необходимо установить OpenSLL из двоичных файлов. Я получил эти двоичные файлы.

Я установил последнюю версию (v1.0.2a) и выбрал 32-разрядную версию (Win32). Я выбираю 32-разрядную версию, потому что она будет работать на любой машине Windows: 32-разрядная версия работает на 32-разрядных и 64-разрядных машинах.

Предупреждение: не используйте версию 1.1.0 или более позднюю, вы получите эту ошибку: "проблема с созданием объекта tsa_policy1=1.2.3.4.1"

Если вы запустите установку и получите следующее сообщение:

тогда вам необходимо отменить установку и сначала установить распространяемые компоненты Visual C++ 2008. Ссылки для скачивания вы найдете на той же странице. При установке Win32 OpenSSL (32-разрядная версия) установите распространяемые компоненты Visual C++ 2008, а при установке Win64 OpenSSL (64-разрядная версия) установите распространяемые компоненты Visual C++ 2008 (x64).

Установить распространяемые файлы очень просто:

После этого вы можете перезапустить установку OpenSSL:

Я создам сертификаты в папке c:\demo. Итак, создайте эту папку на своем компьютере.

Затем запустите командную строку (cmd.exe) и перейдите в папку demo (введите: cd \demo).

Перед запуском OpenSSL необходимо установить 2 переменные среды:

set RANDFILE=c:\demo\.rnd
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

Теперь вы можете запустить OpenSSL, введите: c:\OpenSSL-Win32\bin\openssl.exe:

С этого момента команды те же, что и в моем «Как сделать свой собственный сертификат с помощью OpenSSL».

Сначала мы создаем ключ RSA длиной 4096 бит для нашего корневого ЦС и сохраняем его в файле ca.key:

genrsa -out ca.key 4096

Если вы хотите защитить этот ключ паролем, добавьте параметр -des3.

Далее мы создаем наш самозаверяющий корневой сертификат CA ca.crt; вам нужно будет предоставить удостоверение для вашего корневого ЦС:

req -new -x509 -days 1826 -key ca.key -out ca.crt

Опция -x509 используется для самоподписанного сертификата. 1826 дней дают нам сертификат, действительный в течение 5 лет.

Следующий шаг: создайте наш подчиненный ЦС, который будет использоваться для фактической подписи. Сначала сгенерируйте ключ:

genrsa -out ia.key 4096

Затем запросите сертификат для этого подчиненного ЦС:

req -new -key ia.key -out ia.csr

Убедитесь, что введенное здесь общее имя отличается от общего имени, введенного ранее для корневого ЦС. Если они совпадают, позже при создании файла pkcs12 вы получите сообщение об ошибке.

Следующий шаг: обработайте запрос на сертификат подчиненного ЦС и подпишите его корневым ЦС.

x509 -req -days 730 -in ia.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ia.crt

Сертификат будет действителен в течение 2 лет (730 дней), и я решил выбрать для этого сертификата собственный серийный номер 01 (-set_serial 01). Для корневого ЦС я позволяю OpenSSL генерировать случайный серийный номер.

На этом все! Конечно, есть много вариантов, которые я не использовал. Обратитесь к документации OpenSSL для получения дополнительной информации. Например, я не ограничивал использование ключа подчиненного центра сертификации цифровыми подписями. Его можно использовать для чего угодно, даже для создания еще одного подчиненного ЦС. Когда вы покупаете сертификат подписи кода, компания CA ограничит его использование подписью кода. И я не использовал пароли для защиты своих ключей. В производственной среде вы хотите защитить свои ключи с помощью паролей.

Чтобы использовать этот подчиненный ключ ЦС для подписей Authenticode с инструментом подписи Microsoft, вам необходимо упаковать ключи и сертификаты в файл PKCS12:

pkcs12 -export -out ia.p12 -inkey ia.key -in ia.crt -chain -CAfile ca.crt

Если вы не указали разные общие имена для корневого ЦС и промежуточного ЦС, вы получите следующую ошибку:

Чтобы подписать исполняемые файлы в Windows с помощью инструмента подписи: установите файл ia.p12 в хранилище сертификатов (например, дважды щелкните его), а затем используйте инструмент подписи /wizard для подписи вашего PE-файла.

Сертификаты (файлы .crt), созданные здесь, также можно дважды щелкнуть в Windows, чтобы просмотреть/установить их:

Читайте также: