Центр сертификации req



Создание сертификата OpenSSL

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

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

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

Выводы

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

Источник

Как развернуть и настроить инфраструктуру открытого ключа PKI и корпоративным центом сертификации CA

В закрытой корпоративной сети часто возникает необходимость в развертывании и настройки Инфраструктуры Открытого Ключа (Public Key Infrastructure — PKI) с корпоративным центом сертификации (Certificate authority — CA). В этой статье я опишу настройку простейшего CA одноуровневой иерархии PKI.

Читайте также:  Подлежит обязательной сертификации кислород

Настройку PKI будем рассматривать на базе Ubuntu 16.04, главным действующим лицом станет фирма с громким названием ООО “Рога и копыта” или по английски Horns and hooves, LLC, у этой фирмы есть свой веб сайт ca.hhbb.me, через который она будет распространять CRL (списки SSL-сертификатов, отозванных CA).

1. Теория

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

Что такое сертификат? Сертификат —это набор полей в формате x.509, содержащий идентификатор субъекта (например, имя пользователя или компьютера), время действия, имя издателя, назначение, используемые алгоритмы хеширования и шифрования, правила проверки подлинности и открытый ключ, а также цифровую подпись, которая позволяет удостоверить подлинность и целостность сертификата.

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

Как проверяется сертификат? Предположим, мы подключаемся к веб-серверу по протоколу https и получаем его сертификат.

  • Проверяем его срок годности.
  • Проверяем находится ли CA которым был выпущен сертификат, списке доверительных CA на нашем ПК.
  • Проверяем подпись сертификата, те считаем заново хеш-сумму от всех значащих полей сертификата, расшифровываем цифровую подпись сертификата при помощи открытого ключа CA и сравниваем с нашей хеш-суммой, если совпадает — значит сертификат действительный.
  • Если в сертификате указана точка распространения списка отзыва сертификатов (CDP), то забираем от-туда список отзыва сертификатов (CRL), проверяем его цифровую подпись и отсутствие в этом списке нашего сертификата.
  • Проверяем дополнительные поля, например, может ли этот сертификат использоваться для шифрования веб-трафика.

Этот процесс нужно очень хорошо понимать.

Что такое центр сертификации? Центр сертификации (CA) — это некоторый набор софта, главная функция которого выдача, контроль и отзыв сертификатов. Каждый CA имеет свой сертификат и закрытый ключ. Закрытый ключ нужно хранить как зеницу ока, потому что он используется для подписи всех выдаваемых сертификатов и списков отзыва (CRL). Сертификату CA должны по априори доверять все компьютеры в сети.

Что такое PKI? PKI (Public Key Infrastructure — Инфраструктура Открытого Ключа) — это набор средств и правил необходимых для поддержания иерархии сертификатов. Проще говоря — это совокупность сертификатов, правил их выдачи и отзыва, правил хранения ключей, центров сертификации и тд.

Что такое одноуровневая PKI? Одноуровневая иерархия PKI — это наиболее простое решение для управления сертификатами, это один корневой центр сертификации, который подписывает все выдаваемые сертификаты организации. Недостаток одноуровневой системы заключается в недостаточной защищенности, возможности компрометации закрытого ключа корневого центра сертификации.

2. Настройка корневого центр сертификации (CA)

Переходим в директорию /etc/pki/CA, с этого момента она станет нашей рабочей директорией и все 100% действий мы будем делать в пределах нее.

Создаем необходимые для работы файлы, в index.txt будут записываться все выдаваемые сертификаты, в файлах serial будет храниться последний серийный номер выданного сертификата, а в crlnumber номер последнего списка отзыва сертификатов. Кажется мелочь, а работать без них ничего не будет.

Создаем директорию request, в нее мы будем складывать запросы на подпись сертификата.

Копируем файл с настройками центра сертификации и переходим к его редактированию.

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

Теперь создадим сертификат корневого ЦС сроком на 5 лет, он спросит у нас пароль что бы зашифровать закрытый ключ и предложит заполнить несколько полей, в принципе немного раньше мы задали для них значения по умолчанию, поэтому смело щелкаем Enter, за исключением Common Name (CN) туда мы вводим полное название нашего CA: Horns and hooves, LLC Certification Authority.

Создадим список отзыва сертификатов (CRL), пока он будет пустым. Однако очень важно что бы он существовал и был доступным, если клиент не сможет получить CRL, то сертификат скорее всего будет признан недействительным. После запуска openssl запросит пароль от закрытого ключа ЦС необходимый для подписи CRL.

Далее необходимо установить веб-сервер apache:

Теперь нужно опубликовать в интернете сертификат CA и список отзыва. У фирмы ООО “Рога и копыта” есть сайт ca.hhbb.me, для простоты эксперимента предположим, что у нас настроен сервере Apache, который перенаправляет все запросы с ca.hhbb.me в директорию /var/www/html/pki. Настройка Apache более подробна описана в статье: Как установить LAMP на сервере Debian 10. Создадим две символические ссылки:

В итоге у нас получился полностью работоспособный корневой центр сертификации.

3. Работа с сертификатами

Что делать с центром сертификации дальше? Здесь мы рассмотрим две основополагающие функции, то для чего нужен CA — это выдача и отзыв сертификатов.

3.1 Выдача сертификатов

Предположим, что нам нужно выдать сертификат для защищенного при помощи SSLv3 сайта hhbb.me. Создадим запрос к центру сертификации, как и при создании корневого ЦС он задаст нам кучу вопросов, мы на все щелкаем Enter, а в Common Name вводим имя узла: hhbb.me.

Отправляем запрос на сертификат hhbb.me.csr на подпись в CA и на выходе мы получим готовый подписанный сертификат. Для подписи потребуется ввести пароль закрытого ключа CA и дважды согласиться щелкнув y:

Сертификат для сервера hhbb.me будет лежать в файле certs/hhbb.me.crt, а закрытый ключ в файле private/hhbb.me.key.

При необходимости конферетируем сертификат в формат PEM или DER:

3.2 Отзыв сертификатов

Следующая задача отозвать скомпрометированный сертификат веб-сервера hhbb.me. Для выполнения команд потребуется пароль от закрытого ключа ЦС.

Помечаем сертификат в базе CA как отозванный:

Обновляем список отзыва сертификатов CRL:

4. Вместо заключения

Таким образом, мы настроили инфаструктуру открытых ключей (Privat Key Infrastructure) с собственным центром сертификации (CA). Теперь мы сможем установить корневой сертификат CA в доверенное хранилище, и выдать всем серверам сертификаты, соединения будут защищены и никаких утечек информации.

Спасибо за уделенное время на прочтение статьи о том, как развернуть и настроить инфраструктуру открытого ключа (PKI) и корпоративным центом сертификации (CA)!

Если возникли вопросы, задавайте их в комментариях.

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

Источник

Apache и сертификаты из Active Directory

Опубликовано admin Окт 30, 2011 в Web | Comments1 коммент.

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

Приведенный ниже способ вполне подходит для изготовления SSL-сертификатов для веб-серверов Apache, оборудования Zyxel или DLink. В примере используются:

dc-srv.mydomain.local – Windows Server 2003, контроллер домена MYDOMAIN.LOCAL, на нем же располагается центр сертификации и “служба подачи заявок на сертификат через интернет”.

web-srv.mydomain.local – CentOS 6.0, web-сервер Apache на котором располагается хотя бы один виртуальный хост с поддержкой SSL.

1. Запрос к ЦС

Подключаемся к web-серверу (web-srv.mydomain.local) и создаем запрос на выдачу сертификата:

2. Обрабатываем запрос сертификата

Открываем окне браузера ссылку http://dc-srv.mydomain.local/certsrv/ – web-форма для запроса сертификата Active Directory; и выбираем “Запрос сертификата”:

Далее выбираем “расширенный запрос сертификата”

Выбираем “Выдать запрос, используя base-64 шифрованный файл PKCS #10, или выдать запрос обновления, используя base-64 шифрованный файл PKCS #7″

В окно “Сохранный запрос” переносим содержимое созданного ранее файла web-srv.req; “Шаблон сертификата” выбираем “Веб-сервер” и нажимаем “Выдать”.

Читайте также:  Системы сертификации гост р таблица

На последней странице выбираем “DER-шифрование” и “Загрузить сертификат”.

3. Конвертируем и устанавливаем сертификат

Загруженный сертификат certnew.cer нужно передать на веб-сервер любым удобным способом и положить в папку /root. Конвертируем сертификат из DER в формат PEM:

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

В случае использования запрещающего режима SELinux восстанавливаем контекст в папках с новыми ключем и сетрификатом:

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

В моем случае сертификат относится к дефолтному хосту, теперь переходим по ссылке https://web-srv.mydomain.local.
Просматриваем сертификат:

Ура, сертификат действителен и выдан доменным удостоверяющим центром MyCompany.

Один комментарий : “Apache и сертификаты из Active Directory”

Источник

Руководство по OpenSSL: SSL-сертификаты, ключи и CSR

Технология Secure Socket Layer (SSL), изначально разработанная Netscape в 1994 году для поддержки возможностей электронной коммерции в Интернете, прошла долгий путь. Теперь SSL-сертификаты стали обычной необходимостью для любого веб-сайта. OpenSSL — криптографическая библиотека с открытым исходным кодом и инструментарий SSL. Приложения, содержащиеся в библиотеке, помогают создать безопасную среду связи для компьютерных сетей.

В этом руководстве разберемся как с теорией, так и узнаем как работать с сертификатами на практике при помощи утилиты OpenSSL.

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

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

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

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

В чем разница между TLS и SSL?

Её нет! Transport Layer Security (TLS) — это обновленная версия Secure Socket Layer (SSL). Даже при том, что большинство безопасных соединений через протоколы TLS, люди продолжают называть это SSL.

Как я могу узнать, защищена ли веб-страница с помощью SSL?

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

Зачем мне нужен SSL-сертификат?

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

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

Где получить сертификат SSL?

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

  1. Сгенерируйте CSR и пару ключей локально на вашем сервере. Пара ключей состоит из открытого (public key) и закрытого (private key) ключей.
  2. Отправьте CSR и открытый ключ в центр сертификации, который проверит вашу личность, а также владеете ли вы доменом, указанным в заявке. Центр сертификации проверяет вашу организацию и проверяет, зарегистрирована ли организация в расположении, указанном в CSR, и существует ли домен.
  3. После проверки организация получает копию своего сертификата SSL, включающего бизнес данные, а также открытый ключ. Теперь организация может установить сертификат на своем сервере.
  4. Когда центр сертификации выдает сертификат, он связывается с сертификатом «доверенного корня» (trusted root) центра сертификации. Корневые сертификаты встроены в каждый браузер и связаны с индивидуально выданными сертификатами для установления HTTPS-соединения.

Типы SSL-сертификатов

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

  • Однодоменный SSL-сертификат (Single Domain SSL Certificate) — Этот тип предназначен для использования в одном домене и не поддерживает субдомены. Например, если сертификат будет использоваться для wiki.merionet.ru, он не будет поддерживать любое другое доменное имя.
  • Несколько доменов (сертификаты SAN / UC) — Несколько сертификатов домена используются для многочисленных доменов и поддоменов. Помимо полного доменного имени, вы можете добавить поддержку других поддоменов, добавив их в поле «Альтернативное имя субъекта». Например, сертификат SAN может включать домен wiki.merionet.ru, его поддомен asterisk.merionet.ru, а также другой домен (например, shop.merionet.ru).
  • Wildcard сертификат — Сертификаты могут использоваться для домена, включая все его поддомены. Основное отличие состоит в том, что вместо выдачи для определенного полного доменного имени сертификаты с подстановочными знаками используются для широкого диапазона поддоменов. Например, сертификат подстановочного знака, выданный *.merionet.ru, может использоваться для широкого диапазона поддоменов в основном домене

Уровни проверки SSL-сертификатов

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

Проверка домена (DV SSL — Domain Validation)

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

Расширенная проверка (EV SSL — Extended Validation)

Центр сертификации проверяет право собственности на домен и проводит тщательное расследование организации, связанной с сертификатом EV. При рассмотрении расширенного запроса проверки соблюдаются строгие правила, и центр сертификации должен проверить следующее:

  1. Информация об организации соответствует официальным данным
  2. Физическое, юридическое и эксплуатационное существование субъекта
  3. Организация имеет исключительные права на использование домена, указанного в сертификате SSL
  4. Организация надлежащим образом санкционировала выдачу сертификата EV SSL

Как создать сертификат SSL

То, как сгенерировать запрос на подпись сертификата (CSR), зависит исключительно от платформы, которую вы используете, и конкретного выбранного вами инструмента.

Мы будем генерировать CSR с использованием OpenSSL.

OpenSSL — это широко используемый инструмент для работы с CSR-файлами и SSL-сертификатами, который можно загрузить с официального сайта OpenSSL. Это инструмент реализации с открытым исходным кодом для SSL/TLS, который используется примерно на 65% всех активных интернет-серверов, что делает его неофициальным отраслевым стандартом.

Установка OpenSSL в Debian и Ubuntu

Сначала проверим, установлена ли у нас утилита OpenSSL при помощи команды:

dpkg -l |grep openssl

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

ii libgnutls-openssl27:amd64 2.12.23-12ubuntu2.4 amd64 GNU TLS library — OpenSSL wrapper ii openssl 1.0.1f-1ubuntu2.16 amd64 Secure Sockets Layer toolkit — cryptographic utility

Читайте также:  Проведение сертификации выбранного образца продукции

Если вы не видите такого результата, выполните следующую команду для установки OpenSSL:

apt-get install openssl

Установка OpenSSL в Red Hat и CentOS

Red Hat (версия 7.0 и более поздние) должна поставляться с предустановленной ограниченной версией OpenSSL. Он предлагает только ограниченную поддержку для IDEA, RC5 и MDC2, поэтому вы можете установить недостающие функции.

Чтобы проверить, установлен ли OpenSSL на сервере yum (например, Red Hat или CentOS), выполните следующую команду:

rpm -qa | grep -i openssl

Эта команда должна вернуть следующий результат:

openssl-1.0.1e-48.el6_8.1.x86_64 openssl-devel-1.0.1e-48.el6_8.1.x86_64 openssl-1.0.1e-48.el6_8.1.i686

Если ваш формат вывода отличается, это означает, что OpenSSL не установлен на вашем сервере. Выполните следующую команду для установки OpenSSL:

yum install openssl openssl-devel

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

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

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

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

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

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

Параметр Описание Пример
Common Name или FQDN FQDN (fully qualified domain name) — это полное доменное имя вашего сайта.
Он должен совпадать с тем, что пользователи вводят в веб-браузере
wiki.merionet.ru
Organization Name (e.g., company) Полное юридическое название вашей организации, включая суффиксы, такие как LLC, Corp и так далее Merion Networks LTD
Organizational Unit Name Отдел в вашей организации, который занимается этим сертификатом Technology Division
Locality Name Город, в котором находится ваша организация Moscow
State/Region/Province (full name) Штат или регион, в котором находится ваша организация Moscow
Country Code (2 letter code) Страна, в которой находится ваша организация. Всегда вводится в виде двухбуквенного кода ISO RU
Email Address Адрес электронной почты, используемый для связи с веб-мастером сайта info@merionet.ru
Public Key втоматически созданный ключ, который создается с помощью CSR и входит в сертификат. Закодированный текстовый блок похож на закрытый ключ.
Смотрите пример закрытого ключа ниже.

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

Как создать CSR

Запросы на подпись сертификата (CSR) создаются с помощью пары ключей — открытого и закрытого ключа. Только открытый ключ отправляется в центр сертификации и включается в сертификат SSL, и он работает вместе с вашим личным ключом для шифрования соединения. Любой может иметь доступ к вашему открытому ключу, и он проверяет подлинность SSL-сертификата.

Закрытый ключ — это блок закодированного текста, который вместе с сертификатом проверяет безопасное соединение между двумя компьютерами. Он не должен быть общедоступным, и его не следует отправлять в ЦС.

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

Большинство пар ключей состоят из 2048 битов. Хотя пары ключей длиной 4096 бит более безопасны, они замедляют SSL-рукопожатия и создают нагрузку на серверные процессоры. Из-за этого большинство сайтов по-прежнему используют 2048-битные пары ключей.

Вариант 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 . Чтобы найти в папке все файлы этого формата используйте команду

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

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

Источник

Запрос сертификата у AD CS. Создание мультидоменного сертификата

В статье рассматривается возможность создания SSL-сертификата для применения на WEB-сервер с использованием центра сертификации AD CS.

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

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

  1. установить Windows Server;
  2. добавить роль Active Directory Certificate Services (AD CS);
  3. следуя подсказкам, сконфигурировать AD CS.

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

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

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

Следующим этапом является запрос сертификата у AD CS. Для этого открываем файл web-srv.req с помощью текстового редактора и копируем содержимое файла, например:

Открываем в браузере страницу центра сертификации: ip-адрес_AD_CS/certsrv/

Request a certificate -> advanced certificate request и вставляем туда скопированный запрос на сертификат.

Переходим на Windows Server, запускаем Server Manager -> Tools -> Certification Authority -> Pending Request. Выбираем нужный запрос на сертификат и выпускаем его, выбрав пункт Issue.

Переходим в браузере по адресу: ip-адрес_AD_CS/certsrv/ и выбираем пункт View the status of a pending certificate request, где можно скачать свой сертификат или цепочку сертификатов в формате DER или Base64.

Источник