LINUX.ORG.RU

Сертификат для входящего соединения

 


0

1

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

update-ca-certificates

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

echo | openssl s_client -showcerts -servername gnupg.org -connect gnupg.org:443 2>/dev/null | openssl x509 -inform p
em -noout -text

показывает ssl сертификат на домене и больше ничего.

Уточни для чего сертификат. Ты пишешь «для входящего соединения» а потом что ты будешь к их ресурсу подключаться - выбери что-то одно. И вообще укажи точнее кто к кому подключается и по какому протоколу, речь про браузер или про что?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от maxcom

У нас вообще общедоступный ресурс с lets encrypt ssl сертификатом То есть, проще говоря, обычный сайт в интернете. Я думал, может у них внутрення политика как-то блокирует доступ к внешним ресурсам.

DriverCat
() автор топика

сертификаты лежат в

/etc/ssl/certs /usr/local/share/ca-certificates/

приватные ключи в

/etc/ssl/private/

команда update-ca-certificates собирает все сертификаты из папок для сертификатов в один файл: /etc/ssl/certs/ca-certificates.crt как я понимаю этот файл и есть хранилище сертификатов.

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

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

cylon17
()
Последнее исправление: cylon17 (всего исправлений: 3)

это всё зависит от того что именно является вашим ресурсом. скорее всего это nginx или haproxy, тогда нужно просто в конфиге прописать путь к сертификату (и ключу если он лежит в отдельном файле). если это java, то там своё хранилище ключей и сертификатов.

flant ★★★
()

чтоб работал https нужны:

ca.crt, ca.key - ca.crt раздаем ключом будем подписывать серверы и клиентов

server.crt server.key - подписанный ca для сервера

client.crt client.key - подписанный ca для клиента

cylon17
()
Ответ на: комментарий от DriverCat

Тогда шли его нафиг, непонятно что он тебе вообще подсунул и зачем. Может там вообще 0day эксплоит на openssl парсилку сертификатов.

Я думал, может у них внутрення политика как-то блокирует доступ к внешним ресурсам.

Сертификатами эту проблему определённо не решить, это на их стороне проблемы.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Из описания мало что понял, поэтому попробую немного мысли почитать.

  1. У вас есть свой сайт drivercat.ru

  2. У вас есть контрагент ТОО ФСБ, которые хотят делать HTTP запросы к вашему сайту.

  3. В какой-то момент времени они договорились с вами об авторизации путём использования клиентских сертификатов HTTP.

  4. ТОО ФСБ сгенерировали закрытый ключ, а также сгенерировали самоподписанный сертификат с соответствующим открытым ключом. Сертификат они отослали вам.

  5. Теперь они хотят делать запрос POST https://drivercat.ru/send-important-data. При установлении соединения они будут использовать свой закрытый ключ. Вам необходимо удостовериться, что это действительно они, а не ОАО ФБР.

Если всё вышеописанное верно, вам необходимо в том софте, который отвечает за HTTPS настроить авторизацию по клиентскому сертификату. Для nginx можно обратить внимание на директиву ssl_client_certificate

vbr ★★★
()
31 января 2024 г.
Ответ на: комментарий от cylon17

Серт прислали 1 в формате .cer. Инсталлирую его в винду, потом экспортирую в DER, затем конвертирую: openssl x509 -inform DER -in sign.cer -out sign.crt и этот файл подкидываю в nginx

Может это все неправильно, прошу прояснить, сам не devops

DriverCat
() автор топика