Импортировать сам подписанный сертификат в redhat

Как импортировать самозаверяющий сертификат в Red-Hat Linux.

Я не эксперт в отношении сертификатов и затрудняюсь найти правильный ответ через googling, так как я не знаю разницы между .cer,.crt или .pem. Сказав это, то, что я хотел бы сделать, не должно быть наукой о ракетах (в окнах я могу сделать это несколькими щелчками мыши в своем браузере) Я хочу подключиться к серверу, который использует самозаверяющий сертификат. Например, используя wget, без использования опции -no-check-certificate. Для выполнения этой работы мне придется добавить самозаверяющий сертификат сервера в поле RedHat. Я узнал, что сертификаты находятся в /etc/pki/tls. Но я не понимаю, какие действия я должен выполнить, чтобы сделать функцию wget без жалоб.

Я могу получить сертификат SSL с сервера, используя:

openssl s_client -connect server: 443

Сертификат находится между "BEGIN CERTIFICATE и END CERTIFICATE". Я не знаю, какой это сертификат. Затем мне нужно будет поместить его в каталог /etc/pki/tls/certs и применить некоторый сорт openssl secert, о котором я не знаю. Вы можете помочь?

Ответ 1

Я не знаю, как импортировать конкретный сайт-сертификат в OpenSSL trust db (я бы хотел, чтобы я сделал!), но поскольку вы говорите о самозаверяющем сертификате, мы можем обратиться к нему, импортировав ваш сертификат как новый доверенный сертификат CA. Предупреждение: вы также будете доверять любым сайтам, подписанным этим сертификатом.

Найти и загрузить сертификат

Вы можете загрузить самозаверяющий сертификат непосредственно с сайта с помощью

openssl s_client -connect server:443 <<<'' | openssl x509 -out /path/file

Обратите внимание, что вы должны только делать это в случае самоподписанного сертификата (как указано в исходном вопросе). Если сертификат подписан другим CA, вы не можете работать с указанным выше; вместо этого вам нужно будет найти соответствующий сертификат CA и загрузить его.

Импортировать сертификат и доверять ему

Команда update-ca-trust была добавлена ​​в Fedora 19 и RHEL6 через RHEA-2013-1596. Если у вас есть это, ваши шаги немыслимы (но требуют root/sudo):

  • скопируйте сертификат CA на /etc/pki/ca-trust/source/anchors/
  • update-ca-trust enable; update-ca-trust extract
  • (Обратите внимание, что команда enable не нужна в RHEL7 и современной Fedora)

Если у вас нет обновления-ca-trust, это немного сложнее (и по-прежнему требует root/sudo):

  • cd /etc/pki/tls/certs
  • скопируйте CA-сертификат здесь
  • ln -sv YOURCERT $(openssl x509 -in YOURCERT -noout -hash).0

PS: Вопрос, упомянутый Red Hat, но для тех, кто смотрит на то, что делает что-то помимо Fedora/RHEL, wiki.cacert.org/FAQ/ImportRootCert может быть полезно.

Ответ 2

Вы можете делать то, что хотите, используя следующие шаги:

  • Поместите сертификат SSL (включая строки "----- BEGIN CERTIFICATE -----" и "----- END CERTIFICATE -----" ) в файл в каталоге "/etc/pki/tls/certs" - для примера, позвольте называть его "myserver.pem".
  • Вычислить хэш сертификата этого сертификата, запустив

    openssl x509 -noout -hash -in /etc/pki/tls/certs/myserver.pem

    для примера, допустим, что хеш-значение равно "1a2b3c4d".

  • Сделайте символическую ссылку в каталоге certs на основе этого значения хэша, например:

    ln -s /etc/pki/tls/certs/myserver.pem /etc/pki/tls/certs/1a2b3c4d.0

    Я предполагаю, что в этом каталоге нет других сертификатов, хеш которых имеет одно и то же значение хэша - если уже есть "1a2b3c4d.0", тогда вместо этого сделайте свою ссылку "1a2b3c4d.1" (или если уже ".1", сделайте свой ".2" и т.д.)

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

Ответ 3

1.) Удаление/прекращение использования RedHat - отвратительный разрыв открытого программного обеспечения, намеренно измененный и сделанный "другим" и несовместимым по дизайну, чтобы сохранить запатентованные "платные для использования" "функции" и обеспечить блокировку и постоянную потоки доходов

2.) Установите Gentoo, FreeBSD, Debian или какое-то другое действительно открытое дистрибутив Linux

3.) Найдите хранилище сертификатов OpenSSL в контексте вашего нового и улучшенного дистрибутива linux на межсетевых экранах.

  1. Используйте информацию, найденную для импорта сертификата, которому вы хотите доверять, в хранилище сертификатов OpenSSL.