Сертификат электронной подписи. Получение сертификат электронно-цифровой подписи. Создание ключа электронной подписи

В этой статье объясняется, как получить или создать цифровую подпись для использования в документах Office. Чтобы узнать больше о том, как использовать их в документах Office, ознакомьтесь со статьей Добавление и удаление цифровой подписи в файлах Office .

Что такое цифровая подпись?

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

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

Получение цифровой подписи от центра сертификации или партнера Майкрософт

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

Создание цифрового сертификата

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

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

    Откройте Internet Explorer.

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

    Нажмите кнопку Сертификаты и откройте вкладку Личные .

Получение цифровой подписи

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

У вас есть два варианта:

Подробнее о каждом варианте см. в следующих разделах.

Получение цифровой подписи от партнера Майкрософт

Если вы выбрали вариант Получить цифровое удостоверение от партнера Майкрософт в диалоговом окне Получение цифрового удостоверения , вы будете перенаправлены на веб-сайт Microsoft Office, где вы можете приобрести цифровой сертификат одного из сторонних центров сертификации (ЦС).

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

Создание собственной цифровой подписи

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

Создание собственного цифрового сертификата

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

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

    В диалоговом окне Создание цифрового удостоверения введите следующие сведения для цифровой подписи:

    • В поле Имя введите свое имя.

      В поле Адрес электронной почты введите свой адрес электронной почты.

      В поле Организация введите название организации или компании.

      В поле Расположение укажите свое географическое местоположение.

    Щелкните Создать .

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

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

Создать SSL сертификат самому можно средствами свободно распространяемого пакета IIS6 Resource Kit Tools. Может потребоваться установка служб. Для этого в Панели управления необходимо выбрать раздел «Программы и компоненты» и в открывшемся окне в меню слева нажать на ссылку «Включение или отключение компонентов Windows». Далее в открывшемся окне нужно включить компонент «Службы IIS».

Что следует учесть перед созданием SSL сертификата?

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

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

Создать SSL сертификат: пошаговая инструкция

Самостоятельно создать SSL сертификат можно, выполнив 4 простых шага:


Привязать SSL сертификат к серверу

После того, как Вы создали SSL сертификат, следует привязать его к IIS-серверу. Для этого вернитесь в раздел «Сертификаты сервера» и в разделе «Подключения» слева выберите сайт, к которому планируете привязать созданный SSL сертификат.

В столбце «Действия» нажмите на «Привязки…».

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. В окне «Завершение работы мастера установки личного сертификата » убедитесь, что выбраны правильные параметры и нажмите кнопку «Готово ».

Все крупные сайты давно перешли на протокол 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 для локальной разработки?

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

В наши дни очень часто для повышения безопасности сетевых соединений или просто для аутентификации используются 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



Просмотров