Как создать самоподписанный сертификат для доменного имени для разработки?

Шаг 5 — Тестирование шифрования

Теперь мы готовы протестировать наш сервер SSL.

Откройте браузер и введите и доменное имя или IP-адрес вашего сервера в адресную панель:

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

Такое предупреждение нормально, и его следует ожидать. Сертификат нам нужен только для шифрования, а не для подтверждения подлинности нашего хоста третьей стороной. Нажмите «Дополнительно», а затем нажмите на указанную ссылку, чтобы перейти к своему хосту:

Теперь должен открыться ваш сайт. Если вы посмотрите в адресную строку браузера, вы увидите символ замка со знаком «x». В данном случае это означает, что сертификат не удается проверить. Ваше соединение все равно шифруется.

Если вы настроили Apache для перенаправления HTTP на HTTPS, вы можете проверить правильность перенаправления функций:

Если при этом появляется такой же значок, перенаправление работает правильно.

Экспорт сертификата клиента

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

  1. Чтобы экспортировать сертификат клиента, откройте раздел Управление сертификатами пользователей. По умолчанию создаваемые сертификаты клиента хранятся в папке Certificates — Current User\Personal\Certificates. Щелкните правой кнопкой мыши сертификат, который нужно экспортировать, выберите Все задачи, а затем — Экспорт, чтобы открыть мастер экспорта сертификатов.

  2. В мастере экспорта сертификатов нажмите кнопку Далее, чтобы продолжить.

  3. Выберите Да, экспортировать закрытый ключ, а затем нажмите кнопку Далее.

  4. На странице Формат экспортируемого файла оставьте настройки по умолчанию. Не забудьте установить флажок Включить по возможности все сертификаты в путь сертификации. При этом также будут экспортированы данные корневого сертификата, необходимые для успешной аутентификации клиента. Без этих данных аутентификация клиента завершится ошибкой, так как у клиента не будет доверенного корневого сертификата. Затем щелкните Далее.

  5. На странице Безопасность следует защитить закрытый ключ. Если вы решите использовать пароль, обязательно запишите или запомните пароль, заданный для этого сертификата. Затем щелкните Далее.

  6. На странице Имя экспортируемого файла нажмите кнопку Обзор, чтобы перейти в расположение для экспорта сертификата. В поле Имя файла введите имя для файла сертификата. Затем щелкните Далее.

  7. Нажмите кнопку Готово, чтобы выполнить экспорт сертификата.

Исходный Ответ

, В то время как можно создать самоподписанный сертификат для подписывания кода (SPC — Сертификат издателя программного обеспечения ) сразу, я предпочитаю делать следующее:

Создание самоподписанного центра сертификации (CA)

(^ = позволяют пакетной командной строке обертывать строку)

Это создает самоподписанный (-r) сертификат с экспортным закрытым ключом (-pe). Это называют «Моим CA» и нужно поместить в хранилище CA для текущего пользователя. Мы используем алгоритм SHA-256 . Ключ предназначен для подписания (-небо).

закрытый ключ должен быть сохранен в файле MyCA.pvk и сертификате в файле MyCA.cer.

Импорт сертификата

CA, поскольку нет никакого смысла в наличии сертификата CA, если Вы не доверяете ему, необходимо будет импортировать его в хранилище сертификатов Windows. Вы можете использовать Сертификаты обрыв MMC, но из командной строки:

Создание сертификата для подписывания кода (SPC)

Это — в значительной степени то же как выше, но мы обеспечиваем ключ выпускающего и сертификат (-ic и переключатели-iv).

Мы также захотим преобразовать сертификат и ключ в файл PFX:

, Если Вы хотите защитить файл PFX, добавьте — почтовый переключатель, иначе PVK2PFX создает файл PFX без пароля.

Используя сертификат для подписания кода

( Видят, почему метки времени могут иметь значение )

при импорте файла PFX в хранилище сертификатов (можно использовать PVKIMPRT или обрыв MMC), можно подписать код следующим образом:

Некоторые возможные URL метки времени для :

Загрузки

Для тех, кто не разработчики.NET, Вам будет нужна копия платформы.NET и Windows SDK. Текущая ссылка доступна здесь: SDK &.NET (который устанавливает makecert в ). Ваш пробег может варьироваться.

MakeCert доступен от Командной строки Visual Studio. Visual Studio 2015 действительно имеет его, и он может быть запущен из Меню «Пуск» в Windows 7 под «Командной строкой разработчика для VS 2015» или «Собственная Командная строка Инструментов VS2015 x64» (вероятно, все они в той же папке).

Передача корневого сертификата в параметры HTTP Шлюза приложений

Чтобы передать сертификат в Шлюз приложений, необходимо экспортировать CRT-сертификат в формат CER с кодировкой Base-64. Поскольку CRT-файл уже содержит открытый ключ в формате Base-64, просто измените расширение файла с CRT на CER.

Портал Azure

Чтобы отправить доверенный корневой сертификат с портала, выберите Параметры HTTP, а затем выберите протокол HTTPS.

Azure PowerShell

Для отправки корневого сертификата можно также использовать Azure CLI или Azure PowerShell. Следующий код является примером для Azure PowerShell.

Примечание

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

Проверка работоспособности серверной части шлюза приложений

  1. Выберите представление Оценка работоспособности серверной части вашего шлюза приложений, чтобы проверить работоспособность пробы.
  2. Для пробы HTTPS должно отображаться состояние Работоспособна.

Remarks

После создания PFX-файла можно использовать файл с помощью средства SignTool для подписания пакета приложения. Дополнительные сведения см. в разделе как подписать пакет приложения с помощью средства SignTool. Но сертификат по-прежнему не является доверенным для локального компьютера для развертывания пакетов приложений, пока он не будет установлен в хранилище доверенных сертификатов на локальном компьютере. Вы можете использовать Certutil.exe, который поставляется вместе с Windows.

Установка сертификатов с помощью WindowsCertutil.exe

  1. Запустите Cmd.exe от имени администратора.

  2. Выполните следующую команду:

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

CertID — серийный номер сертификата. Выполните следующую команду, чтобы определить серийный номер сертификата:

Creating a Self-Signed SSL Certificate

25 Мая 2020
|

Терминал

Что такое самоподписанный сертификат SSL?

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

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

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

Предпосылки 

Инструментарий openssl необходим для создания самозаверяющего сертификата.

Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте ваш терминал, введите и нажмите Enter. Если пакет установлен, система распечатает версию OpenSSL, в противном случае вы увидите нечто подобное .

Если пакет openssl не установлен в вашей системе, вы можете установить его, выполнив следующую команду:

  • Ubuntu и Debian

  • Чентос и Федора

Создание самоподписанного SSL-сертификата 

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

Давайте разберем команду и разберемся, что означает каждая опция:

  • — Создает новый запрос сертификата и 4096-битный ключ RSA. Значение по умолчанию составляет 2048 бит.
  • — Создает сертификат X.509.
  • — Используйте 265-битный SHA (алгоритм безопасного хэширования).
  • — Количество дней для сертификации сертификата. 3650 — это 10 лет. Вы можете использовать любое положительное целое число.
  • — Создает ключ без ключевой фразы.
  • — Указывает имя файла, в который будет записан вновь созданный сертификат. Вы можете указать любое имя файла.
  • — Задает имя файла, в который будет записан вновь созданный закрытый ключ. Вы можете указать любое имя файла.

Для получения дополнительной информации о параметрах команды посетите страницу документации OpenSSL req.

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

Введите запрашиваемую информацию и нажмите Enter.

Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду ls, чтобы убедиться, что файлы были созданы:

Это оно! Вы создали новый самозаверяющий сертификат SSL.

Всегда полезно создать резервную копию нового сертификата и ключа для внешнего хранилища.

Создание самоподписанного SSL-сертификата без запроса

Если вы хотите сгенерировать самозаверяющий SSL-сертификат без запроса какого-либо вопроса, используйте параметр и укажите всю информацию о субъекте:

Поля, указанные в строке, перечислены ниже:

  • — Название страны. Двухбуквенное сокращение ISO.
  • — Название штата или провинции.
  • — Название населенного пункта. Название города, в котором вы находитесь.
  • — Полное название вашей организации.
  • — Организационная единица.
  • — Полное доменное имя.

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

Создание сертификата сервера с помощью openssl

Создаем в нашем рабочем каталоге файл server.bat, который нам поможет создать сертификат сервера на основе нашего CA-сертификата (в приложенном архиве уже создан).

mkdir server 
SETFILENAME=server\server
openssl.exe req -new -keyout %FILENAME%.key -out %FILENAME%.csr -sha256 -config SigningCA.cfg 
openssl.exe ca -in %FILENAME%.csr -out %FILENAME%.crt -config SigningCA.cfg -extensions server_ext
openssl.exe pkcs12 -export -inkey %FILENAME%.key -in %FILENAME%.crt -out %FILENAME%.pfx

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

IP.1       = 127.0.0.1IP.2       = 127.0.0.2DNS.1      = box.example.ruDNS.2      = example.ru

Исполняем server.bat. Вводим пароль для нового сертификата. Далее вводим пароль от нашего CA-ключа TestRootCA.key. Подтверждаем подпись сертификата. Для экспорта вводим еще раз пароль от server.key и пароль для экспорта, который нужно будет ввести при импорте server.pfx в веб-сервис (он может быть пустым). В результате, в каталоге server будут получены файлы для импорта в веб-сервис:

server.crtserver.csrserver.keyserver.pfx

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

Используйте командлет New-SelfSignedCertificate для создания самозаверяющего корневого сертификата. Дополнительные сведения о параметре см. в разделе New-SelfSignedCertificate.

  1. На компьютере под управлением Windows 10 или Windows Server 2016 откройте консоль Windows PowerShell с повышенными привилегиями. Эти примеры не запускаются через кнопку «Попробовать» в Azure Cloud Shell. Их нужно запустить локально.

  2. Используйте следующий пример для создания самозаверяющего корневого сертификата. Следующий пример создает самозаверяющий корневой сертификат P2SRootCert, который автоматически устанавливается в папку Certificates-Current User\Personal\Certificates. Этот сертификат можно просмотреть, открыв файл certmgr.msc или раздел Управление сертификатами пользователей.

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

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

Настройка веб-сервера Apache на использование SSL-сертификата

После копирования файлов сертификата сайта и Центра Сертификации необходимо отредактировать параметры вашего веб-сервера Apache. Для этого подключитесь к вашему серверу по SSH от имени пользователя root и выполните следующие операции:

  1. Активируйте использование опции SSL веб-сервером Apache: Ubuntu/Debian:a2enmod ssl CentOS:yum install mod_ssl
  2. Откройте файл конфигурации сайта, для которого вы хотите установить SSL-сертификат. Например, если параметры веб-сайта хранятся в файле /etc/apache2/sites-enabled/000-default.conf: nano /etc/apache2/sites-enabled/000-default.conf Примечание: На Ubuntu/Debian файлы параметров сайтов Apache как правило находятся в директории /etc/apache2/sites-enabled/ . На CentOS стандартное расположение – /etc/httpd/conf.d/Для поиска нужной конфигурации вы можете использовать команду ls /директория/конфигураций (напр. ls /etc/apache2/sites-enabled), которая отображает полный список файлов в указанной директории. Затем с помощью команды nano вы можете открыть определенный файл (напр. nano /etc/apache2/sites-enabled/000-default.conf). Проверить, что открытый файл действительно является конфигурацией вашего сайта можно, найдя в нем строку ServerName. Ее значение должно соответствовать домену, для которого вы устанавливаете SSL-сертификат (напр. www.mydomain.ru) Примечание для CentOS: если редактор nano не установлен на вашем сервере, вы можете установить его с помощью команды yum install nano
  3. Добавьте приведенные ниже параметры в открытый файл конфигурации: SSLEngine on SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key Где:/etc/ssl/mydomain.ru_crt.crt – путь до файла сертификата вашего сайта /etc/ssl/mydomain.ru_ca.crt – путь до файла цепочки сертификатов Центра Сертификации (CA) /etc/ssl/mydomain.ru_key.key – путь к файлу вашего закрытого ключа

Примечание: если вы хотите, чтобы после установки SSL-сертификата ваш сайт был доступен только по безопасному протоколу https (порт 443), отредактируйте файл его конфигурации по аналогии с приведенным ниже Примером 1. Если же вы хотите, чтобы сайт также оставался по-прежнему доступен по незащищенному протоколу http (порт 80), воспользуйтесь Примером 2. Вносимые изменения выделены жирным шрифтом.

# The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request’s Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.mydomain.ru ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, . trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog $/error.log CustomLog $/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with “a2disconf”. #Include conf-available/serve-cgi-bin.conf SSLEngine on SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key

Пример 2 (HTTPS + HTTP):

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

На каждом клиентском компьютере, который подключается к виртуальной сети с помощью подключения типа «точка —сеть», должен быть установлен сертификат клиента. Вы можете создать сертификат клиента из самозаверяющего корневого сертификата, а затем экспортировать и установить его. Если сертификат клиента не установлен, произойдет сбой аутентификации.

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

В примерах используется командлет New-SelfSignedCertificate для создания сертификата клиента, срок действия которого истекает через год. Дополнительные сведения о параметре, например о задании другого значения срока действия сертификата клиента, см. в разделе New-SelfSignedCertificate.

Пример 1. Сеанс консоли PowerShell по-прежнему открыт

Если вы не закрыли консоль PowerShell после создания самозаверяющего корневого сертификата, воспользуйтесь этим примером. Этот пример является продолжением предыдущего раздела и в нем используется переменная $cert. Если вы закрыли консоль PowerShell после создания самозаверяющего корневого сертификата или создаете дополнительные сертификаты клиента в новом сеансе консоли PowerShell, выполните инструкции, описанные в .

Измените и запустите пример, чтобы создать сертификат клиента. Если выполнить этот пример, не изменив его, то будет создан сертификат клиента P2SChildCert. Если требуется указать другое имя дочернего сертификата, измените значение CN. Не изменяйте TextExtension при выполнении данного примера. Сертификат клиента, который создается, автоматически устанавливается в папку Certificates — Current User\Personal\Certificates на компьютере.

Пример 2. Новый сеанс консоли PowerShell

Если вы создаете дополнительные сертификаты клиента или не используете тот же сеанс PowerShell, в котором был создан самозаверяющий корневой сертификат, выполните следующее.

  1. Определите самозаверяющий корневой сертификат, установленный на компьютере. Этот командлет возвращает список сертификатов, установленных на компьютере.

  2. Найдите имя субъекта в полученном списке, а затем скопируйте отпечаток, расположенный рядом с ним, в текстовый файл. В следующем примере указано два сертификата. CN-имя — это имя самозаверяющего корневого сертификата, на основе которого требуется создать дочерний сертификат. В данном случае это P2SRootCert.

  3. Объявите переменную для корневого сертификата, используя отпечаток из предыдущего шага. Замените THUMBPRINT отпечатком корневого сертификата, на основе которого требуется создать дочерний сертификат.

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

  4. Измените и запустите пример, чтобы создать сертификат клиента. Если выполнить этот пример, не изменив его, то будет создан сертификат клиента P2SChildCert. Если требуется указать другое имя дочернего сертификата, измените значение CN. Не изменяйте TextExtension при выполнении данного примера. Сертификат клиента, который создается, автоматически устанавливается в папку Certificates — Current User\Personal\Certificates на компьютере.

Создание и установка сертификатов клиента

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

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

На каждом клиентском компьютере, который подключается к виртуальной сети с помощью подключения типа «точка —сеть», должен быть установлен сертификат клиента. Вы можете создать сертификат клиента из самозаверяющего корневого сертификата, а затем экспортировать и установить его. Если сертификат клиента не установлен, произойдет сбой аутентификации.

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

  1. На компьютере, на котором вы создали самозаверяющий сертификат, откройте командную строку от имени администратора.

  2. Измените и запустите пример, чтобы создать сертификат клиента.

    • Замените P2SRootCert именем самозаверяющего корня, из которого создается сертификат клиента. Убедитесь, что вы используете имя корневого сертификата. Это значение «CN =», которое было указано при создании самозаверяющего корневого сертификата.
    • Замените P2SChildCert именем, которое следует использовать для создаваемого сертификата клиента.

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

Экспорт сертификата клиента

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

  1. Чтобы экспортировать сертификат клиента, откройте раздел Управление сертификатами пользователей. По умолчанию создаваемые сертификаты клиента хранятся в папке Certificates — Current User\Personal\Certificates. Щелкните правой кнопкой мыши сертификат, который нужно экспортировать, выберите Все задачи, а затем — Экспорт, чтобы открыть мастер экспорта сертификатов.

  2. В мастере экспорта сертификатов нажмите кнопку Далее, чтобы продолжить.

  3. Выберите Да, экспортировать закрытый ключ, а затем нажмите кнопку Далее.

  4. На странице Формат экспортируемого файла оставьте настройки по умолчанию. Не забудьте установить флажок Включить по возможности все сертификаты в путь сертификации. При этом также будут экспортированы данные корневого сертификата, необходимые для успешной аутентификации клиента. Без этих данных аутентификация клиента завершится ошибкой, так как у клиента не будет доверенного корневого сертификата. Затем щелкните Далее.

  5. На странице Безопасность следует защитить закрытый ключ. Если вы решите использовать пароль, обязательно запишите или запомните пароль, заданный для этого сертификата. Затем щелкните Далее.

  6. На странице Имя экспортируемого файла нажмите кнопку Обзор, чтобы перейти в расположение для экспорта сертификата. В поле Имя файла введите имя для файла сертификата. Затем щелкните Далее.

  7. Нажмите кнопку Готово, чтобы выполнить экспорт сертификата.

Шаг 1 – Создание сертификата SSL

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

Мы можем создать самоподписанный ключ и пару сертификатов OpenSSL с помощью одной команды:

Вам будет предложено ответить на ряд вопросов. Прежде чем перейти к этому шагу, посмотрим, что делает отправляемая нами команда:

  • openssl: это базовый инструмент командной строки для создания и управления сертификатами OpenSSL, ключами и другими файлами.
  • req: данная субкоманда указывает, что мы хотим использовать управление запросами подписи сертификатов X.509 (CSR). X.509 — это стандарт инфраструктуры открытых ключей, используемый SSL и TLS для управления ключами и сертификатами. Вы хотим создать новый сертификат X.509, и поэтому используем эту субкоманду.
  • -x509: это дополнительно изменяет предыдущую субкоманду, сообщая утилите, что мы хотим создать самоподписанный сертификат, а не сгенерировать запрос на подпись сертификата, как обычно происходит.
  • -nodes: этот параметр указывает OpenSSL пропустить опцию защиты сертификата с помощью пароля. Для чтения этого файла при запуске сервера без вмешательства пользователя нам потребуется Apache. Кодовая фраза может предотвратить это, поскольку нам придется вводить ее после каждого перезапуска.
  • -days 365: данный параметр устанавливает срок, в течение которого сертификат будет считаться действительным. Здесь мы устанавливаем срок действия в один год.
  • -newkey rsa:2048: указывает, что мы хотим генерировать новый сертификат и новый ключ одновременно. Мы не создали требуемый ключ для подписи сертификата на предыдущем шаге, и поэтому нам нужно создать его вместе с сертификатом. Часть указывает, что мы создаем ключ RSA длиной 2048 бит.
  • -keyout: эта строка указывает OpenSSL, где мы разместим создаваемый закрытый ключ.
  • -out: данный параметр указывает OpenSSL, куда поместить создаваемый сертификат.

Как мы указывали выше, эти опции создают и файл ключа, и сертификат. Нам будет задано несколько вопросов о нашем сервере, чтобы правильно вставить информацию в сертификат.

Укажите подходящие ответы. Самая важная строка — это строка, где запрашивается . Вам нужно ввести доменное имя, связанное с вашим сервером или, что более вероятно, публичный IP-адрес вашего сервера.

В целом диалоги выглядят примерно так:

Оба созданных вами файла будут помещены в соответствующие подкаталоги в каталоге .

Полученный сертификат

Обе приведенные выше команды создают сертификат для доменов и . Версия Win10 дополнительно имеет срок службы 15 лет и читаемое отображаемое имя «Dev Cert * .dev.local, dev.local, localhost».

Обновление: если вы укажете несколько записей имени хоста в параметре (как показано выше), первая из этих записей станет темой домена (AKA Common Name). Полный список всех записей имен хостов будет храниться в поле Subject Alternative Name (SAN) сертификата. (Спасибо @BenSewards за указание на это.)

После создания сертификат будет немедленно доступен в любых HTTPS-привязках IIS (инструкции ниже).

Создание самоподписанного сертификата удостоверяющего центра с помощью пакета OpensSSL

Для создания сертификатов в нашем примере была использована библиотека OpenSSL 1.0.2a 19 Mar 2015 (подробнее на сайте http://openssl.org/).

Создаем рабочий каталог для создания в нем сертификатов. В нем каталог для базы данных, который будет использовать пакет openssl. В нем создаем два файла db.txt и db.crt.srl в кодировке ANSI. В оба файла записываем «01» без переводов строк и иных данных. Размер файлов должен быть строго 2 байта. Эти файлы будут использовать наши конфигурационные файлы для openssl. (в приложенном архиве файлы db уже созданы)

Для удобства в нашем рабочем каталоге создаем файл ca.bat (в приложенном архиве уже создан):

mkdir TestRootCA
SET FILENAME=TestRootCA\TestRootCA
openssl.exe req -new -keyout %FILENAME%.key -out %FILENAME%.csr -config RootCA.cfg 
openssl.exe ca -selfsign -in %FILENAME%.csr -out %FILENAME%.crt -config RootCA.cfg -extensions root_ca_ext
openssl.exe x509 -inform PEM -outform DER -in %FILENAME%.crt -out %FILENAME%der.crt            

Исполняем ca.bat. Вводим пароли и подтверждаем подпись сертификата. В результате мы получим в каталоге TestRootCA следующие файлы, которые следует установить на устройстве:

TestRootCA.crtTestRootCA.csrTestRootCA.keyTestRootCAder.crt

Инструкции

Шаг 1. Определение имени издателя пакета

чтобы сделать сертификат подписи, который вы создадите, использовать с пакетом приложения, который необходимо подписать, имя субъекта сертификата подписи должно соответствовать атрибуту Publisher элемента Identity в AppxManifest.xml для этого приложения. Например, предположим, что AppxManifest.xml содержит:

Для параметра publisherName , указанного с помощью служебной программы MakeCert на следующем шаге, используйте «CN = Contoso Software, O = Contoso Corporation, C = US».

Примечание

Эта строка параметра указывается в кавычках и является учетом регистра и пробела.

строка атрибута Publisher , определенная для элемента Identity в AppxManifest.xml, должна совпадать со строкой, указанной с помощью параметра MakeCert /n для имени субъекта сертификата. Скопируйте и вставьте строку, где это возможно.

Шаг 2. создание закрытого ключа с помощью MakeCert.exe

Используйте служебную программу MakeCert для создания самозаверяющего тестового сертификата и закрытого ключа:

Эта команда предложит указать пароль для PVK-файла. Рекомендуется выбрать надежный пароль и защитить закрытый ключ в безопасном месте.

Рекомендуется использовать предлагаемые параметры из предыдущего примера по следующим причинам.

/r

Создает самозаверяющий корневой сертификат. Это упрощает управление тестовым сертификатом.

/h 0

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

/еку

Задает значения расширенного использования ключа (EKU) для сертификата.

Примечание

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

  • 1.3.6.1.5.5.7.3.3 указывает, что сертификат действителен для подписывания кода. Всегда указывайте это значение, чтобы ограничить предполагаемое использование сертификата.
  • 1.3.6.1.4.1.311.10.3.13 указывает, что сертификат учитывает время существования подписи. Как правило, если подпись имеет отметку времени, при условии, что сертификат был действителен в момент времени, подпись остается действительной, даже если срок действия сертификата истек. Это расширенное EKU заставляет срок действия подписи истечь независимо от того, имеет ли подпись время отметки.

/e

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

Дополнительные сведения о других параметрах см. в разделе MakeCert.

шаг 3. создание файла личных данных Exchange (. pfx) с помощью Pvk2Pfx.exe

Используйте служебную программу Pvk2Pfx для преобразования файлов. PVK и. cer, созданных средством MakeCert , в PFX-файл, который можно использовать с средством SignTool для подписания пакета приложения:

Файлы MyKey. PVK и MyKey. cer являются теми же файлами, которые MakeCert.exe созданы на предыдущем шаге. С помощью необязательного параметра/по можно указать другой пароль для результирующего PFX-файла; в противном случае PFX-файл имеет тот же пароль, что и MyKey. PVK.

Дополнительные сведения о других параметрах см. в разделе Pvk2Pfx.

Express.js

const https = require("https");const fs = require("fs");const express = require("express");// прочитайте ключиconst key = fs.readFileSync("localhost.key");const cert = fs.readFileSync("localhost.crt");// создайте экспресс-приложениеconst app = express();// создайте HTTPS-серверconst server = https.createServer({ key, cert }, app);// добавьте тестовый роутapp.get("/", (req, res) => {  res.send("this is an secure server");});// запустите сервер на порту 8000server.listen(8000, () => {  console.log("listening on 8000");});

Как только вы настроите обслуживающий ваше приложение инструмент на работу с вашим сертификатом, ваше приложение будет доступно по URL’у с HTTPS.

Следуя приведенному выше примеру с Express, вы можете открыть вкладку браузера по адресу https://localhost:8000 и увидеть ваш контент:

Погодите секунду! Где же сообщение «это защищенный сервер»?

Вы рассчитывали увидеть кое-что другое, но именно этого и следовало ожидать — потому что источник сертификата еще не входит в число доверенных.

Доверие к сертификатам

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

Использование в IIS

Теперь вы можете перейти в диспетчер IIS, выбрать привязки локального веб-сайта → Добавить → https → ввести имя хоста в форме (ваш сертификат действителен только для ) и выбрать новый сертификат. → ОК.

Добавить в хосты

Также добавьте имя вашего хоста в C: \ Windows \ System32 \ drivers \ etc \ hosts:

Счастливо

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

Firefox поддерживает собственное хранилище сертификатов. Чтобы добавить сюда свой сертификат, вы должны открыть свой веб-сайт в FF и добавить его в исключения, когда FF предупреждает вас о сертификате.

Для браузера Edge могут потребоваться дополнительные действия (см. Далее).

полученный сертификат

обе вышеуказанные команды создают сертификат для доменов и .
Версия Win10 дополнительно имеет время в реальном времени 15 лет и читаемое отображаемое имя «Dev Cert *.разработка.местный, Дев.local, localhost».

обновление: если вы предоставляете несколько записей имени хоста в параметре (как показано выше) первая из этих записей станет доменом Тема (АКА общее имя). Полный список всех записей имени хоста будет сохранен в поле альтернативное имя субъекта (SAN) сертификата. (Спасибо @BenSewards за указание на это.)

после создания сертификат будет немедленно доступен в любых привязках HTTPS IIS (инструкции ниже).

Создайте самозаверяющий сертификат в Windows 10 и ниже

Не используйте makecert.exe. Microsoft устарела. Современный способ использует команду Powershell.

Windows 10 .

Откройте Powershell с правами администратора:

Windows 8, Windows Server 2012 R2:

В Powershell в этих системах параметры -FriendlyName и -NotAfter не существуют. Просто удалите их из командной строки выше. Откройте Powershell с правами администратора:

Альтернативой является использование метода для более старой версии Windows ниже, который позволяет вам использовать все функции Win 10 для создания сертификатов …

Старые версии Windows:

Моя рекомендация для более старых версий Windows — создать сертификат на машине Win 10, экспортировать его в файл .PFX с помощью экземпляра mmc (см. «Доверять сертификату» ниже) и импортировать его в хранилище сертификатов на целевой машине с старая ОС Windows. Чтобы импортировать сертификат, НЕ щелкайте его правой кнопкой мыши. Хотя в контекстном меню есть пункт «Импортировать сертификат», все мои попытки использовать его на Win Server 2008 не удалось. Вместо этого откройте другой экземпляр mmc на целевой машине, перейдите в «Сертификаты (локальный компьютер) / Персональные / Сертификаты» щелкните правой кнопкой мыши среднюю панель и выберите Все задачи → Импорт.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: