15 подписчиков

Как сделать запрос для госуслуг на SSL сертификат подлинности сайта.

165 прочитали

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

Сертификат SSL/TLS —цифровой объект, который позволяет интегральным системам идентифицировать личность(подлинность) и впоследствии, устанавливать зашифрованное сетевое соединение с другой системой, с использованием протокола Secure Sockets Layer/Transport Layer Security (SSL/TLS). Сертификаты используются в рамках криптографической системы, известной как инфраструктура открытого ключа (PKI)

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

Таким образом, сертификаты SSL/TLS действуют как цифровые удостоверения личности для защиты сетевых подключений и установления подлинности веб-сайтов/страниц в Интернете, а также ресурсов в частных сетях, сертификат может подтверждать разрешение на доступ к общим ресурсам в интрасети.

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

бесплатный сертификат безопасности сайта получают напрямую через сервис госулуг, Третьей стороной (центром сертификации) в этом случае является Министерство Цифрового Развития.

Ну и к слову:

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

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

Для начала необходимо установить в систему программу OpenSSL

*Лицензирование (это может быть кому то важно) проекта основано на использование лицензии Apache 2.0 вместо ранее применяемой собственной лицензии OpenSSL, основанной на тексте устаревшей лицензии Apache 1.0. Старая лицензия требует явного упоминания OpenSSL в рекламных материалах при использовании библиотек OpenSSL, а также добавления специального примечания в случае поставки OpenSSL в составе продукта. Подобные требования делают старую лицензию несовместимой с GPL, что создаёт трудности при использовании OpenSSL в проектах с лицензией GPL.

Для обхода данной несовместимости GPL-проекты вынуждены были применять специфичные лицензионные соглашения, в которых основной текст GPL дополнялся пунктом, явно разрешающим связывание приложения с библиотекой OpenSSL и упоминающим, что требования GPL не распространяется на связывание с OpenSSL. Без данного пункта распространителям приложения можно предъявить претензию в нарушении GPL.*

Скачать данную программу, для среды операционной системы Windows®, можно по ссылке https://slproweb.com/products/Win32OpenSSL.html

Надеюсь и думаю, что установить программу, ни у кого не вызовет труда. Единственно, что может произойти, это надо ещё установить Microsoft® Visual C++ 2015. Потому что когда её нет: при запуске команд она выдаёт ошибку vcruntime140.dll (отсутствие файла, или как то так, я уже не помню).

После необходимой подготовки, для запуска программы OpenSSL необходимо пройти в установленный каталог C:\Program Files\OpenSSL-Win64 (для 64 битной версии Windows®)

И запустить командный запускаемый файл start.bat, обязательно сделать это правой кнопкой мыши нажав пункт в меню "запуск от имени администратора"

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

Введите в командную строку:

cd C:\Program Files\OpenSSL-Win64

Теперь мы действительно там, где нужно.

Конфигурационный файл *.cnf

Именно такой способ проще и надёжней, создаём файл конфигурации romaschka.ru.cnf (согласно Вашему домену, ромашку я взял для примера, да, не обязательно писать *точка ру*, название не имеет значительной роли, никакой функции не даёт)

И так, у нас есть файл конфигурации для создания запроса на сертификат.

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

Правильным (актуальность версии OpenSSLv3.1.0 на апрель 2023г), он должен выглядеть так:

#

# OpenSSL configuration file.

#

# Establish working directory.

dir = .

[req]

prompt = no

distinguished_name = dn

utf8 = yes

[dn]

C = RU

ST = Москва

L = Москва # city Moscow

O = ООО "Ромашка" # My company

OU = ООО "Ромашка" # My dept

CN = *.romaschka.ru

Иначе будут проблемы и ошибки, из-за использования русских букв в кодировке utf8, командная строка по умолчанию использует другую кодировку, просмотреть её можно, в консоли командной строки, введя:

Chcp

Эта команда выводит текущую кодировку.

Для переключения на utf8 вводим в командную строку:

Chcp 65001

Можно ввести и другие кодировки согласно идентификаторам кодовой страницы по ссылке https://learn.microsoft.com/ru-ru/windows/win32/intl/code-page-identifiers

Но пока, нам это не надо.

И мы просто помещаем этот файл в корень диска C:

И так, приступаем к главному.

Создаём запрос на сертификат, да именно запрос. Так везде. Не только у нас. Да, есть возможность создавать самозаверенные сертификаты, но они не будут работать во всемирной сети. Так как нужна ещё третья сторона – тот самый центр сертификации. К которому мы, собственно, этот запрос и создаём.

Команда создания ключа с запросом вводится в консоль командной строки так:

openssl req -out C:\romaschka.ru.csr -new -addext "keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName = DNS:romaschka.ru, DNS:www.romaschka.ru, DNS:*.romaschka.ru " -addext "extendedKeyUsage = serverAuth" -config C:\romaschka.ru.cnf -newkey rsa:2048 -nodes -keyout C:\romaschka.ru.key

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

Пути я взял с корня диска C:, так проще.

Ну, или ищем легкий путь.

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

Применимо к: Windows 10 (все выпуски), Windows Server 2012 R2

Оригинальный номер базы знаний: 102739 microsoft.learn

Так же я опустил из инструкции использование команды кодировки, она уже прописана в файле romaschka.ru.cnf

После нажатия кнопки “enter” в окне командной строки, у нас появляется красивая картинка

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

И два дополнительных файла:

romaschka.ru.csr и romaschka.ru.key

нам нужен только файл с расширением *.csr и его содержимое, его и будем отсылать в госуслуги и размещать на сайте.

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

openssl req -in C:\romaschka.ru.csr -noout -text

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

К новым проблемам администраторов сайтов, в браузеры, добавилась поддержка сертификата подлинности сайта.-2

Но у нас есть вариант

Ввести в командную строку это:

Chcp 65001

И потом так:

openssl req -in C:\romaschka.ru.csr -noout -text -nameopt utf8

*если не смените кодировку через chcp, то у вас будут буквыцифры/цифрыбуквы…

К новым проблемам администраторов сайтов, в браузеры, добавилась поддержка сертификата подлинности сайта.-3

что тоже не очень разборчиво.

Но у нас теперь всё на своих местах.