Я создаю 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, чтобы я мог непосредственно реагировать на различные интересные случаи. Как я могу это сделать?