Криптографический АРМ на базе стандартов с открытым ключом. Выпуск SSL-сертификатов. Эпилог

    Вот мы и добрались до создания самоподписанных сертификатов.
    Где применяются самоподписанные сертификаты? Конечно, с самоподписанным сертификатом вы не сможете зарегистрироваться на сайте Госуслуг или подать подписанную декларацию в ФНС. Но для внутрикорпоративного документооборота их вполне можно использовать. Можно также использовать их для защиты личной почтовой переписки, в VPN-сетях и т.п. Но наиболее часто используют самоподписанные SSL-сертификаты для обеспечения защищенного доступа по https-протоколу к Web-приложениям. Самым популярным средством для создания самоподписанных сертификатов остается OpenSSL. Процедура получения SSL-сертификатов с помощью того же OpenSSL хороша описана здесь. Но там вы не найдете упоминая о ГОСТ-овых сертификатах, о токенах PKCS#11 и т.п. Здесь мы рассмотрим простой графический интерфейс, который позволяет получать сертификаты на базе ГОСТ Р 34.10-2012 и без всякого использования OpenSSL.
    Саму утилиту cryptoarmpkcs можно получить здесь

    Итак, нажимаем кнопку «Самоподписанный сертификат»:



    Как видим, эта вкладка мало чем отличается от аналогичной вкладки при создании запроса на сертификат. Здесь появились кнопки выбора типа генерируемого сертификата «Тип сертификата»:
    — пользовательский сертификат (кнопка User);
    — корневой сертификат (кнопка CA);
    — SSL-сертификат (кнопка SSL).
    Естественно, начинать работу надо с выпуска корневого сертификата, на базе которого затем будут выпускаться все остальные сертификаты. При создании корневого сертификата не забудьте включить флажок «Подпись сертификата» в назначении (использование) ключа:



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



    На этой странице необходимо выбрать папку, в которой будет сохранен корневой сертификат и его закрытый ключ. Именно эту папку затем необходимо будет указывать при выпуске других сертификатов. Необходимо также определить срок действия сертификата. Можно задать также точку, в которой можно будет получить корневой сертификат. При выпуске сертификат и закрытый ключ будут упакованы в так многими любимый защищенный контейнер PKCS#12. В связи с этим необходимо задать пароль для контейнера. В итоге, после нажатия кнопки «Finish», будет получен корневой сертификат:



    При выпуске сертификата мы получаем четыре файла в указанном каталоге:
    • rootCA.cer с самим сертификатом в формате (PEM/DER), который выбрали;
    • rootCA.csr с запросом на сертификат;
    • кootCA.pfx защищенный на пароле контейнер PKCS#12 с сертификатом и закрытым ключом;
    • rootCA.key с закрытым ключом в формате (PEM/DER), который выбрали.

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



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



    На этой странице задается основное имя домена, которое будет занесено в поле Common Name, а также можно задать дополнительные (альтернативные ) имена вашего домена. Также можно прописать IP-адреса, где может располагаться ваш домен. Все это делается ради "вожделенного зеленого замочка".
    Разобравшись с доменами, IP-адресами переходим к следующим вкладкам. Там все как обычно. Единственное отличие состоит в том, что после нажатия кнопки «Finish» будет затребован пароль к корневому контейнеру rootCA.pfx:



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



    Все замечания, касающиеся пароля и закрытого ключа, высказанные выше применительно к корневому сертификату, относятся и к остальным сертификатом. Все сертификаты мы выпустили. Что дальше?
    Использовать их. Если это пользовательские сертификаты, то вы их можете использовать в этой же утилите через контейнеры PKCS#12, в документообороте для подписания документов, например:



    Что касается SSL-сертификатов, то их надо использовать по назначению для организации защищенного канала с Web-приложением. В качестве такого приложения мы взяли УЦ, на котором доступ к его ресурсам для администраторов организован по ГОСТ-вому https. УЦ развернуто на базе Apache2-2.4.10 с модулем mod_ssl, который поддерживает российские шифрсьюты. На сервере (у нас это Linux) кладем полученный SSL-сертификат (<ваш каталог>/self_xxx.cer) и его закрытый ключ (<ваш каталог>/sel_xxx.key) в папку /etc/ssl и прописываем пути к ним в файле /etc/apache2/sites-available/default-ssl:
    ...
    SSLCertificateFile <ваш каталог>/self_xxx.cer
    SSLCertificateKeyFile <ваш каталог>/self_xxx.key
    ....
    

    Перезапускаем apache2:
    #service pache2 restart
    #

    На рабочем месте (у меня это Linux) в браузере с поддержкой российской криптографии устанавливаем наш корневой сертификат (<ваш каталог>/rootCA.cer) с указанием доверия к нему. На рабочем компьютере в файл /etc/hosts добавляем следующую строку:
    192.168.0.233 www.shield-ra.ru shield-ra.ru shield-ra


    и идем по одному из этих адресов:



    Горит, горит «вожделенный зеленый замочек».
    Проверим и остальные адреса:



    Зелено вокруг. И наконец, посмотрим какой шифрсьют мы задействовали:



    Для создания самоподписанных сертификатов по созданным ранее запросам на сертификат расширен функционал страницы «Просмотр запроса/сертификата»:



    Как видно из скриншота, теперь можно не только просмотреть запрос, но и выдать по нему сертификат. В качестве корневого сертификата используется все тот же контейнер rootCA.pfx. При нажатии кнопки «Выпуск» появится окно с запросом, просмотрев который вы можете нажать кнопку «Выпуск сертификата»:



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



    Кстати, просмотреть полученный сертификат можно на этой же странице (кнопка «Файл сертификата»).
    Итак, наша криптографическая утилита cryptoarmpkcs позволяет:
    — работать с токенами PKCS#11 с поддержкой российской криптографии;
    — создавать запросы на сертификаты;
    — создавать и проверять электронную подпись (вплоть до CAdes XLT1) с использованием токенов PKCS#11;
    — создавать электронную подпись (вплоть до CAdes XLT1) с использованием контейнеров PKCS#12;
    — выпускать самоподписанные сертификаты;
    — просматривать сертификаты и запросы.
    Наверное, что-то в ней не хватает, подскажите, учтем. Спасибо за долготерпение.
    P.S. Теперь загружать обновленные версии можно непосредственно из утилиты. Для этого достаточно подвести курсор мыши на заголовок «PKCS#11, X509v3 ...», нажать правую клавишу мыши и выбрать пункт меню «О программе»:

    Похожие публикации

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 512 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 4

      0
      Мда, в Линукс версии вся бы статья уместилась бы в два абзаца и три строчки кода ;)
        0

        Если не секрет, это как?

        +1
        При попытке создать корневой сертификат появляется ошибка:
        «Error: expected integer but got „22090xxxxx.433915“
        Токен инициирован и указан, все параметры выбраны как на скриншотах, что это может быть?
          0

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



          Для этого достаточно подвести курсор мыши на заголовок "PKCS#11, X509v3 ...", нажать правую клавишу мыши и выбрать пункт меню "О программе".

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

          Самое читаемое