Ssl ���������� linux ����

Содержание
  1. Генерация и использование SSL-сертификатов в Linux
  2. Как SSL-сертификат помогает защитить данные?
  3. Общий порядок создания SSL-сертификата, ключи и подпись
  4. Подписание SSL-сертификатов
  5. Использование SSL-сертификатов для домена
  6. Заключение
  7. SSL сертификат в Linux
  8. Настройка дополнительных полей SSL сертификата в Linux
  9. Запрос SSL сертификата в Linux
  10. Подпись ssl сертификата linux в доменном центре сертификации
  11. Другие полезные команды openssl
  12. ИТ База знаний
  13. Полезно
  14. Навигация
  15. Серверные решения
  16. Телефония
  17. Корпоративные сети
  18. Руководство по OpenSSL: SSL-сертификаты, ключи и CSR
  19. Про Linux за 5 минут
  20. Что такое сертификат SSL? Как работает SSL?
  21. В чем разница между TLS и SSL?
  22. Как я могу узнать, защищена ли веб-страница с помощью SSL?
  23. Зачем мне нужен SSL-сертификат?
  24. Где получить сертификат SSL?
  25. Типы SSL-сертификатов
  26. Уровни проверки SSL-сертификатов
  27. Проверка домена (DV SSL — Domain Validation)
  28. Расширенная проверка (EV SSL — Extended Validation)
  29. Как создать сертификат SSL
  30. Установка OpenSSL в Debian и Ubuntu
  31. Установка OpenSSL в Red Hat и CentOS
  32. Что такое запрос на подпись сертификата (CSR)?
  33. Как создать CSR
  34. Вариант 1: создать CSR
  35. Вариант 2. Создание CSR для существующего закрытого ключа
  36. Вариант 3. Создание CSR для существующего сертификата и закрытого ключа
  37. Вариант 4: Генерация самоподписанного(self-signed) сертификата
  38. Вариант 5: Генерация самоподписанного сертификата из существующего закрытого ключа и CSR
  39. Как скопировать содержимое файла CSR
  40. Продление сертификата — не используйте старые CSR повторно
  41. Как проверить свой CSR, SSL-сертификат и ключ
  42. SSL сертификат
  43. Закрытый ключ
  44. Проверьте, совпадают ли сертификат и закрытый ключ
  45. Устранение проблем с SSL
  46. Система не извлекает закрытый ключ автоматически
  47. Как найти свой ранее установленный закрытый ключ?
  48. Как переместить SSL-сертификат с сервера Windows на сервер, отличный от Windows?
  49. Команды OpenSSL для конвертации CSR
  50. Преобразовать PEM CSR и закрытый ключ в PKCS12 (.pfx .p12)
  51. Конвертировать PKCS12 в PEM CSR
  52. Конвертировать PEM в DER
  53. Конвертировать DER в PEM
  54. Зашифровать незашифрованный закрытый ключ
  55. Расшифровать зашифрованный закрытый ключ
  56. Проверить версию OpenSSL
  57. Заключение
  58. Полезно?
  59. Почему?

Генерация и использование SSL-сертификатов в Linux

В целях безопасности, в частности во избежание перехвата конфиденциальных, персональных или важных данных. Многие владельцы сайтов в сети защищают трафик с помощью SSL-сертификатов. Естественно, защите подлежит только тот трафик, который связан непосредственно с запросами и передачей данных с определённым адресом — адресом сайта. Системные администраторы, сотрудники техподдержки должны ориентироваться в вопросах, касающихся создания и внедрения SSL-сертификатов для хостов. Поскольку предоставляют соответствующие услуги. Для этих целей в системах Linux существует утилита openssl. Она является свободной реализацией методов защиты, протокола SSL, а также генерации сертификатов.

Как SSL-сертификат помогает защитить данные?

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

  • Пара ключей (открытый и закрытый) — для шифрования/расшифровки трафика;
  • Подпись открытого ключа. Гарантирующая, что он подлинный и обслуживает именно тот домен, для которого и был создан.

Обе эти составляющие и представляют собой то, что принято обозначать понятием SSL-сертификат. Подпись является гарантией, поскольку выдаётся авторитетным центрами сертификации. Это доступные всем онлайн-сервисы (достаточно воспользоваться любой поисковой системой), которым можно отправить свой ключ, заполнив соответствующую анкету. Далее сервис (центр сертификации) обрабатывает данные из анкеты и сам ключ и высылает уже подписанный ключ обратно его владельцу. Среди самых популярных на сегодняшний день центров сертификации являются такие как Comodo.
Важно заметить, что зашифрованный открытым ключом трафик возможно расшифровать только соответствующим ему закрытым ключом. В свою очередь подпись для открытого ключа от авторитетного цента говорит, что зашифрованный трафик пришёл от «своего» или подлинного узла и его можно принять в обработку, т. е. расшифровать закрытым ключом.

Общий порядок создания SSL-сертификата, ключи и подпись

Во время создания SSL-сертификата происходит последовательная обработка следующих видов ключей:

  • *.key – это сами ключи шифрования, открытий и/или закрытый;
  • *.csr – ключ, содержащий сформированный запрос для получения подписи сертификата от центра сертификации, а сам запрос — это открытый ключ и информация о домене и организации, связанной с ним;
  • *.crt, *.cer, *.pem – это, собственно, сам сертификат, подписанный центром сертификации по запросу из файла *.csr.

Для начала нужно создать закрытый ключ:

Здесь команда genrsa генерирует RSA-ключ, опция -des3 указывает алгоритм шифрования ключа. А опция -out указывает, что ключ должен быть получен в виде файла server.key. Число 2048 — это сложность шифрования. При выполнении этой команды пользователю будет предложено ввести пароль для шифрования. Поскольку указан его алгоритм опцией -des3. Если это личный ключ и его планируется использовать на сервере, который можно настроить в собственных целях, то естественно шифрование обязательно. Однако, многие серверы требуют закрытые ключи без шифрования (например хостинг-площадки, поскольку предоставляют универсальную услугу по заказу SSL-сертификатов). Поэтому перед генерацией закрытого ключа нужно определиться, как он будет использоваться.

Теперь нужно создать запрос на подпись — CSR-файл, который будет включать только что сгенерированный ключ server.key:

При выполнении этой команды пользователю необходимо ввести информацию о домене и организации. Причём наименование домена следует вводить точно, например, если идентификатор URL сайта https://mycompany.com, то ввести нужно mycompany.com. Для URL-идентификатора www.mycompany.com уже необходим отдельный сертификат.
Теперь файл server.csr со сформированным запросом на подпись можно отправить в выбранный центр сертификации.

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

Получить подписанный сертификат, когда имеется закрытый ключ и запрос на подпись можно несколькими способами: воспользоваться услугой авторитетных центров сертификации, отправив им запрос (CSR-файл) и получив в ответ готовый сертификат *.crt. Либо можно сделать сертификат самоподписанным. Т. е. подписать его тем же ключом, который использовался при создании файла CSR. Для этого следует выполнить команду:

Здесь опция -days указывает количество дней, в течение которых выпускаемый сертификат server.crt будет действителен. В данном случае на протяжении одного года.
Также можно создать самоподписанный сертификат из имеющегося закрытого ключа без использования CSR-файла. Но в этом случае нужно вводить информацию CSR-запроса:

Параметр -x509 задаёт формат генерируемого сертификата. Он является самым распространённым и используется в большинстве случаев. Опция -new позволяет запрашивать информацию для запроса у пользователя.

Важно отметить, что сертификаты, подписанные авторитетными центрами сертификации известны веб-браузерам. Самоподписанные сертификаты необходимо импортировать в хранилище доверенных сертификатов веб-браузера вручную. Поскольку соединения с доменами, обслуживаемыми такими сертификатами по-умолчанию блокируются.

Использование SSL-сертификатов для домена

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

/ssl/certs/ нужно поместить файл server.crt, в

/ssl/private/ — файл server.key. Далее, в конфигурационном файле виртуального хоста нужно определить следующие директивы:

Важно заметить, что для SSL-соединений домена должен быть отдельный конфигурационный файл (или просто отдельная конфигурация в одном файле) виртуального хоста для него. Это необходимо, поскольку обычные HTTP-соединения обрабатываются по порту 80, а HTTPS (SSL) — по 443. Это отдельные конфигурации одного виртуального хоста (хотя это не совсем верное определение). Также для Apache должен быть включен модуль SSL. Типичная конфигурация может выглядеть следующим образом:

Как подключить ssl сертификата в nginx читайте в этой статье.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

SSL сертификат в Linux

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

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

Настройка дополнительных полей SSL сертификата в Linux

Первым делом необходимо настроить список и значения дополнительных полей в сертификате, а именно Subject Alternative Names. Указывать их необходимо, чтобы избежать ошибки [missing_subjectAltName] и NET::ERR_CERT_COMMON_NAME_INVALID в Google Chrome и других браузерах. В данных полях необходимо перечислить все dns имена и ip адреса, по которым может быть открыт сайт.

Читайте также:  Error updating windows update

Задаются параметры через файл /etc/ssl/openssl.cnf. Если у вас данный конфигурационный файл не изменялся то необходимо внести следующие изменения:

  1. В разделе [req] добавить строку: req_extensions = v3_req
  2. В разделе [v3_req] добавить строку: subjectAltName = @alt_names
  3. Создать раздел [ alt_names ] и добавить в него все альтернативные имена в формате:

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

Запрос SSL сертификата в Linux

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

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

Поле Common Name должно совпадать с именем хоста к которому вы выпускаете сертификат

Обратите внимание на поле Common Name такое же имя стоит прописать в конфиге выше в качестве одного из полей в alt_names.

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

Подпись ssl сертификата linux в доменном центре сертификации

Копируем содержимое csr файла в буфер, затем идем на веб сайт доменного центра сертификации.

В поле шаблон сертификата выбираем Веб-сервер и кликаем по кнопке «Выдать».

Переключаем формат сертификата в Base64

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

Поскольку доменный центр сертификации по умолчанию распространяет свой корневой сертификат на все машины в домене Active Directory, либо вы сделали это с помощью GPO, то все подписанные им сертификаты на машинах в домене будут валидными. Таким образом и SSL сертификат в Linux подписанный доменным центром сертификации прикрученный к внутрикорпоративному веб-серверу тоже не вызовет ошибок в браузере на рабочей машине пользователя.

Данная инструкция пригодится при выпуске сертификата например для установки на Proxmox Mail Gateway или любой другой веб-сервер.

Другие полезные команды openssl

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

Создание запроса на основе имеющегося ключа:

Генерация паролей с помощью openssl:

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

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

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

Теория и практика

21 минута чтения

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

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

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

Про Linux за 5 минут

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

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

    Проще говоря, сертификат 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-соединения.

    Нередко популярные браузеры не доверяют всем сертификатам, выпущенным одним центром сертификации. Например, Google Chrome не доверяет корневым сертификатам Symantec, поскольку Symantec несколько раз нарушала отраслевые политики. Это означает, что все сертификаты, укоренившиеся в Symantec, стали недействительными независимо от даты их действия.

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

    Читайте также:  Не подключается skype windows 10

    Проверка домена (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 при помощи команды:

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

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

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

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

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

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

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

    Что такое запрос на подпись сертификата (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 — активирует программное обеспечение OpenSSL
    • req — указывает, что мы хотим CSR
    • –out — указывает имя файла, в котором будет сохранен ваш CSR. У нас в примере это certificatesigningrequest.csr
    • –new –newkey — создать новый ключ
    • rsa:2048 — cгенерировать 2048-битный математический ключ RSA
    • –nodes — нет DES, то есть не шифровать закрытый ключ в PKCS#12 файл
    • –keyout — указывает домен, для которого вы генерируете ключ

    Далее ваша система должна запустить текстовую анкету для заполнения, которую мы описывали в таблице выше:

    После завершения работы программы вы сможете найти файл CSR в вашем рабочем каталоге. Запрос на подпись сертификата, сгенерированный с помощью OpenSSL, всегда будет иметь формат файла .csr . Чтобы найти в папке все файлы этого формата используйте команду

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

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

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

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

    Вариант 2. Создание CSR для существующего закрытого ключа

    Рекомендуется выдавать новый закрытый ключ всякий раз, когда вы генерируете CSR. Если по какой-либо причине вам необходимо сгенерировать запрос на подпись сертификата для существующего закрытого ключа, используйте следующую команду OpenSSL:

    Вариант 3. Создание CSR для существующего сертификата и закрытого ключа

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

    Вариант 4: Генерация самоподписанного(self-signed) сертификата

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

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

    Читайте также:  Broadcom bcm43142 linux mint

    Центры сертификации не проверяют самоподписанные сертификаты. Таким образом, они не так безопасны, как проверенные сертификаты. Если ЦС не подписал сертификат, каждый основной браузер отобразит сообщение об ошибке «Ненадежный сертификат», как показано на рисунке ниже.

    Вариант 5: Генерация самоподписанного сертификата из существующего закрытого ключа и CSR

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

    Параметр –days установлен на 365 , что означает, что сертификат действителен в течение следующих 365 дней.

    Как скопировать содержимое файла CSR

    Откройте каталог, в котором находится ваш CSR-файл. Введите следующую команду:

    Замените domain параметром FQDN вашего CSR. Эта команда отобразит содержимое файла CSR. Скопируйте весь контент, начиная с BEGIN CERTIFICATE REQUEST и заканчивая END CERTIFICATE REQUEST .

    Продление сертификата — не используйте старые CSR повторно

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

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

    Как проверить свой CSR, SSL-сертификат и ключ

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

    Эта команда проверит CSR и отобразит данные, указанные в запросе:

    Следующая команда проверит ключ и его действительность:

    SSL сертификат

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

    Закрытый ключ

    Закрытый ключ кодируется и создается в формате PEM на основе Base-64, который не читается человеком. Вы можете открыть его в любом текстовом редакторе, но все, что вы увидите, это несколько десятков строк, которые кажутся случайными символами, заключенными в открывающие и закрывающие заголовки. Ниже приведен пример закрытого ключа:

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

    Проверьте, совпадают ли сертификат и закрытый ключ

    Для проверки вам нужно вывести контрольные суммы md5 и сравнить их. Выполните следующую команду:

    Устранение проблем с SSL

    Система не извлекает закрытый ключ автоматически

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

    Как найти свой ранее установленный закрытый ключ?

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

    Nginx

    Вы сможете найти местоположение личного ключа вашего сервера в файле виртуального хоста вашего домена.

    Перейдите к местоположению корневого сервера сайта (обычно это каталог /var/www/ ) и откройте основной файл конфигурации сайта. Найдите директиву ssl_certificate_key , которая предоставит путь к файлу закрытого ключа.

    Если вы не можете найти директиву ssl_certificate_key , возможно, существует отдельный файл конфигурации для деталей SSL. Ищите что-нибудь вроде ssl.conf .

    Apache

    При использовании библиотеки OpenSSL в Apache закрытый ключ по умолчанию сохраняется в /usr/local/ssl . Запустите openssl version –a , команду OpenSSL, которая определяет, какую версию OpenSSL вы используете.

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

    Последняя строка OPENSSLDIR определяет путь к файлу. В приведенном примере это местоположение по умолчанию /usr/lib/ssl .

    Если вы не создавали CSR с OpenSSL, вам нужно найти и получить доступ к вашему основному файлу конфигурации Apache, который является apache2.conf или httpd.conf . Директива SSLCertficateKeyFile будет указывать путь к файлу закрытого ключа.

    Windows (IIS)

    На серверах, работающих под управлением Windows Internet Information Services, операционная система сохраняет закрытый ключ в скрытой папке, так же как любая обычная ОС Windows хранит важные системные данные.

    Однако, экспортируя файл .pfx , вы можете получить закрытый ключ и сертификаты. Для этого выполните следующие действия:

    1. Откройте консоль управления MMC (Microsoft Management Console).
    2. Разверните дерево Сертификаты (локальный компьютер), расположенное в корне консоли.
    3. Ваш сертификат находится либо в личной папке, либо в папке веб-хостинга. Вы можете идентифицировать каждый сертификат по его Common name (домену)
    4. Щелкните правой кнопкой мыши сертификат, который вы хотите экспортировать, и выберите Все задачи -> Экспорт.
    5. Следуйте инструкциям мастера для экспорта файла .pfx .

    Теперь у вас есть то, что вам нужно, если вы хотите сохранить резервную копию или установить сертификат на другом сервере Windows.

    Если вам нужно установить сертификат на другом сервере, который не работает под управлением Windows (например, Apache), вам необходимо сконвертировать файл .pfx и разделить файлы .key и .crt или .cer . Вы можете сделать это с OpenSSL.

    Как переместить SSL-сертификат с сервера Windows на сервер, отличный от Windows?

    Чтобы переместить сертификат с сервера Windows на сервер, отличный от Windows, необходимо извлечь закрытый ключ из файла .pfx с помощью OpenSSL.

    1. После скачивания файла .pfx , как описано в разделе выше, выполните следующую команду OpenSSL, чтобы извлечь закрытый ключ из файла: Где mypfxfile.pfx — это резервная копия сертификатов вашего сервера Windows.
    2. Эта команда создаст выходной файл privatekey.txt . Используйте текстовый редактор, чтобы открыть файл, и вы увидите закрытый ключ в верхней части списка в стандартном формате:
    3. Скопируйте закрытый ключ, включая теги BEGIN и END , и вставьте его в новый текстовый файл. Сохраните текстовый файл как Your_Domain_Name.key .

    Команды OpenSSL для конвертации CSR

    Если вы работаете с серверами Apache, запросы на подпись сертификатов (CSR) и ключи хранятся в формате PEM . Но что, если вы хотите перенести CSR на сервер Tomcat или Windows IIS ? Вам придется конвертировать стандартный файл PEM в файл PFX . Следующие команды помогут вам сделать это.

    Примечание: Используйте параметр -nodes , если вы не хотите шифровать файл .key . Если вы не используете этот параметр, вам нужно будет указать пароль.

    Преобразовать PEM CSR и закрытый ключ в PKCS12 (.pfx .p12)

    Файлы FKCS12 используются для экспорта или импорта сертификатов в Windows IIS.

    Эта команда возьмет закрытый ключ и CSR и преобразует его в один файл .pfx . Вы можете настроить экспортную фразу-пароль, но также можете оставить это поле пустым. Обратите внимание, что, объединив строки символов сертификата в конец одного файла PEM , вы можете экспортировать цепочку сертификатов в формат файла .pfx .

    Конвертировать PKCS12 в PEM CSR

    Если файл .pfx содержит цепочку сертификатов, файл .crt PEM также будет содержать несколько элементов.

    Конвертировать PEM в DER

    DER — это двоичный формат, обычно используемый с Java. Чтобы преобразовать файл ASCII PEM в DER , используйте следующую команду OpenSSL:

    Конвертировать DER в PEM

    Если вам нужно преобразовать файл .der в PEM , используйте следующую команду OpenSSL:

    Зашифровать незашифрованный закрытый ключ

    Следующая команда OpenSSL возьмет незашифрованный закрытый ключ и зашифрует его с помощью определенной вами парольной фразы.

    Определите ключевую фразу для шифрования закрытого ключа.

    Расшифровать зашифрованный закрытый ключ

    Следующая команда OpenSSL возьмет зашифрованный закрытый ключ и расшифрует его.

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

    Проверить версию OpenSSL

    Эта команда отображает версию OpenSSL, и ее параметры, с которыми она была скомпилирована:

    Получим примерно такой вывод:

    Заключение

    Теперь вы знаете, как сгенерировать запрос на подпись сертификата с помощью OpenSSL, а также устранить наиболее распространенные ошибки.

    Онлайн курс по Linux

    Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

    Полезно?

    Почему?

    😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

    😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

    Источник

  • Оцените статью