- Что такое самоподписанный сертификат ssl?
- Инструменты криптопро
- Криптографический арм на базе стандартов с открытым ключом. выпуск ssl-сертификатов. эпилог
- Криптопро csp
- Предпосылки
- Создание подписанного документа
- Создание самоподписанного ssl-сертификата
- Создание самоподписанного ssl-сертификата без запроса
- Установка сертификатов
- Заключение
- Вывод
Что такое самоподписанный сертификат ssl?
Самозаверяющий сертификат SSL – это сертификат, подписанный лицом, которое его создало, а не доверенным центром сертификации. Самозаверяющие сертификаты могут иметь тот же уровень шифрования, что и доверенный CA-подписанный SSL-сертификат.
Самозаверяющие сертификаты, признанные действительными в любом браузере. Если вы используете самозаверяющий сертификат, веб-браузер покажет посетителю предупреждение о том, что сертификат веб-сайта невозможно проверить.
Самозаверяющие сертификаты в основном используются для целей тестирования или внутреннего использования. Вы не должны использовать самозаверяющий сертификат в производственных системах, которые подключены к Интернету.
Инструменты криптопро
Для работы с ЭЦП запустите утилиту “Инструменты КриптоПро”. В ней собраны все необходимые инструменты для работы с ЭЦП
Криптографический арм на базе стандартов с открытым ключом. выпуск ssl-сертификатов. эпилог

Вот мы и
добрались
до создания самоподписанных сертификатов.
Где применяются самоподписанные сертификаты? Конечно, с самоподписанным сертификатом вы не сможете зарегистрироваться на сайте Госуслуг или подать подписанную декларацию в ФНС. Но для внутрикорпоративного документооборота их вполне можно использовать. Можно также использовать их для защиты личной почтовой переписки, в VPN-сетях и т.п. Но наиболее часто используют самоподписанные SSL-сертификаты для обеспечения защищенного доступа по https-протоколу к Web-приложениям. Самым популярным средством для создания самоподписанных сертификатов остается
OpenSSL
. Процедура получения SSL-сертификатов с помощью того же OpenSSL хороша описана
здесь
. Но там вы не найдете упоминая о ГОСТ-овых сертификатах, о токенах
PKCS#11
и т.п. Здесь мы рассмотрим простой графический интерфейс, который позволяет получать сертификаты на базе ГОСТ Р 34.10-2021 и без всякого использования OpenSSL.
Итак, нажимаем кнопку «Самоподписанный сертификат»:
Как видим, эта вкладка мало чем отличается от аналогичной вкладки при создании запроса на сертификат. Здесь появились кнопки выбора типа генерируемого сертификата «Тип сертификата»:
— пользовательский сертификат (кнопка User);
— корневой сертификат (кнопка CA);
— SSL-сертификат (кнопка SSL).
Естественно, начинать работу надо с выпуска корневого сертификата, на базе которого затем будут выпускаться все остальные сертификаты. При создании корневого сертификата не забудьте включить флажок «Подпись сертификата» в назначении (использование) ключа:
Опускаем заполнение основных полей сертификата, они ничем не отличаются от заполнения аналогичных полей для запроса, а сразу переходим к завершающим страницам. Вот первая из них:
На этой странице необходимо выбрать папку, в которой будет сохранен корневой сертификат и его закрытый ключ. Именно эту папку затем необходимо будет указывать при выпуске других сертификатов. Необходимо также определить срок действия сертификата. Можно задать также точку, в которой можно будет получить корневой сертификат. При выпуске сертификат и закрытый ключ будут упакованы в так многими любимый защищенный контейнер PKCS#12. В связи с этим необходимо задать пароль для контейнера. В итоге, после нажатия кнопки «Finish», будет получен корневой сертификат:
При выпуске сертификата мы получаем четыре файла в указанном каталоге:
- rootCA.cer с самим сертификатом в формате (PEM/DER), который выбрали;
- rootCA.csr с запросом на сертификат;
- кootCA.pfx защищенный на пароле контейнер PKCS#12 с сертификатом и закрытым ключом;
- rootCA.key с закрытым ключом в формате (PEM/DER), который выбрали.
Файл rootCA.key, если вы не собираетесь его использовать, лучше сразу уничтожить. В противном случае храните его в месте, недоступном другим людям. Также скрывайте от посторонних глаз пароль к контейнеру rooCA.pfx.
Теперь, когда мы имеем корневой сертификат, можно приступить к выпуску пользовательских сертификатов, включая SSL-сертификаты:
После выбора типа сертификата (SSL-сертификат), типа ключа, его параметров и как он (ключ) будет использоваться, переходим к следующей странице:
На этой странице задается основное имя домена, которое будет занесено в поле Common Name, а также можно задать дополнительные (альтернативные ) имена вашего домена. Также можно прописать IP-адреса, где может располагаться ваш домен. Все это делается ради “вожделенного зеленого замочка“.
Разобравшись с доменами, IP-адресами переходим к следующим вкладкам. Там все как обычно. Единственное отличие состоит в том, что после нажатия кнопки «Finish» будет затребован пароль к корневому контейнеру rootCA.pfx:
После успешного ввода пароля также получим четыре файла:
Все замечания, касающиеся пароля и закрытого ключа, высказанные выше применительно к корневому сертификату, относятся и к остальным сертификатом. Все сертификаты мы выпустили. Что дальше?
Использовать их. Если это пользовательские сертификаты, то вы их можете использовать в этой же утилите через контейнеры PKCS#12, в документообороте для подписания документов, например:
Что касается 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
и идем по одному из этих адресов:
Горит, горит «вожделенный зеленый замочек».
Проверим и остальные адреса:
Зелено вокруг. И наконец, посмотрим какой шифрсьют мы задействовали:
Для создания самоподписанных сертификатов по созданным ранее запросам на сертификат расширен функционал страницы «Просмотр запроса/сертификата»:
Как видно из скриншота, теперь можно не только просмотреть запрос, но и выдать по нему сертификат. В качестве корневого сертификата используется все тот же контейнер rootCA.pfx. При нажатии кнопки «Выпуск» появится окно с запросом, просмотрев который вы можете нажать кнопку «Выпуск сертификата»:
После нажатия кнопки будет запрошен пароль к корневому контейнеру и в итоге выпущен сертификат:
Кстати, просмотреть полученный сертификат можно на этой же странице (кнопка «Файл сертификата»).
Итак, наша криптографическая утилита cryptoarmpkcs позволяет:
— работать с токенами PKCS#11 с поддержкой российской криптографии;
— создавать запросы на сертификаты;
— создавать и проверять электронную подпись (вплоть до CAdes XLT1) с использованием токенов PKCS#11;
— создавать электронную подпись (вплоть до CAdes XLT1) с использованием контейнеров PKCS#12;
— выпускать самоподписанные сертификаты;
— просматривать сертификаты и запросы.
Наверное, что-то в ней не хватает, подскажите, учтем. Спасибо за долготерпение.
P.S. Теперь загружать обновленные версии можно непосредственно из утилиты. Для этого достаточно подвести курсор мыши на заголовок «PKCS#11, X509v3 …», нажать правую клавишу мыши и выбрать пункт меню «О программе»:
Криптопро 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. Теперь, когда у вас есть сертификат, вы можете настроить приложение для его использования.