Durdoom

Durdoom

На Пикабу
поставил 733 плюса и 5 минусов
Награды:
5 лет на Пикабу
164 рейтинг 5 подписчиков 8 подписок 2 поста 0 в горячем

Google такой Google

Google такой Google Полезное, Познавательно

Пруф: https://policies.google.com/terms

Получение национального сертификата для своего домена (ЮЛ) через ГосУслуги

Здравствуйте дорогие Пикабушники.


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

Уважаемые "Минцифры" предложили решение в виде получения "НАШЕГО" ,"ОТЕЧЕСТВЕННОГО" сертификата для домена, пока что только для Юридических лиц (через личный кабинет Госуслуг).

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

Получение национального сертификата для своего домена (ЮЛ) через ГосУслуги Полезное, Госуслуги, TLS, Сертификат безопасности, Инструкция, Длиннопост

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


1. Для создания запроса на выпуск tls-сертификата предварительно установите приложение openssl.

Windows:

https://slproweb.com/products/Win32OpenSSL.html, там выбираете свою разрядность ОС: 32 или 64 (у меня 64)

Linux:

Да если у тебя линукс то для этого всего тебе вообще нечего не нужно объяснять:) привет красноглазикам и любителям man)

Далее откройте командную строку. В нашем случае CMD (Win+R и вводим cmd).


Если закрытого ключа нет то делаем так:


Windows

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

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -out test.csr -new -subj"/C=RU/ST=Moscow/L=Moscow/O=My super company/CN=*.mydomain.ru" -addext "keyUsage = digitalSignature,keyEncipherment" -addext "subjectAltName = DNS:mydomain.ru, DNS:www.mydomain.ru,DNS:*.mydomain.ru" -addext "extendedKeyUsage = serverAuth" -newkey rsa:2048 -nodes-keyout newKey.key


где:

• test.csr – наименование запроса, например, mydomain.csr

• C – двухбуквенный код страны, для России – RU

• ST – район, область, например, Moscow

• L – полное название города, например, Moscow

• O - официальное название организации, например, My super company

• CN – имя домена, на который оформляется TLS-сертификат. Например*.mydomain.ru.


Для доменных имён на русском языке следует указывать конвертированное с помощью метода punycode значение.

Например, кто.рф

При заполнении параметров ST/L/O/OU кириллицей необходимо создать в «C:\Program Files\OpenSSL-Win64\bin\cnf» конфигурационный файл mydomain.cnf, заполнить его так:

[req]

prompt = no

distinguished_name = dn

[dn]

C = RU

ST = Москва

L = Москва

O = Тестовая Организация

OU = Тестовый департамент

CN = *.mydomain.ru

и изменить команду перед выполнением:

«"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -out test.csr -new -addext"keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName =DNS:mydomain.ru, DNS:www.mydomain.ru, DNS:*.mydomain.ru" -addext"extendedKeyUsage = serverAuth" -utf8 -config "C:\ProgramFiles\OpenSSL-Win64\bin\cnf\mydomain.cnf" -newkey rsa:2048 -nodes -keyoutnewKey.key»

где:

• keyUsage – расширение, определяющее назначение ключа. В запросе обязательно должны присутствовать digitalSignature и keyEncipherment, иные –при необходимости

• subjectAltName – расширение, определяющее альтернативное имя субъекта(DNS-имя). Обязательно должно быть указано хотя бы одно значение. Пример записи: subjectAltName = DNS:mydomain.ru

• extendedKeyUsage – расширение, определяющее расширенное назначение ключа; в запросе обязательно должно присутствовать serverAuth, иные – при необходимости

• newKey.key – наименование нового ключа, например, mydomain.key


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

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -in "\path\to\test.csr" -noout-text»

,"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -in "\path\to\test.csr" -noout-text -nameopt utf8» - при заполнении параметров ST/L/O/OU кириллицей,

где:

• test.csr – наименование созданного запроса


Linux

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

openssl req -out test1.csr -new \-subj "/C=RU/ST=Moscow/L=Moscow/O=My super company/CN=*.mydomain.ru" \-addext "keyUsage = digitalSignature, keyEncipherment" \-addext "subjectAltName = DNS:mydomain.ru, DNS:www.mydomain.ru, DNS:*.mydomain.ru" \-addext "extendedKeyUsage = serverAuth" \-newkey rsa:2048 -nodes -keyout newKey.key

где:

• test1.csr – наименование запроса, например, mydomain.csr

• C – двухбуквенный код страны, для России – RU

• ST – район, область, например, Moscow

• L – полное название города, например, Moscow

• O - официальное название организации, например, My super company

• CN – имя домена, на который оформляется TLS-сертификат. Например,*.mydomain.ru.


Для доменных имён на русском языке следует указывать конвертированное с помощью метода punycode значение, например, кто.рф

При заполнении параметров ST/L/O/OU кириллицей в запросе укажите ключ «-utf8».

Например:

openssl req -out test1.csr -new -subj "/C=RU/ST=Москва/L=Москва/O=Тестовая Организация/OU=Тестовый департамент/CN=*.mydomain.ru" -addext"keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName =DNS:mydomain.ru, DNS:www.mydomain.ru, DNS:*.mydomain.ru" -addext"extendedKeyUsage = serverAuth" -utf8 newkey rsa:2048 -nodes -keyout newKey.key

где:

• keyUsage – расширение, определяющее назначение ключа. В запросе обязательно должны присутствовать digitalSignature и keyEncipherment, иные –при необходимости

• subjectAltName – расширение, определяющее альтернативное имя субъекта(DNS имя). Обязательно укажите хотя бы одно значение. Пример записи:subjectAltName = DNS:mydomain.ru.

• extendedKeyUsage – расширение, определяющее расширенное назначение ключа. В запросе обязательно должно присутствовать serverAuth, иные – при необходимости

• newKey.key – наименование нового ключа. Например, mydomain.key


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

«openssl req -in test1.csr -noout -text»

«openssl req -in test1.csr -noout -text -nameopt utf8» — при заполнении параметров ST/L/O/OU кириллицей

где:

• test1.csr – наименование созданного запроса



Двигаемся дальше, тем у кого есть ключ:

(Рекомендуется генерировать новый закрытый ключ всякий раз, когда вы генерируете файл CSR)


Windows

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

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -out test2.csr -new -subj"/C=RU/ST=Moscow/L=Moscow/O=My super company/CN=*.mydomain.ru" -addext "keyUsage = digitalSignature,keyEncipherment" -addext "subjectAltName = DNS:mydomain.ru, DNS:www.mydomain.ru,DNS:*.mydomain.ru" -addext "extendedKeyUsage = serverAuth" -key/path/to/existsKey.key

где:

• test2.csr – наименование запроса, например, mydomain.csr

• C – двухбуквенный код страны, для России – RU

• ST – район, область, например, Moscow

• L – полное название города, например, Moscow

• O - официальное название организации, например, My super company

• CN – имя домена, на который оформляется TLS-сертификат, например*.mydomain.ru.


Для доменных имён на русском языке следует указывать конвертированное с помощью метода punycode значение, например, кто.рф

При заполнении параметров ST/L/O/OU кириллицей необходимо создать в «C:\Program Files\OpenSSL-Win64\bin\cnf» конфигурационный файл mydomain.cnf, заполнить его так:

[req]

prompt = no

distinguished_name = dn

[dn]

C = RU

ST = Москва

L = Москва

O = Тестовая Организация

OU = Тестовый департамент

CN = *.mydomain.ru

и изменить команду перед выполнением:

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -out test2.csr -new -addext"keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName =DNS:mydomain.ru, DNS:www.mydomain.ru, DNS:*.mydomain.ru" -addext"extendedKeyUsage = serverAuth" -utf8 -config "C:\ProgramFiles\OpenSSL-Win64\bin\cnf\mydomain.cnf" -key /path/to/existsKey.key

где:

• keyUsage – расширение, определяющее назначение ключа; в запросе обязательно должны присутствовать digitalSignature и keyEncipherment, иные –при необходимости

• subjectAltName – расширение, определяющее альтернативное имя субъекта(DNS-имя). Обязательно должно быть указано хотя бы одно значение. Пример записи: subjectAltName = DNS:mydomain.ru

• extendedKeyUsage – расширение, определяющее расширенное назначение ключа; в запросе обязательно должно присутствовать serverAuth, иные – при необходимости

• newKey.key – наименование нового ключа, например, mydomain.key


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

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -in "\path\to\test2.csr" -noout-text»

«"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -in "\path\to\test2.csr" -noout-text -nameopt utf8» - при заполнении параметров ST/L/O/OU кириллицей

где:

• test2.csr – наименование созданного запроса


Linux

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

openssl req -out test3.csr -new \-subj "/C=RU/ST=Moscow/L=Moscow/O=My super company/CN=*.mydomain.ru" \-addext "keyUsage = digitalSignature, keyEncipherment" \-addext "subjectAltName = DNS:mydomain.ru, DNS:www.mydomain.ru,DNS:*.mydomain.ru" \-addext "extendedKeyUsage = serverAuth" \-key /path/to/existsKey.key

где:

• test2.csr – наименование запроса, например, mydomain.csr

• C – двухбуквенный код страны, для России – RU

• ST – район, область, например, Moscow

• L – полное название города, например, Moscow

• O - официальное название организации. Например, My super company

• CN – имя домена, на который оформляется TLS-сертификат. Например, mydomain.ru.


Для доменных имён на русском языке следует указывать конвертированное с помощью метода punycode значение, например,кто.рф

При заполнении параметров ST/L/O/OU кириллицей необходимо в запросе указывать ключ «-utf8».

Например:

openssl req -out test3.csr -new -subj "/C=RU/ST=Москва/L=Москва/O=Тестовая Организация/OU=Тестовый департамент/CN=*.mydomain.ru" -addext "keyUsage = digitalSignature,keyEncipherment" -addext "subjectAltName = DNS:mydomain.ru, DNS:www.mydomain.ru,DNS:*.mydomain.ru" -addext "extendedKeyUsage = serverAuth" -utf8 -key/path/to/existsKey.key

где:

• keyUsage – расширение, определяющее назначение ключа. В запросе обязательно должны присутствовать digitalSignature и keyEncipherment, иные –при необходимости

• subjectAltName – расширение, определяющее альтернативное имя субъекта(DNS-имя). Обязательно должно быть указано хотя бы одно значение. Пример записи: subjectAltName = DNS:mydomain.ru

• extendedKeyUsage – расширение, определяющее расширенное назначение ключа; в запросе обязательно должно присутствовать serverAuth, иные – принеобходимости

• existsKey.key – наименование существующего ключа, например, mydomain.key


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

openssl req -in test3.csr -noout -text

openssl req -in test3.csr -noout -text -nameopt utf8 - при заполнении параметров ST/L/O/OU кириллицей

где:

• test3.csr – наименование созданного запроса


Ну а дальше как говорится "Добро пожаловать" сюда: https://www.gosuslugi.ru/tls

Получение национального сертификата для своего домена (ЮЛ) через ГосУслуги Полезное, Госуслуги, TLS, Сертификат безопасности, Инструкция, Длиннопост

Первая ссылка ведет нас в мир невероятных приключений): "Проверь насколько глубока кроличья нора, Алиса"

Вторая покажет нам домены которые уже получили Национальный сертификат от Минцифры

Третья даст нам сертификат для добавления в корневые.


И самое главное не забудьте положить сгенерированный вами .csr файл в каталог /tls/ в корне вашего сайта. Пример: https://google.com/tls/test.csr

Именно такой путь необходимо указывать при заполнении заявления.

Показать полностью 2
Отличная работа, все прочитано!