Обнаружение на стороне сервера, если клиент отклоняет мой сертификат TLS - PullRequest
0 голосов
/ 30 августа 2018

Я создаю HTTP-прокси в Node.js, который пытается перехватить HTTPS-соединения, используя самозаверяющий сертификат. Я использую http.Server, создаю собственный экземпляр tls.TLSSocket для обновления сокетов по мере необходимости, и все функции прекрасно работают, когда клиент доверяет ЦС.

Если клиент не настроен с ЦС, он, очевидно, отклоняет соединение, жалуясь на наличие самозаверяющего сертификата в цепочке.

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

Возможно ли это сделать? Кажется, что TLS RFC (https://tools.ietf.org/html/rfc5246#section-7.2.2) имеет довольно много сообщений об ошибках об отклонении сертификата, которые я ожидаю охватить, но я не вижу никакой отладочной информации в Node о тех, кто даже с NODE_DEBUG=tls.

Действительно, я хотел бы подписаться на события оповещения об ошибках TLS, чтобы я мог непосредственно реагировать на различные интересные случаи. Как я могу это сделать?

1 Ответ

0 голосов
/ 30 августа 2018

Обычно все, что вы видите - клиент закрывает соединение. Некоторые клиенты могут отправлять оповещения, другие - нет, точное поведение зависит от стека TLS. В любом случае, вы все равно не могли перенаправить клиента из этого мертвого соединения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...