Установка сертификата и закрытого ключа

Установка сертификата и закрытого ключа Сертификаты

Что такое сертификат ssl? как работает ssl?

Сертификат Secure Socket Layer (SSL) — это протокол безопасности, который защищает данные между двумя компьютерами с использованием шифрования.

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

Как правило, сертификаты SSL используются на веб-страницах, которые передают и получают конфиденциальные данные конечного пользователя, такие как номер социального страхования, данные кредитной карты, домашний адрес или пароль. Онлайн формы оплаты являются хорошим примером и обычно шифруют вышеупомянутую деликатную информацию с использованием 128 или 256-битной технологии SSL.

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

Что такое запрос на подпись сертификата (csr)?

Запрос на подпись сертификата (CSR — Certificate Signing Request) содержит наиболее важную информацию о вашей организации и домене. Это зашифрованный блок текста, который включает информацию о вашей организации, такую как страна, адрес электронной почты, полное доменное имя и так далее Он отправляется в центр сертификации при подаче заявки на сертификат SSL.

Обычно вы генерируете пару CSR и ключ локально на сервере, где будет установлен сертификат SSL. Однако это не строгое правило. Вы можете сгенерировать пару CSR и ключ на одном сервере и установить сертификат на другом. Однако это усложняет ситуацию. Мы рассмотрим и этот сценарий.

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

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

CSR обычно содержит следующую информацию:

1 Подготовка CA

Создадим конфигnano ca.config

со следующим содержимым:

[ ca ]
default_ca = CA_CLIENT # При подписи сертификатов # использовать секцию CA_CLIENT

[ CA_CLIENT ]
dir = ./db # Каталог для служебных файлов
certs = $dir/certs # Каталог для сертификатов
new_certs_dir = $dir/newcerts # Каталог для новых сертификатов

database = $dir/index.txt # Файл с базой данных подписанных сертификатов
serial = $dir/serial # Файл содержащий серийный номер сертификата (в шестнадцатеричном формате)
certificate = ./ca.crt # Файл сертификата CA
private_key = ./ca.key # Файл закрытого ключа CA

default_days = 365 # Срок действия подписываемого сертификата
default_crl_days = 7 # Срок действия CRL
default_md = md5 # Алгоритм подписи

policy = policy_anything # Название секции с описанием политики в отношении данных сертификата

[ policy_anything ]
countryName = optional # Поля optional - не обязательны, supplied - обязательны
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = optional
emailAddress = optional

Далее надо подготовить структуру каталогов и файлов, соответствующую описанной в конфигурационном файле

Apache

При использовании библиотеки OpenSSL в Apache закрытый ключ по умолчанию сохраняется в /usr/local/ssl. Запустите openssl version –a, команду OpenSSL, которая определяет, какую версию OpenSSL вы используете.

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

OpenSSL 1.0.2g  1 Dec 2021

built on: reproducible build, date unspecified

platform: debian-amd64

options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)

compiler: cc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -

D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-

strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-

Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -

DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -

DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -

DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM

OPENSSLDIR: "/usr/lib/ssl"

Последняя строка OPENSSLDIR определяет путь к файлу. В приведенном примере это местоположение по умолчанию /usr/lib/ssl.

Macos — chrome и safari

1. Дважды кликните на корневом сертификате (ca.crt).

2. Выберите нужную связку ключей [keychain] (login, если вы хотите, чтобы сертификат считался доверенным только в вашем аккаунте, или System, если сертификат должен считаться доверенным во всей системе).

3. Добавьте сертификат.

4. Откройте «Keychain Access» (если еще не открыт).

5. Выделите keychain, который выбрали раньше.

6. Вы должны увидеть сертификат MY-CA (это будет имя, которое вы, как CN, дали вашему источнику сертификата).

7. Дважды кликните по сертификату.

8. Разверните «Доверять» и выберите опцию «Доверять всегда» в пункте «При использовании этого сертификата».

9. Закройте окно сертификата и введите свой пользовательский пароль (если требуется).

Windows (iis)

На серверах, работающих под управлением Windows Internet Information Services, операционная система сохраняет закрытый ключ в скрытой папке, так же как любая обычная ОС Windows хранит важные системные данные.

Однако, экспортируя файл .pfx, вы можете получить закрытый ключ и сертификаты. Для этого выполните следующие действия:

  1. Откройте консоль управления MMC (Microsoft Management Console).
  2. Разверните дерево Сертификаты (локальный компьютер), расположенное в корне консоли.
  3. Ваш сертификат находится либо в личной папке, либо в папке веб-хостинга. Вы можете идентифицировать каждый сертификат по его Common name (домену)
  4. Щелкните правой кнопкой мыши сертификат, который вы хотите экспортировать, и выберите Все задачи -> Экспорт.
  5. Следуйте инструкциям мастера для экспорта файла .pfx.

Теперь у вас есть то, что вам нужно, если вы хотите сохранить резервную копию или установить сертификат на другом сервере Windows.

Если вам нужно установить сертификат на другом сервере, который не работает под управлением Windows (например, Apache), вам необходимо сконвертировать файл .pfx и разделить файлы .key и .crt или .cer. Вы можете сделать это с OpenSSL.

Windows 10 — chrome, ie11 и edge

1. Дважды кликните на сертификате (ca.crt).

2. Кликните на кнопку «Установить сертификат».

3. Выберите, хотите ли вы хранить его на уровне пользователя или на уровне машины.

4. Кликните «Дальше».

5. Выберите «Разместить все сертификаты в следующем хранилище».

6. Кликните «Обзор».

7. Выберите «Доверенные корневые источники сертификатов».

8. Кликните «ОК».

9. Кликните «Дальше».

10. Кликните «Завершить».

11. Если появится подсказка, кликните «Да».

Вариант 1: создать csr

Первое, что нужно сделать, — это создать 2048-битную пару ключей RSA локально. Эта пара будет содержать как ваш закрытый, так и открытый ключ. Вы можете использовать инструмент Java key или другой инструмент, но мы будем работать с OpenSSL.

Чтобы создать открытый и закрытый ключ с запросом на подпись сертификата (CSR), выполните следующую команду OpenSSL:

openssl req –out certificatesigningrequest.csr -new -newkey rsa:2048 -nodes -keyout privatekey.key

Что эта команда означает:

  • openssl — активирует программное обеспечение OpenSSL
  • req — указывает, что мы хотим CSR
  • –out — указывает имя файла, в котором будет сохранен ваш CSR. У нас в примере это certificatesigningrequest.csr
  • –new –newkey — создать новый ключ
  • rsa:2048 — cгенерировать 2048-битный математический ключ RSA
  • –nodes — нет DES, то есть не шифровать закрытый ключ в PKCS#12 файл
  • –keyout — указывает домен, для которого вы генерируете ключ

Далее ваша система должна запустить текстовую анкету для заполнения, которую мы описывали в таблице выше:

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

После завершения работы программы вы сможете найти файл CSR в вашем рабочем каталоге. Запрос на подпись сертификата, сгенерированный с помощью OpenSSL, всегда будет иметь формат файла .csr. Чтобы найти в папке все файлы этого формата используйте команду

ls *.csr

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

Также вы можете открыть файл .csr в текстовом редакторе, например nano, чтобы просмотреть сгенерированный буквенно-цифровой код.

sudo nano your_domain.csr

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

openssl req -in server.csr -noout -text

Далее можно декодировать CSR и убедиться, что он содержит правильную информацию о вашей организации, прежде чем он будет отправлен в центр сертификации. В Интернете существует множество CSR-декодеров, которые могут помочь вам сделать то же самое, просто скопировав содержимое файла CSR, например sslshopper.

Восстанавливаем пароль подписи

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

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

Про сертификаты:  Свидетельство о государственной регистрации RU.77.01.34.008.Е.006696.09.13

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

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

Закрытый ключ

Закрытый ключ кодируется и создается в формате PEM на основе Base-64, который не читается человеком. Вы можете открыть его в любом текстовом редакторе, но все, что вы увидите, это несколько десятков строк, которые кажутся случайными символами, заключенными в открывающие и закрывающие заголовки. Ниже приведен пример закрытого ключа:

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCVqGpH2S7F0CbEmQBgmbiDiOOGxhVwlG yY/6OBQoPKcx4Jv2h
vLz7r54ngjaIqnqRNP7ljKjFLp5zhnAu9GsdwXbgLPtrmMSB MVFHTJvKjQ eY9p
dWA3NbQusM9uf8dArm 3VrZxNHQbVGXOIAPNHTO08cZHMSqIDQ6OvLma7wIDAQAB
AoGAbxKPzsNh826JV2A253svdnAibeSWBPgl7kBIrR8QWDCtkH9fvqpVmHa 6pO5
5bShQyQSCkxa9f2jnBorKK4 0K412TBM/SG6Zjw DsZd6VuoZ7P027msTWQrMBxg
Hjgs7FSFtj76HQ0OZxFeZ8BkIYq0w 7VQYAPBWEPSqCRQAECQQDv09M4PyRVWSQM
S8Rmf/jBWmRnY1gPPEOZDOiSWJqIBZUBznvOPOOQSH6B vee/q5edQA2OIaDgNmn
AurEtUaRAkEAn7/65w Tewr89mOM0RKMVpFpwNfGYAj3kT1mFEYDq iNWdcSE6xE
2H0w3YEbDsSayxc36efFnmr//4ljt4iJfwJAa1pOeicJhIracAaaa6dtGl/0AbOe
f3NibugwUxIGWkzlXmGnWbI3yyYoOta0cR9fvjhxV9QFomfTBcdwf40FgQJAH3MG
DBMO77w8DK2QfWBvbGN4NFTGYwWg52D1Bay68E759OPYVTMm4o/S3Oib0Q53gt/x
TAUq7IMYHtCHZwxkNQJBAORwE 6qVIv/ZSP2tHLYf8DGOhEBJtQcVjE7PfUjAbH5
lr  9qUfv0S13gXj5weio5dzgEXwWdX2YSL/asz5DhU=
-----END RSA PRIVATE KEY-----

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

Инструкция по генерации ключа электронной подписи

Оглавление

1.  Перед началом генерации.

2.  Установка приложения.

3.  Предоставление доступа.

4.  Установка КриптоПРО CSP.

5.  Установка драйвера для токена.

6.  Формирование запроса на сертификат.

7.  Запись сертификата на ключевой носитель.

ОСНОВНЫЕ ПОНЯТИЯ

КСКПЭП  квалифицированный сертификат ключа проверки электронной подписи.
КЭП – квалифицированная электронная подпись.

Криптопровайдер – средство защиты криптографической защиты информации. Программа с помощью которой генерируется закрытая часть электронной подписи и которая позволяет производить работу с электронной подписью. Данная галочка проставляется автоматически.

Экспортируемый ключ – возможность копирования электронной подписи на другой носитель. При отсутствии галочки копирование электронной подписи будет невозможно.

ЛКМ – левая кнопка мыши.

ПКМ – правая кнопка мыши.

CRM-AGENT – приложение, разработанное специалистами УЦ для упрощения процедуры генерации ключевой пары, создания запроса и записи сертификата.

После посещения удостоверяющего центра и прохождения процедуры сверки личности, на указанную Вами в заявлении электронную почту, УЦ прислал письмо, содержащее ссылку для генерации. Если Вы не получали письма, обратитесь к Вашему менеджеру или в Техническую поддержку УЦ по контактному номеру из этого руководства.

Откройте ссылку для генерации из письма в одном из рекомендуемых браузеров: Google ChromeMozilla FirefoxYandex.Браузер. Если Вы уже находитесь в одном из вышеперечисленных браузеров, кликните по ссылке ЛКМ или ПКМ > «Открыть ссылку в новой вкладке». Страница генерации (Рис.1) откроется в новом окне.

При открытии ссылки, появится первоначальное предупреждение. Ознакомьтесь с ним, если для хранения КЭП вы используете носитель Jacarta LT. Подробнее о носителях в Таблице 1 ниже. Если используете иной носитель, то нажмите кнопку «Закрыть».

Рис.1 – Страница генерации

1

Нажмите на ссылку «Скачать приложение» для начала загрузки. Если ничего не произошло после нажатия, кликните по ссылке ПКМ > «Открыть ссылку в новой вкладке». После скачивания приложения запустите установку.

Рекомендуется отключить антивирусное ПО перед загрузкой программы!

В процессе установки приложения «crmagent» появится сообщение с запросом доступа (Рис.2).

Рис.2 – Запрос доступа

2

Нажмите кнопку «Да».

После окончания установки приложения вернитесь на страницу с генерацией. Появится сообщение о «Предоставлении доступа» (Рис.3).

Рис.3 – Доступ к хранилищу сертификатов

54

Нажмите «Продолжить» и, в появившемся окне, «Предоставить доступ» (Рис.4).

Рис.4 – Доступ к хранилищу сертификатов 2

5

Если не появилась кнопка «Продолжить»

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

Для устранения ситуации необходимо:

Отключить антивирус, установленный на вашем компьютере;

Открыть новую вкладку в браузере;

Ввести в адресную строку браузера адрес без пробелов — 127.0.0.1:90 – и перейти (нажать Enter на клавиатуре);

При появлении сообщения браузера «Ваше подключение не защищено», добавьте страницу в исключения браузера. Например, Chrome«Дополнительные» — «Все равно перейти на сайт». Для остальных браузеров воспользуйтесь соответствующей инструкцией разработчика.

После появления сообщения об ошибке, вернитесь на страницу с генерацией и повторите Пункт 2 данной инструкции.

В случае, если у вас отсутствуют предустановленные криптопровайдеры, после этапа предоставления доступа появятся ссылки для скачивания КриптоПРО (Рис.5).

Рис.5 – Загрузка КриптоПРО

6

Это важно: приложение «crmagent» обнаруживает любые криптопровайдеры на компьютере, и, если у Вас установлена отличная от КриптоПРО CSP программа (например, VipNET CSP), свяжитесь со специалистами технической поддержки УЦ для консультации.

Нажмите на ссылку «КриптоПРО 4.0» на странице генерации или на аналогичную ссылку ниже для загрузки файла установки КриптоПРО на компьютер.

КриптоПро CSP 4.0 – версия для ОС Win 7 / 8 / 10

После окончания загрузки откройте zip-архив с помощью соответствующей программы-архиватора (например, WinRAR). Внутри будет сам файл установки КриптоПРО. Запустите его и установите с параметрами по умолчанию. В процессе установки у Вас может появиться следующее окно:

Рис.5 – Установка КриптоПРО

7

Пропустите окно, нажав «Далее». Установка КриптоПРО завершена.

Подписи можно хранить в реестре компьютера, на обычных флеш-накопителях и на специальных usb-токенах. Список токенов, пин-коды и ссылки на ПО представлены в таблице ниже (Таблица 1).

Таблица 1 – Драйверы для защищенных носителей

Визуально определите ваш носитель.

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

Теперь Вы можете приступать к формированию запроса на сертификат. На экране у вас появится сообщение об этом (Рис.6). Нажмите кнопку «Продолжить» для начала формирования запроса.

Рис.6 – Начало формирования запроса

8

Откроется дополнительное окно с предложением выбрать, куда записать КЭП (Рис.7). Есть возможность выбрать в качестве носителя:

Реестр – хранилище «внутри» компьютера;

Диск {X} – обычный флэш-накопитель;

ARDS JaCarta Activ Co Rutoken 0 и т.п. – защищенный токен.

Рис.7 – Выбор носителя

15

Передвигая ползунок, выберите носитель для хранения КЭП и нажмите «ОК». Если был выбран «Реестр», то система в дальнейшем предупредит о возможном риске. Продолжите, если Вы осознанно выбрали реестр в качестве носителя для КЭП. Если случайно, то повторите формирование запроса повторно.

Это важно: в качестве хранилища КЭП для электронных торговых площадок можно использовать только защищенный носитель — токен. Если нет токена или драйвер установлен, но сам токен не работает, то свяжитесь со специалистами технической поддержки УЦ для консультации.

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

Рис.8 – Датчик случайных чисел

16

По окончанию процесса откроется окно с предложением задать пароль (Рис.8) для контейнера, если был выбран обычный флеш-накопитель или реестр. Рекомендуется не задавать пароль и пропускать данный пункт нажатием кнопки «ОК» без ввода и подтверждения пароля.

Рис.8 – Ввод пароля

17

Если вы выбрали в качестве носителя токен, тогда необходимо ввести pin-код. Стандартные pin-коды носителей указаны в Таблице 1 выше. Выбрать токен для хранения и пройти датчик случайных чисел может потребоваться дважды, так как на данный момент выпускается две аналогичные КЭП: по старому ГОСТ 2001 и по новому ГОСТ 2021.

Это важно: количество попыток ввода pin ограничено и, если pin введен неверно несколько раз, то носитель может быть заблокирован. В таком случае, свяжитесь со специалистами технической поддержки УЦ для консультации.

При успешном завершении генерации появится следующее (Рис.9) сообщение:

Рис.9 – Завершение генерации

18

Завершена процедура по созданию закрытой части ключа электронной подписи и отправка запроса на сертификат. Если в качестве носителя у Вас флеш-накопитель (флешка), то доступ к файлам электронной подписи открыт пользователям и антивирусному ПО. В таком случае есть риск утери закрытой части, после чего потребуется перевыпуск. Чтобы обезопасить себя от нежелательных последствий хранения КЭП на флеш-накопителе, сохраните копию папки с флеш-накопителя на своём компьютере и заархивируйте скопированный образец.

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

Спустя 5 минут после завершения этапа генерации, обновите страницу генерации, нажав клавишу F5 или соответствующую кнопку в браузере. Если запрос на выпуск сертификата уже одобрили, появится страница для записи сертификата в контейнер ключа (Рис.10). По ссылке из пункта 1 «Скачайте бланк для подписи» на этой странице скачайте бланк сертификата, распечатайте его. Владелец сертификата, на чье имя была выпущена КЭП, должен подписать бланк.

Рис.10 – Сертификат одобрен

19

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

Рис.11 – Бланк загружен

20

Кликните на ссылку «Записать сертификат на ключевой носитель», откроется дополнительное окно (Рис.12).

Рис.12 – Запись сертификата

21

Нажмите кнопку «Продолжить» — в появившемся окошке «Предоставить доступ». Для завершения записи кликните кнопку «Начать». Появится сообщение об успехе операции (Рис. 13).

Рис.12 – Завершение записи сертфиката

22

Все готово, электронная подпись успешно создана. Для проверки работоспособности КЭП, откройте письмо, которое придёт после создания КЭП. В письме будет содержаться ссылка на сервис по подписанию закрывающих документов с помощью электронной подписи. Пройдите процедуру подписания и скачайте подписанные документы.

Про сертификаты:  Как оформить сертификат на огнетушитель - услуги по сертификации

Скачать инструкцию

Источник сертификата (certificate authority)

1. Создайте закрытый ключ и самоподписанный сертификат

openssl req -x509 -nodes -new -sha512 
-days 365 -newkey rsa:4096 -keyout ca.key
-out ca.pem -subj "/C=US/CN=MY-CA"

Опционально: если необходимо, можно заменить MY-CA в CN на что-нибудь другое.

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

openssl x509 -in ca.pem -text -noout

2. Создайте файл сертификата с расширением .crt:

openssl x509 -outform pem -in ca.pem -out ca.crt

Как выпустить самоподписанный ssl сертификат и заставить ваш браузер доверять ему

Установка сертификата и закрытого ключа

Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2021 года.

На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.

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

openssl genrsa -out rootCA.key 2048

Затем сам сертификат:

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

Нужно будет ввести

страну

,

город

,

компанию

и т.д. В результате получаем два файла:

rootCA.key

и

rootCA.pem

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

Первый параметр обязателен, выведем небольшую инструкцию для пользователя.

if [ -z "$1" ]
then
  echo "Please supply a subdomain to create a certificate for";
  echo "e.g. mysite.localhost"
  exit;
fi

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

if [ -f device.key ]; then
  KEY_OPT="-key"
else
  KEY_OPT="-keyout"
fi

Запросим у пользователя название домена. Добавим возможность задания “общего имени” (оно используется при формировании сертификата):

DOMAIN=$1
COMMON_NAME=${2:-$1}

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

SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
NUM_OF_DAYS=999

В переменной SUBJECT перечислены все те же вопросы, который задавались при создании корневого сертификата (

страна

,

город

,

компания

и т.д). Все значение, кроме CN можно поменять на свое усмотрение.

Сформируем csr файл (Certificate Signing Request) на основе ключа. Подробнее о файле запроса сертификата можно почитать в этой статье.

openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr

Формируем файл сертификата

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

v3.ext

. Обращаю ваше внимание, что это отдельный файл, а не часть bash скрипта.

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%
DNS.2 = *.%%DOMAIN%%

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

v3.ext

Возвращаемся в наш bash скрипт. На основе вспомогательного файла v3.ext создаем временный файл с указанием нашего домена:

cat v3.ext | sed s/%%DOMAIN%%/$COMMON_NAME/g > /tmp/__v3.ext

Выпускаем сертификат:

openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext

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

mv device.csr $DOMAIN.csr
cp device.crt $DOMAIN.crt

# remove temp file
rm -f device.crt;

Скрипт готов. Запускаем его:

./create_certificate_for_domain.sh mysite.localhost

Получаем два файла:

mysite.localhost.crt

и

device.key

Теперь нужно указать web серверу пути к этим файлам. На примере nginx это будет выглядеть так:

nginx ssl

Запускаем браузер, открываем https://mysite.localhost и видим:

Установка сертификата и закрытого ключа

Браузер не доверяет этому сертификату. Как быть?

Нужно отметить выпущенный нами сертификат как Trusted. На Linux (Ubuntu и, наверное, остальных Debian-based дистрибутивах) это можно сделать через сам браузер. В Mac OS X это можно сделать через приложение Keychain Access. Запускаем приложение и перетаскиваем в окно файл mysite.localhost.crt. Затем открываем добавленный файл и выбираем Always Trust:

Установка сертификата и закрытого ключа

Обновляем страницу в браузере и:

Установка сертификата и закрытого ключа

Успех! Браузер доверяет нашему сертификату.

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

Делитесь в комментариях, используете ли вы https для локальной разработки?

Максим Ковтун,
Руководитель отдела разработки

Как установить бесплатный ssl-сертификат для своего сайта

Криптопро в помощь!

Если пользователю известен код администратора, то «обнулить» количество ввода пробных попыток пин-кода токена можно другим способом, использовав КриптоПроCSP, после входа в который в опции «Оборудование» выбираем команду «Настройка типов носителей». Из предложенных вариантов выбираем тип своего токена и открываем его свойства. После этого входим в раздел информации, где успешно снимаем блокировку пин-кода. Далее продолжаем подбор пин-кода токена.

В обоих случаях мы получаем лишь возможность продолжить подбор пин-кода. И если подобрать его не удается, то, как и в случае с навечно забытым паролем, придется обращаться в УЦ за новым сертификатом ЭЦП. Старый сертификат также потребуется отозвать, но при том можно повторно использовать токен, предварительно отформатировав его.

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

Лучшие онлайн-сервисы

В сети есть много сервисов с готовыми шаблонами для любых видов сертификатов и подарочных карт. Они бывают как платными, так и бесплатными.

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

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

123certificates – сайт с доступом к тематическим и универсальным дизайнам для любых графических работ. Позволяет быстро создать сертификат онлайн бесплатно. Можно менять шрифт, цвет, графику, размеры.

Adobe Spark – инструмент от компании Adobe: конструктор сертификатов, визиток, открыток. Для начала указываем размер, подбираем шаблон, затем добавляем рисунок и форматируем текст. Загружаем готовый файл на ПК и распечатываем.

Shopify – при регистрации на этой платформе можно создать сертификат для онлайн-покупок. Персонализация минимальна: добавить свой логотип.

Про сертификаты:  Альбом технических решений вентилируемый фасад с фиброцементными панелями

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

Настройка ssl

Теперь нужно создать другой сниппет, предназначенный для настроек SSL. Он позволит серверу Nginx использовать надёжный механизм шифрования и включит некоторые дополнительные функции безопасности.

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

sudo nano /etc/nginx/snippets/ssl-params.conf

Для безопасной настройки SSL обратимся к рекомендациям Remy van Elst на сайте Cipherli.st. Этот сайт предназначен для распространения простых и надёжных параметров шифрования для популярного программного обеспечения.

Примечание: Данный список настроек обеспечивает высокую защиту, но иногда это делается за счет совместимости с другими клиентами. Чтобы получить настройки для других клиентов, перейдите по ссылке Yes, give me a ciphersuite that works with legacy / old software. Скопируйте все предложенные параметры.

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

Сейчас нужно добавить DNS резолвер для upstream запросов. В руководстве для этого используется Google.

Также нужно отключить заголовок Strict-Transport-Security (HSTS), а также его функцию предварительной загрузки. Предварительная загрузка заголовка HSTS обеспечивает повышенную безопасность, но может иметь далеко идущие последствия, если заголовок был включен случайно или некорректно. В этом мануале мы не будем включать эту опцию, но вы можете изменить это позже, если уверены, что понимаете последствия.

Обновление сертификатов цс


Периодически необходимо обновлять сертификаты ЦС. Рассмотрим несколько аспектов, связанных с обновлением сертификатов ЦС.

Периодичность обновления сертификата ЦС

Это делается в следующих случаях:


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

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

Порядок обновления ЦС

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

Генерация ключей при обновлении сертификатов ЦС

При обновлении сертификатов ЦС вам предлагается две опции: использовать существующую ключевую пару или сгенерировать новую:

В диалоговом окне обновления ключевой пары приведены рекомендации Microsoft по выбору ключевой пары. Однако, практика показывает, что эти рекомендации устарели. Следует всегда генерировать новую ключевую пару. При использовании нескольких сертификатов ЦС клиентский модуль построения цепочки сертификатов иногда может ошибиться и выбрать неправильный сертификат. В базе знаний Microsoft отмечены такие проблемы. Примеры статей:


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

Подарочные сертификаты — природная женщина

Какой срок действия сертификата? 3 месяца со дня покупки.

Как можно купить? Просто, добавив в корзину и оформив заказ. После подтверждения заказа и оплаты – я перешлю тебе сертификат с кодом, который ты можешь распечатать и подарить.
Счастливая обладательница сертификата может связаться со мной через любую соц. сеть или по почте.
Как я могу с тобой связаться?
В контакте: https://my-sertif.ru/naturalwomen
В инстаграмме: Aroma.Earth

Я хочу персональное наполнение набора. Можно ли это сделать? Да, напиши мне по контактам выше. И мы что – нибудь для тебя подберем.

Входит ли в стоимость доставка? Да, в стоимость сертификата входит доставка набора почтой России.

Можно ли вернуть деньги после покупки сертификата, если, например, у меня изменились планы?
Нет, возврат сертификата невозможен.

Могу ли я с уверенностью сказать, что духи подойдут моей девушке (подруге, маме, сестре)? Конечно, нет. Вряд ли кто-то честно может дать такую гарантию. Но индивидуальный подход увеличивает шансы попадания в «десятку».

Предустановочная конфигурация

Если для корневого ЦС предустановочный конфигурационный файл нам не требовался, то для издающего ЦС он понадобится. В нём мы настроим расширения Certificate Policies и Basic Constraints для сертификата ЦС. Если с политиками всё понятно, то в расширении Basic Constraints мы запретим выдачу сертификатов другим ЦС с издающего ЦС, поскольку у нас двухуровневая иерархия и добавление новых уровней только усложняет нашу структуру и увеличивает время, затрачиваемое на проверку сертификатов клиентами.

  1. Контроллеры домена практически мгновенно обнаруживают появление ЦС в лесу и даже при отключённой политике автоматической выдачи сами запрашивают себе сертификаты.
  2. Администраторы сами должны определять какие шаблоны будут использовать в организации.

Поэтому мы сконфигурируем ЦС так, что список шаблонов к выдаче будет пустым. Это возможно сделать только через CAPolicy.inf. В нашем случае он будет иметь следующее содержимое:

Резервное копирование


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

Microsoft Active Directory Certificate Services предоставляет инструменты для резервного копирования компонентов ЦС:

С ними можно сделать резервную копию для ключевой пары ЦС и базы данных. Однако эти инструменты не позволяют делать резервную копию настроек ЦС. Эти операции необходимо выполнять вручную. Все настройки ЦС находятся в реестре по следующему пути:

HKLMSystemCurrentControlSetServicesCertSvc

При резервном копировании всегда экспортируйте данную ветку реестра. При восстановлении ЦС сохранённый REG файл импортируется обратно в реестр после установки роли ЦС.

Полный список элементов ЦС, который подлежит обязательному резервному копированию выглядит так:

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

Сертификат доменного имени

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

1. Создайте файл расширения x509 v3:

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
# Локальные хостинги
DNS.1 = localhost
DNS.2 = 127.0.0.1
DNS.3 = ::1
# Перечислите доменные имена
DNS.4 = local.dev
DNS.5 = my-app.dev
DNS.6 = local.some-app.dev
EOF

Следуя этому шаблону, можно добавить сколько угодно доменных имен.

Примечание: пожалуйста, обновите DNS.4, DNS.5 и DNS.6 или удалите их, если у вас не настроены никакие локальные доменные имена.

2. Создайте закрытый ключ и запрос на подпись сертификата:

openssl req -new -nodes -newkey rsa:4096 
-keyout localhost.key -out localhost.csr
-subj "/C=US/ST=State/L=City/O=Some-Organization-Name/CN=localhost"

Опционально: страну, штат, город и организацию можно изменять.

3. Создайте самоподписанный сертификат:

openssl x509 -req -sha512 -days 365 
-extfile v3.ext
-CA ca.crt -CAkey ca.key -CAcreateserial
-in localhost.csr
-out localhost.crt

Создайте сертификат ca и его ключ

Шаг 1: Создайте папку с именем cfssl для хранения всех сертификатов и перейдите в папку.

mkdir cfssl
cd cfssl

Шаг 2: Создайте файл ca-csr.json с необходимой информацией.

cat > ca-csr.json <<EOF
{
"CN": "Demo CA",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "US",
"L": "California",
"ST": "Milpitas"
}
]
}
EOF
cfssl print-defaults config
cfssl print-defaults csr

Шаг 3: Создайте ca-config.json с подписью и данными профиля.

Это будет использоваться для создания сертификатов сервера или клиента, которые можно использовать для настройки аутентификации на основе SSL / TSL.

cat > ca-config.json <<EOF 
{
"signing": {
"default": {
"expiry": "8760h"
},
"profiles": {
"web-servers": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "8760h"
}
}
}
}
EOF

Установка компонента цс


Прежде всего необходимо добавить установочные компоненты для AD CS:

Install-WindowsFeature AD-Certificate, ADCS-Cert-Authority -IncludeManagementTools

После этого посмотрим на установочную таблицу, чтобы определить параметры установки:

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

Install-AdcsCertificationAuthority -CACommonName "Contoso Lab Issuing Certification authority" `
    -CADistinguishedNameSuffix "OU=Division Of IT, O=Contoso Pharmaceuticals, C=US" `
    -CAType EnterpriseSubordinateCa `
    -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
    -KeyLength 4096 `
    -HashAlgorithmName SHA256

После выполнения этой команды будет выведено сообщение о том, что установка ЦС не завершена и для её завершения необходимо отправить сгенерированный запрос (находится в корне системного диска) на вышестоящий ЦС и получить подписанный сертификат. Поэтому находим файл с расширением «.req» в корне системного диска и копируем его на корневой ЦС и на корневом ЦС выполняем следующие команды:

Формат и стоимость подарочного сертификата

Активировать сертификат и получить консультацию по арома-тестированию можно как лично в нашем ателье, так и онлайн.

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

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

Стоимость при онлайн консультации – 25 000 рублей накладные расходы, связанные с доставкой (рассчитываются индивидуально, в зависимости от страны и города проживания).

Срок действия сертификата 6 месяцев.

* Запись на оказание услуги происходит предварительно, минимум за 7 дней до планируемой даты посещения ателье. Отмена или перенос записи осуществляется за 24 часа. Если вы не пришли и не предупредили о переносе за 24 часа, услуга считается оказанной.

Активация услуги осуществляется при наличии подарочного сертификата.

Подарочный сертификат не подлежит обмену на денежный эквивалент.

Оцените статью
Мой сертификат
Добавить комментарий