Сертификат электронной подписи. Инструкция по первичному обращению

12.03.2018

ВАЖНО! Для получения электронной подписи (ЭП) в УЦ ООО «ПРОГРАММНЫЙ ЦЕНТР» используйте бесплатный функционал модуля «Удостоверяющей центр» или программы «Подпись Про» . Если данная возможность отсутствует, сформируйте запрос на сертификат и установите его через сайт .


Внимание!

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

До формирования запроса на сертификат выполните следующие действия:

  • КриптоПро ЭЦП browser plug-in .

Чтобы сформировать запрос на сертификат:

1) Запустите браузер Internet Explorer .

Примечание: если сайт УЦ не открывается, ознакомьтесь с инструкцией .

3) В открывшемся окне введите логин и пароль, которые были указаны в письме об успешной регистрации на сайте УЦ. Нажмите кнопку «Выполнить вход »:



Вход в личный кабинет


Подтверждение доступа в Интернет

Примечание 1: если у вас не установлен «КриптоПро ЭЦП browser plug - in », откроется сообщение:

Чтобы установить плагин, нажмите на соответствующую ссылку. Прямая на скачивание плагина также указана в письме с темой «Вы зарегистрированы в УЦ ».

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

5) Выберите вид сертификата, который был указан в заявлении на регистрацию в УЦ. Нажмите кнопку «Создать »:



Запрос на сертификат

6) В окне «КриптоПро CSP » выберите носитель для хранения контейнера закрытого ключа (ключа подписи), и нажмите кнопку «ОК ».

Внимание! Если вы хотите, чтобы контейнер закрытого ключа хранился:

  • на компьютере – выберите Реестр:


ВНИМАНИЕ! Если Вы установили контейнер закрытого ключа (ключа подписи) в реестр компьютера, перед переустановкой операционной системы обязательно выполните резервное копирование Ваших контейнеров на флеш-накопитель, иначе данные будут удалены с компьютера.

  • на съемном носителе (USB - накопителе, токене) – вставьте съемный носитель и выберите его в появившемся окне:


Выбор носителя для хранения контейнера закрытого ключа

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


Создание закрытого ключа

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

    токен (eToken, Рутокен) – в окне установки пароля введите пароль токена;

    USB- накопитель или реестр компьютера – придумайте и введите пароль. Пароль в данном случае можно не устанавливать.

Внимание! Обязательно запомните пароль для создаваемого контейнера закрытого ключа. Данный пароль восстановлению не подлежит.


Установка пароля для контейнера закрытого ключа

Внимание! Контейнер закрытого ключа не подлежит восстановлению. Ни при каких обстоятельствах не удаляйте его самостоятельно. При потере контейнера закрытого ключа необходим платный перевыпуск сертификата.

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



Запросы на сертификат

Созданный запрос отправлен в Удостоверяющий центр и ожидает одобрения Оператором УЦ.

Скачивание и установка сертификата

После одобрения запроса оператором УЦ Вы получите письмо о выпуске сертификата. Выпущенный сертификат необходимо скачать и установить.

Для этого на сайте удостоверяющего центра и выполните следующие действия:

1. В левой части окна перейдите в раздел «Сертификаты » → «Действительные ». Найдите выпущенный сертификат и в столбце «Файл » нажмите «Скачать ».


Скачивание сертификата

В нижней части окна браузера появится окно выбора действий со скачиваемым файлом, нажмите «Сохранить ».


Выбор действий со скачиваемым файлом

2. Чтобы установить сертификат, запустите программу «КриптоПро CSP ». Для этого зайдите в меню «Пуск » → «Все программы » → «КРИПТО-ПРО » → «КриптоПро CSP ».


Запуск «Крипто Про CSP»

2.1. В окне программы перейдите на вкладку «Сервис » и нажмите кнопку «Установить личный сертификат ».


Вкладка «Сервис»

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


Выбор файла сертификата

2.3. В окне «Сертификат для установки » отображаются основные сведения, содержащиеся в устанавливаемом сертификате. Нажмите «Далее ».



Просмотр сведений сертификата

2.4. В следующем окне укажите контейнер закрытого ключа, который соответствует устанавливаемому сертификату. Для этого нажмите кнопку «Обзор » и выберете нужный контейнер.

Для автоматического поиска контейнера, соответствующего устанавливаемому сертификату, установите галочку в поле «Найти контейнер автоматически ». Нажмите «Далее ».


Выбор контейнера закрытого ключа

Важно:

    если вы хотите работать без съемного носителя (дискеты, флеш-накопителя, Рутокен, eToken и подобных носителей), контейнер закрытого ключа должен находиться в реестре компьютера;

    если Вы хотите работать со съемным носителем (дискетой, флеш-накопителем, Рутокен, eToken и подобным носителем), то контейнер закрытого ключа должен находиться на съемном носителе.

2.5. В окне «Хранилище сертификатов » проверьте, чтобы:

    в поле «Имя хранилища сертификатов » указано – «Личное »;

    в пункте «Установить сертификат в контейнер » установлена галочка.


Хранилище сертификатов

2.6. В окне «Завершение работы мастера установки личного сертификата » убедитесь, что выбраны правильные параметры и нажмите кнопку «Готово ».

В наши дни очень часто для повышения безопасности сетевых соединений или просто для аутентификации используются ssl сертификаты. Одна из самых популярных свободных программ для создания сертификатов - это OpenSSL. Это утилита командной строки, которая позволяет создавать различные виды сертификатов, например, PKI или HTTPS.

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

Думаю нужно начать с самого начала. Сертификаты в первую очередь позволяют идентифицировать человека, подтвердить что вы тот, за кого себя выдаете. А работает это так - есть два ключа - закрытый и открытый. Зашифровать сообщение можно с помощью открытого ключа, но чтобы его расшифровать нужен только закрытый ключ. Если у вас нет закрытого ключа, то вы попросту не сможете расшифровать зашифрованное сообщение. Фактически зашифровать сообщение может каждый, но расшифровать его способен только владелец закрытого (секретного ключа).

Если вы смогли расшифровать отправленное сообщение, зашифрованное с помощью вашего открытого ключа, то значит - это вы. Ключи работают только в паре, и вы не сможете расшифровать ничего другим ключом. Но еще остался один момент. Как определить что этот открытый ключ именно ваш, например, принадлежит вашему домену? Все просто, достаточно, чтобы кто-то из авторитетных источников, например, Comodo или LetsEncrypt подписал ваш ключ. Это так называемые центры сертификации.

В этой инструкции мы будем иметь дело с такими видами ключей:

  • .pem, .crt, .cer - готовый, подписанный центром сертификации сертификат, расширения разные, но означают одно и то же. Если совсем просто, то сертификат, это подписанный открытый ключ, плюс немного информации о вашей компании;
  • .key - закрытый или открытый ключ;
  • .csr - запрос на подпись сертификата, в этом файле хранится ваш открытый ключ плюс информация, о компании и домене, которую вы указали.

А теперь рассмотрим как создать сертификат openssl, как его подписать и что для этого нужно сделать. Генерация ключей openssl - это довольно простая задача, если во всем разобраться.

Создание закрытого ключа и запроса на подпись

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

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

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

Опция -newkey указывает, что нужно создать новую пару ключей, а в параметрах мы сообщаем тип rsa и сложность 2048 байт. Опция -nodes указывает, что шифровать ключ не нужно, опция -new указывает что нужно создать запрос csr. Если у вас уже есть закрытый ключ, то вы можете создать для него csr запрос такой командой:

openssl req -key domain.key -new -out domain.csr

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

openssl genrsa -des3 -out domain.key 2048

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

openssl x509 -in domain.crt -signkey domain.key -x509toreq -out domain.csr

Параметр -x509toreq указывает, что нужно использовать сертификат для X509 для получения CSR. X509, это сертификаты, подписанные сами собой. Обычно сертификат подписывается другим сертификатом, а этот был подписан сам собой. Если вы получили сертификат от CA, то этот параметр не нужен.

Подпись сертификатов OpenSSL

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

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

openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt

С помощью параметра -days мы указываем что сертификат будет действительным в течение 365 дней, то есть в течение года. Вы можете объединить все в одну команду и сразу создать закрытый ключ, csr и подписанный сертификат:

openssl req -newkey rsa:2048 -nodes -keyout domain.key
-x509 -days 365 -out domain.crt

Или создаем самоподписанный сертификат openssl из существующего закрытого ключа без csr:

openssl req -key domain.key -new -x509 -days 365 -out domain.crt

Опция -new говорит, что нужно запросить информацию о csr у пользователя. Чтобы браузер доверял ключу нужно этот же сертификат импортировать в список доверенных. А теперь рассмотрим третий способ выполнить создание сертификата OpenSSL - подписать его с помощью собственного CA, центра сертификации.

Вот вы сейчас думаете что это что-то такое сложное, да? А нет, это обычная папка, в которой лежит защищенный паролем закрытый ключ, с помощью которого мы будем подписывать все другие ключи. А открытая пара этого ключа должна быть добавлена во все браузеры, которые будут ему доверять.

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

openssl req -newkey rsa:4096 -x509 -extensions x509_ca -keyout /etc/ca/certs/ca.key -out /etc/ca/certs/ca.crt -days 3654

Параметр -extensions загружает необходимые расширения для создания сертификата центра сертификации. Мы устанавливаем долгий строк действия - десять лет. Осталось подписать наш сертификат, созданный ранее:

openssl ca -extensions x509_client -in ~/domain.csr -out ~/domain.crt

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

Просмотр сертификатов

Сертификаты сохраняются в формате pem, а это значит, что вы не сможете их открыть как текстовый файл и нужно использовать специальные команды для просмотра информации о них. Сначала смотрим содержимое csr:

openssl req -text -noout -verify -in domain.csr

Смотрим содержимое сертификата в режиме обычного текста:

openssl x509 -text -noout -in domain.crt

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

openssl verify -verbose -CAfile ca.crt domain.crt

Просмотр закрытого ключа:

openssl rsa -check -in domain.key

Чтобы проверить связаны ли между собой закрытый ключ, сертификат и открытый ключ можно подсчитать сумы md5 для этих ключей, если значения совпадут, то есть вероятность что это ключи из одной пары:

openssl rsa -noout -modulus -in domain.key | openssl md5
$ openssl x509 -noout -modulus -in domain.crt | openssl md5
$ openssl req -noout -modulus -in domain.csr | openssl md5

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

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

Заявка – электронный документ, формируемый пользователем в ПП 1С, включающий набор реквизитов, необходимых для формирования квалифицированного сертификата ключа проверки электронной подписи. К заявке обязательно прикрепляется (автоматически средствами мастера подготовки заявки) запрос на сертификат в формате PKCS#10, который формируется в процессе подготовки заявки и ключа электронной подписи.

Заявление – бумажный документ, подписываемый законным представителем организации, включающий реквизиты, подлежащие указанию в СКП и в реестре изданных сертификатов (в соответствии с требованиями законодательства РФ), соглашение о присоединении к Регламенту Удостоверяющего центра.

Мастер подготовки заявки – компонента программного продукта 1С:Подпись, предназначенная для подготовки заявки в пошаговом режиме.

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

Настройка криптопровайдера

Для поддержки работы с квалифицированными сертификатами в среде MS Windows необходимо получить и установить на ПК актуальную версию сертифицированного криптопровайдера. В настоящее время поддерживается работа со следующими программами:

Установка и настройка криптопровайдеров осуществляется в соответствии с технической документацией на эти продукты.

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

на вкладку «Программы» и нажмите кнопку «Добавить».

Выберите из списка криптопровайдер, установленный в Вашей системе и нажмите кнопку «Записать и закрыть».

Запуск Мастера

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

Подготовка заявления на выпуск нового квалифицированного сертификата

Соглашение о присоединении к Регламенту Удостоверяющего центра

На первом шаге Мастера подготовки заявки необходимо принять Соглашение о присоединении к Регламенту Удостоверяющего центра. При необходимости его можно распечатать.

Переход к следующему шагу тут и на последующих шагах осуществляется нажатием кнопки «Далее».

Заполнение реквизитов организации

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

При переходе на следующий шаг выполняется проверка реквизитов на наличие ошибок. В случае их обнаружения будет выдано соответствующее предупреждение.

Указание данных представителя организации

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

Создание ключа электронной подписи

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

После нажатия кнопки «Далее» будет запущен механизм создания контейнера с ключом электронной подписи средствами криптопровайдера. Для хранеия ключа электронной подписи рекомендуется использовать защищенный ключевой носитель (информационный выпуск № 24982 от 21.09.2018 Расширение ассортимента защищенных носителей "Рутокен" для ключей электронной подписи от российского разработчика Компании "Актив"). При необходимости, обращайтесь к технической документации на используемое вами средство электронной подписи.

После завершения этой процедуры состояние заявления изменится на «Подготовлено».

Подготовка комплекта заявительных документов и отправка заявки в 1С:Подпись

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

Для автоматического прикрепления Вашей заявки к Личному кабинету обслуживающей организации укажите ее ИНН/КПП или выберите организацию из справочника контрагентов. Это позволит сократить срок рассмотрения Вашей заявки.

  • Заявка оформляется зарегистрированным пользователем ПП 1С. При необходимости на моменте отправки будет предложено подключить программный продукт к Интернет поддержке пользователей, для чего необходимо ввести логин и пароль, который Вы используете на сайте users.v8.1c.ru .
  • На момент отправки заявки в обработку должен быть заключен договор ИТС с обслуживающей Вас организацией или подключен один из пакетов сервисов (СтартЭДО или 1С:Подпись). Если это условие не выполняется, то такая заявка автоматически отклоняется и информация об этом отображается при очередном обновлении статуса. Для решения этого вопроса рекомендуем обратиться в обслуживающую Вас организацию.

При соблюдении этих условий Вы получите сообщение «Заявление принято для обработки» и состояние заявления изменится на «Отправлено».

Проверка состояния заявления и установка сертификата в контейнер

Для проверки текущего статуса отправленной заявки выберите ее на вкладке «Сертификаты» в Настройках электронной подписи и шифрования и нажмите «Изменить» (F2) в контекстном меню. Нажатием кнопки «Обновить состояние» можно актуализировать ее статус.

По окончании обработки заявки сертификат будет получен и для его установки в контейнер нажмите кнопку «Установить сертификат». В результате статус заявки изменится на «Исполнено».

Эта статья для тех, кто первый раз обращается в Удостоверяющий центр Федерального казначейства для получения сертификата (ЭП) через ФЗС.

Комплект документов для оформления сертификата ЭП через ФЗС

До начала работы с ФЗС желательно заранее подготовить и отсканировать (не более 1 МБ каждый файл, допустимые форматы jpg, bmp, tif, pdf, rar, zip и др.) следующий комплект документов:

  • Согласие на обработку персональных данных от Заявителя (будущего владельца сертификата ЭП). ;
  • Документ Организации-заявителя, подтверждающий полномочия Заявителя. Это может быть Приказ или Доверенность. ;
  • Еще одна доверенность нужна, если вместо Заявителя документы в казначейство предоставляет Уполномоченное лицо. Доверенность подтверждает право действовать от имени Заявителя. ;
  • Копия паспорта заверенная собственноручно.

Требования к компьютеру

Для работы с ФЗС требуется:

  • установить (инструкция по установке );
  • интернет-браузер Internet Explorer 9 и выше.

Только потом пробуем зайти на портал ФЗС по адресу https://fzs.roskazna.ru/ (через Internet Explorer 9 и выше!).

Работа с интерфейсом в ФЗС

При открытии ФЗС видим такую страницу, на ней необходимо нажать кнопу «СФОРМИРОВАТЬ КОМПЛЕКТ ДОКУМЕНТОВ».

В следующем окне необходимо выбрать Субъект РФ, где будете подавать документы, выбрать галку «Сведения подаются Уполномоченным лицом» (если за владельца сертификата относить пакет документов в казначейство будет другой человек), указать ОГРН и ИНН вашей организации и нажать кнопку «ДАЛЕЕ».

Cведения для включения в запрос на сертификат

Необходимо выбрать тип сертификата (cертификат физического лица, сертификат юридического лица, сертификат юридического лица без ФИО). В нашем случае это сертификат физического лица. Далее в блоке «Сведения для включения в запрос на сертификат» нажимаем кнопку «ВНЕСТИ СВЕДЕНИЯ».

В открывшемся окне необходимо выбрать полномочия будущего сертификата ЭП.

Для работы в СУФД АСФК необходимо нажать следующие галочки (все, кроме тестирования).

Для работы с ГМУ (сайт bus.gov.ru) отмечаем галочки «Работа с ГМУ. Базовый OID» и «Работа с ГМУ. ЭП администратора организации» и/или «Работа с ГМУ. ЭП уполномоченного специалиста».

Для работы с ЕИС (zakupki.gov.ru), Электронным бюджетом казначейства, Электронным бюджетом Минфина, ГАС «Управление» достаточно роли «Аутентификация клиента» (галочка активирована по умолчанию).

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

  • Фамилия;
  • Отчество (необязательно);
  • СНИЛС;
  • E-mail (на указанную почту придет извещение о готовности сертификата);
  • Регион (уже заполнен);
  • Населенный пункт;
  • Формализованная должность (Это поле появляется при указании полномочий для работы в СУФД АСФК. Это не обычная должность заявителя и зависит от права первой или второй подписи в карточке образцов подписей, предоставляемой организацией казначейству. Если у заявителя право первой подписи, то выбираем «Руководитель», право второй подписи — «Главный бухгалтер».);
  • Учетный номер организации ГМУ (ищем «Реестровый номер в перечне ГМУ» );
  • Класс средств ЭП (необходимо выбрать значение соответствующее установленной версии «КриптоПро» CSP, для организаций клиентов казначейства это как правило КС1, для сотрудников казначейства это КС2);
  • Криптопровайдер (CSP) (выбираем «Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider», т.к. казначейство еще не выпускает сертификаты в соответствии с ГОСТ Р 34.10-2012).

После заполнения всех полей нажимаем кнопку «СОХРАНИТЬ И СФОРМИРОВАТЬ ЗАПРОС НА СЕРТИФИКАТ».

Возникает окно КриптоПро, предлагающее вставить и выбрать носитель для закрытого ключа. Вставляем Рутокен или флешку в USB-порт и выбираем его в окне (Aktiv Co. ruToker 0 или диск D). В Вашем случае буква диска может быть другой. Нажимаем «ОК».

Активно двигаем мышкой и/или нажимаем на клавиатуру пока КриптоПро генерирует новый ключ.

Вводим пароль для создаваемого контейнера. Желательно установить несложный пароль и сразу записать его, т.к. никто не сможет помочь Вам восстановить пароль, если он будет утерян. Нажимаем «ОК».

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

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

Документы для получения сертификата

Следующий этап — внесение паспортных сведений и загрузка сканов документов. Для этого необходимо в блоке «Документы для получения сертификата:» нажать кнопку «ВНЕСТИ СВЕДЕНИЯ».

В открывшемся окне необходимо ввести паспортные данные владельца сертификата и загрузить сканы документов:

  • Согласие на обработку персональных данных;
  • Документ Организации-заявителя, подтверждающий полномочия Заявителя (в нашем случае это доверенность, возможен приказ);
  • Доверенность или иной документ, подтверждающий право действовать от имени Заявителя (доверенность на уполномоченное лицо).

Нажимаем «СОХРАНИТЬ».

Заявление на сертификат

Возвращаемся на главную страницу формирования запроса на сертификат, где надо нажать кнопку «СФОРМИРОВАТЬ ЗАЯВЛЕНИЕ».

В заявлении необходимо заполнить наименование документа, подтверждающего полномочия получателя сертификата (Доверенность или Приказ), дату и номер документа.

Заполняем обязательные поля (выделенный красным) и нажимаем кнопку «СОХРАНИТЬ И СФОРМИРОВАТЬ ПЕЧАТНУЮ ФОРМУ».

Нажимаем кнопку «ПЕЧАТЬ» и печатаем в 2-х экземплярах. Полученное заявление подписываем, ставим печать, сканируем и загружаем в ФЗС (нажать кнопку «ОБЗОР») и подаем запрос в казначейство (кнопка «ПОДАТЬ ЗАПРОС»).

остается отнести все документы нарочно в казначейство (доверенности или приказ+доверенность, согласие на обработку персональных данных, копию паспорта и заявление). Запрос на флешке в казначейство теперь не надо нести — хоть какое-то облегчение.

На наш взгляд, с введением ФЗС проще обычному клиенту при первом обращении в УЦ казначейства не стало. А Вы как думаете?

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

На 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 можно поменять на свое усмотрение.

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 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 это будет выглядеть так:

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

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

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

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

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

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

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



Просмотров