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

Создание самоподписанного сертификата SSL Электронная цифровая подпись

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

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

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

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

Инструменты криптопро

Для работы с ЭЦП запустите утилиту “Инструменты КриптоПро”. В ней собраны все необходимые инструменты для работы с ЭЦП

Криптографический арм на базе стандартов с открытым ключом. выпуск ssl-сертификатов. эпилог

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

Вот мы и

добрались

до создания самоподписанных сертификатов.

Где применяются самоподписанные сертификаты? Конечно, с самоподписанным сертификатом вы не сможете зарегистрироваться на сайте Госуслуг или подать подписанную декларацию в ФНС. Но для внутрикорпоративного документооборота их вполне можно использовать. Можно также использовать их для защиты личной почтовой переписки, в VPN-сетях и т.п. Но наиболее часто используют самоподписанные SSL-сертификаты для обеспечения защищенного доступа по https-протоколу к Web-приложениям. Самым популярным средством для создания самоподписанных сертификатов остается

OpenSSL

. Процедура получения SSL-сертификатов с помощью того же OpenSSL хороша описана

здесь

. Но там вы не найдете упоминая о ГОСТ-овых сертификатах, о токенах

PKCS#11

и т.п. Здесь мы рассмотрим простой графический интерфейс, который позволяет получать сертификаты на базе ГОСТ Р 34.10-2021 и без всякого использования OpenSSL.

Итак, нажимаем кнопку «Самоподписанный сертификат»:

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

Как видим, эта вкладка мало чем отличается от аналогичной вкладки при создании запроса на сертификат. Здесь появились кнопки выбора типа генерируемого сертификата «Тип сертификата»:
— пользовательский сертификат (кнопка User);
— корневой сертификат (кнопка CA);
— SSL-сертификат (кнопка SSL).
Естественно, начинать работу надо с выпуска корневого сертификата, на базе которого затем будут выпускаться все остальные сертификаты. При создании корневого сертификата не забудьте включить флажок «Подпись сертификата» в назначении (использование) ключа:

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

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

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

На этой странице необходимо выбрать папку, в которой будет сохранен корневой сертификат и его закрытый ключ. Именно эту папку затем необходимо будет указывать при выпуске других сертификатов. Необходимо также определить срок действия сертификата. Можно задать также точку, в которой можно будет получить корневой сертификат. При выпуске сертификат и закрытый ключ будут упакованы в так многими любимый защищенный контейнер PKCS#12. В связи с этим необходимо задать пароль для контейнера. В итоге, после нажатия кнопки «Finish», будет получен корневой сертификат:

Читайте также:  Установка АРМ генерации ключей и создание ключей

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

При выпуске сертификата мы получаем четыре файла в указанном каталоге:

  • rootCA.cer с самим сертификатом в формате (PEM/DER), который выбрали;
  • rootCA.csr с запросом на сертификат;
  • кootCA.pfx защищенный на пароле контейнер PKCS#12 с сертификатом и закрытым ключом;
  • rootCA.key с закрытым ключом в формате (PEM/DER), который выбрали.

Файл rootCA.key, если вы не собираетесь его использовать, лучше сразу уничтожить. В противном случае храните его в месте, недоступном другим людям. Также скрывайте от посторонних глаз пароль к контейнеру rooCA.pfx.

Теперь, когда мы имеем корневой сертификат, можно приступить к выпуску пользовательских сертификатов, включая SSL-сертификаты:

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

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

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

На этой странице задается основное имя домена, которое будет занесено в поле Common Name, а также можно задать дополнительные (альтернативные ) имена вашего домена. Также можно прописать IP-адреса, где может располагаться ваш домен. Все это делается ради “вожделенного зеленого замочка“.
Разобравшись с доменами, IP-адресами переходим к следующим вкладкам. Там все как обычно. Единственное отличие состоит в том, что после нажатия кнопки «Finish» будет затребован пароль к корневому контейнеру rootCA.pfx:

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

После успешного ввода пароля также получим четыре файла:

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

Все замечания, касающиеся пароля и закрытого ключа, высказанные выше применительно к корневому сертификату, относятся и к остальным сертификатом. Все сертификаты мы выпустили. Что дальше?
Использовать их. Если это пользовательские сертификаты, то вы их можете использовать в этой же утилите через контейнеры PKCS#12, в документообороте для подписания документов, например:

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

Что касается SSL-сертификатов, то их надо использовать по назначению для организации защищенного канала с Web-приложением. В качестве такого приложения мы взяли УЦ, на котором доступ к его ресурсам для администраторов организован по ГОСТ-вому https. УЦ развернуто на базе Apache2-2.4.10 с модулем mod_ssl, который поддерживает российские шифрсьюты. На сервере (у нас это Linux) кладем полученный SSL-сертификат (<ваш каталог>/self_xxx.cer) и его закрытый ключ (<ваш каталог>/sel_xxx.key) в папку /etc/ssl и прописываем пути к ним в файле /etc/apache2/sites-available/default-ssl:

...
SSLCertificateFile <ваш каталог>/self_xxx.cer
SSLCertificateKeyFile <ваш каталог>/self_xxx.key
....

Перезапускаем apache2:

#service pache2 restart
#

На рабочем месте (у меня это Linux) в

браузере с поддержкой российской криптографии

устанавливаем наш корневой сертификат (/rootCA.cer) с указанием доверия к нему. На рабочем компьютере в файл /etc/hosts добавляем следующую строку:

192.168.0.233 www.shield-ra.ru shield-ra.ru shield-ra

и идем по одному из этих адресов:

Читайте также:  Избавляемся от ошибки 0x80090016 "Неправильный зарегистрированный набор ключей"

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

Горит, горит «вожделенный зеленый замочек».
Проверим и остальные адреса:

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

Зелено вокруг. И наконец, посмотрим какой шифрсьют мы задействовали:

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

Для создания самоподписанных сертификатов по созданным ранее запросам на сертификат расширен функционал страницы «Просмотр запроса/сертификата»:

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

Как видно из скриншота, теперь можно не только просмотреть запрос, но и выдать по нему сертификат. В качестве корневого сертификата используется все тот же контейнер rootCA.pfx. При нажатии кнопки «Выпуск» появится окно с запросом, просмотрев который вы можете нажать кнопку «Выпуск сертификата»:

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

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

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

Кстати, просмотреть полученный сертификат можно на этой же странице (кнопка «Файл сертификата»).
Итак, наша криптографическая утилита cryptoarmpkcs позволяет:
— работать с токенами PKCS#11 с поддержкой российской криптографии;
— создавать запросы на сертификаты;
— создавать и проверять электронную подпись (вплоть до CAdes XLT1) с использованием токенов PKCS#11;
— создавать электронную подпись (вплоть до CAdes XLT1) с использованием контейнеров PKCS#12;
— выпускать самоподписанные сертификаты;
— просматривать сертификаты и запросы.
Наверное, что-то в ней не хватает, подскажите, учтем. Спасибо за долготерпение.
P.S. Теперь загружать обновленные версии можно непосредственно из утилиты. Для этого достаточно подвести курсор мыши на заголовок «PKCS#11, X509v3 …», нажать правую клавишу мыши и выбрать пункт меню «О программе»:

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

Криптопро csp

Для подписи электронных документов, будем использовать программное обеспечение КриптоПро CSP.

Использование иных криптографических программ под административную ответственность руководителей и лиц, использующих ПО СКЗИ, не имеющих действующего сертификата соответствия ФСБ РФ.

Предпосылки


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

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

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

Создание подписанного документа

Подписать можно абсолютно любой файл. 

Перейдите в пункт “Создание подписи”

Нажмите на кнопку “Выбрать файл для подписи” и выберите файл, который нужно подписать.

Выберите подпись, которой необходимо подписать документ. Обратите внимание – ЭЦП должно быть актуальной. 

После выбора ЭЦП станет активной кнопка “Подписать”. Необходимо её нажать. Если документ подписан и нет ошибок – под кнопкой “подписать появится соответствующая надпись. Либо будет указана ошибка с кодом.

Далее перейдите в папку, где хранился подписываемый документ, в нем будет два файла – сам документ и его подпись. Размещать или пересылать необходимо оба документа.

Читайте также:  Настройка сайта Госуслуги для работы с ЭЦП

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

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

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

  • -newkey rsa:4096 – Создает новый запрос сертификата и 4096-битный ключ RSA. Значение по умолчанию составляет 2048 бит.
  • -x509 – Создает сертификат X.509.
  • -sha256 – Используйте 265-битный SHA (алгоритм безопасного хэширования).
  • -days 3650 – Количество дней для сертификации сертификата. 3650 – это 10 лет. Вы можете использовать любое положительное целое число.
  • -nodes – Создает ключ без ключевой фразы.
  • -out example.crt – Указывает имя файла, в который будет записан вновь созданный сертификат. Вы можете указать любое имя файла.
  • -keyout example.key – Задает имя файла, в который будет записан вновь созданный закрытый ключ. Вы можете указать любое имя файла.

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

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

Generating a RSA private key
......................................................................    
........    
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

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

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

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

Generating a RSA private key
......................................................................    
........    
writing new private key to 'example.key'
-----


Поля, указанные в

-subj

строке, перечислены ниже:

  • C= – Название страны. Двухбуквенное сокращение ISO.
  • ST= – Название штата или провинции.
  • L= – Название населенного пункта. Название города, в котором вы находитесь.
  • O= – Полное название вашей организации.
  • OU= – Организационная единица.
  • CN= – Полное доменное имя.

Установка сертификатов

Используя Инструменты КриптоПро, перейдите в пункт меню “Сертификаты” и установите сертификат Федерального казначейства в “доверенные корневые центры сертификации”.

Затем повторите процедуру для ЭЦП сотрудника, выбрав место установки сертификата “Личное”. Подготовка завершена.

Заключение

Инструкцию делал для подведов. Писал максимально простым языком. Если кому то пригодится в работе – буду рад.

Ссылка на исходник инструкции в виде брошюры на Гугл диске

Вывод


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

Оцените статью
ЭЦП Эксперт
Добавить комментарий