LINUX.ORG.RU

mTLS No required SSL certificate was sent

 , ,


0

1

Всем привет!

Сделали авторизация по клиентскому сертификату для партнера (они предоставили сертификат, который мы установили в nginx), проверили на своих самоподписанных сертах - без серта ошибка:

No required SSL certificate was sent

С сертом все ок, ресурс открывается. У партнера же ошибка:

No required SSL certificate was sent

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

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

Ещё возможно у nginx можно логи отладоные включить но я не проверял.

А вообще 99% то проблема у них и они не шлют его.

firkax ★★★★★
()

они предоставили сертификат, который мы установили в nginx

Вот эта фраза мне сильно не нравится :)

Надеюсь, они предоставили сертификат УЦ для проверки в nginx, сертификат веб-сервера для nginx, и тестовый сертификат, чтобы ты смог проверить

проверили на своих самоподписанных сертах - без серта ошибка:

В смысле самоподписанных? А что будет проверять nginx?

router ★★★★★
()

ssl_client_certificate указывает на сертификат(ы) CA, которые имеют право подписывать доверенные для nginx сертификаты.

Подозреваю, что вы идиоты не разобрались и положили самоподписанные сертификаты в этот файл (и поскольку они подписывают сами себя, это работает), а клиент ваш правильно всё делает и подписал сертификат на внешнем CA, чей сертификат вы не положили в файл. Потому и не работает.

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

Буду признателен, если подскажете нам что нужно сделать, чтобы все заработало

Положить в файл, на который указывает ssl_client_certificate, сертификат CA, который подписал сертификат партнёра.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

Его сконвертировали и положили, как выше написал, нам прислил один файл sign.cer. Вот сейчас пробую через curl с заведомо неверным сертом и ошибка другая: 400 The SSL certificate error

Отсюда вопрос: ошибка

No required SSL certificate was sent может однозначно означать, что клиент не посылает вообще сертификат?

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

ssl_client_certificate указывает на сертификат которым подписан сертфикат клиента. может быть несколько клиентов и их сертификаты подписаны одним какаим-то.

посмотри кем пописан клиентский сертификат

openssl x509 -in client.crt -text -noout | grep ‘Issuer\|Subject’

ssl_certificate server-bundel.crt

ssl_client_certificate сертфикат-которым-подписаны-сертфикаты-клиета.crt

server-bundel.crt - это сертификат сервера и еще сертификат которым он подписан.

на сервере нет никаких сертификатов клиена есть только то чем они подписаны.

cylon17
()
Последнее исправление: cylon17 (всего исправлений: 4)
Ответ на: комментарий от DriverCat

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

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

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

`openssl x509 -inform DER -in sign.cer -out sign.crt

unable to load certificate 140677259015488:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1149: 140677259015488:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:309:Type=X509

`

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