Создание ECC-сертификата для Nginx (Debian 7) | 8HOST.COM

2: создание и подпись закрытого ecc-ключа

Создайте каталог для хранения закрытого ключа, запроса на подпись сертификата, а также сертификата сервера. Для этого рекомендуется создать /etc/nginx/ssl. Затем перейдите в каталог:

mkdir /etc/nginx/sslcd /etc/nginx/ssl

Создайте закрытый ECC-ключ при помощи инструмент OpenSSL’s ecparam. Данная команда создает 256-битовый ключ при помощи ECC-кривой prime256v1, а затем сохраняет ключ в файл privatekey.key. Такой 256-битовый ключ равен 2048-битовому закрытому ключу RSA.

openssl ecparam -out privatekey.key -name prime256v1 -genkey

Используйте OpenSSL, чтобы сгенерировать запрос на подпись сертификата.

openssl req -new -key privatekey.key -out csr.pem

После выполнения этой команды будет необходимо ответить на несколько вопросов. В строке Common Name не забудьте указать IP-адрес сервера или имя хоста. Поле challenge password оставьте пустым. Все остальные поля можно заполнить по собственному усмотрению.

4: тестирование ecc-сертификата для nginx

Для тестирования в данном руководстве используется Firefox, хотя любой другой современный веб-браузер будет работать должным образом.

Используйте Firefox, чтобы перейти к IP-адресу или имени хоста облачного сервера. После предупреждения о самоподписанном сертификате появится страница “Welcome to Nginx!”. Предупреждение о сертификате появится потому, что сертификат сервера является самозаверяющим и не был подписан центром сертификации, признанным в веб-браузере.

Настройка jre

Казалось бы, все настроено, и должно работать. Но нет. Остается еще один важный штрих.

Чтобы из приложения на JBoss аутентифицироваться в КриптоПро УЦ по протоколу Gost TLS, сервер JBoss нужно запускать в JRE с установленным КриптоПро JCP провайдером.

Про сертификаты:  Извещатель охранный объемный оптико-электронный «РАПИД-10», вариант 2 | НПО Сибирский Арсенал

При установке JCP в настройки JRE вносятся изменения. В частности, в jre1.8.0_144libsecurity java.security алгоритмы KeyManagerFactory и TrustManagerFactory меняются на Gost. Если так оставить, то в JBoss при старте будет возникать ошибка:

Настройка приложения

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

Домен безопасности и виртуальный хост приложения указываются в /WEB-INF/jboss-web.xml

Настройка сервера jboss

Для настройки сервера JBoss EAP 7.0.0 все изменения нужно внести в конфигурационный файл jboss-EAP-7.0.0standaloneconfiguration

standalone.xml

В раздел <system-properties> добавляются настройки, указывающие серверу, каких провайдера и хранилища использовать для двусторонней ГОСТ-аутентификации:

Для настройки RSA TLSv1.2 аутентификации пользователя и сервера JBoss в раздел

нужно добавить область безопасности:


Таким образом, для JBoss указаны все необходимые хранилища ключей и сертификатов.

В раздел

Подготовка gost-ключей аутентификации

Процесс обоюдной аутентификации сервера JBoss и КриптоПро УЦ сервера в сущности такой же. Единственное отличие в криптографических алгоритмах.

Серверы обмениваются сертификатами с алгоритмами подписи ГОСТ Р 34.11/34.10-2001 и хэширования подписи ГОСТ Р 34.11-94 вместо применяемых в RSA TLSv1.2 sha256RSA и sha256 соответственно. В качестве корневого сертификата здесь выступает ROOT-сертификат самого ПАК КриптоПро УЦ.

Подготовка rsa-ключей аутентификации

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

Удостоверяющие центры для сервера и клиента могут быть разные.

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

Сервер должен доверять удостоверяющему центру, выпустившему сертификат для клиента.

Существует много утилит и инструментов с хорошим описанием и примерами, которые позволяют работать с хранилищами и выполнять генерацию ключей и запросов на сертификат (keytool, openSSL, Portecle, XCA). Поэтому процесс подготовки хранилищ и выпуск сертификатов здесь пропустим.

Про сертификаты:  E500U сетевой контроллер Sigur – купить по лучшей цене в городе

Вот, например, хорошая статья и пошаговая инструкция по настройке Two-way SSL with TLS1.2 для Oracle SOA Suite с использованием openSSL и keytool. Но, правда, она частично потеряла актуальность и перестала отражать всю картину. Выпущенные по ней сертификаты не будут корректно восприниматься в веб-браузерах.

Error: «Subject Alternative Name Missing» or NET::ERR_CERT_COMMON_NAME_INVALID or «Your connection is not private»

если получит с сервера SSL-сертификат без домена в альтернативном имени субъекта сертификации.

Вот что говорит об этом Support Google Chrome Answer

Как с помощью openSSL добавить в сертификат subjectAlternativeName — можно посмотреть здесь и здесь

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

Постановка задачи

Для корпоративного приложения с тонким клиентом в веб-браузере, middle или backend servlet-а, которые запускаются на JBoss EAP, необходимо настроить двустороннюю аутентификацию по протоколу TLSv1.2 с применением зарубежных криптографических алгоритмов.

Задача усложняется тем, что приложение на сервере JBoss в свою очередь взаимодействует, например, с Программно-аппаратным комплексом «ПАК Удостоверяющий центр КриптоПро», где требуется процедура двусторонней аутентификации по протоколу Transport Layer Security (TLSv1.0) c использованием российских криптографических алгоритмов.

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

Аутентификация должна выполняться комбинированным методом инструментами Инфраструктуры открытых ключей (PKI), т.е. с помощью сертификатов клиента и сервера.

Результаты

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

Требования

  • Сервер Debian 7.0 Wheezy;
  • Установленный и обновленный OpenSSL.
  • Запустите:

apt-get update && apt-get upgrade

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

  • Современный браузер (Internet Explorer 7 , Firefox 19 или Chrome 25 ). В данном руководстве используется Firefox.
Про сертификаты:  Тиккурила Евро Пауэр 7 / Tikkurila Euro Power 7 - Купить с доставкой

Кроме того, все команды в данном руководстве необходимо выполнять через root-пользователя.

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