взаимный tls: рукопожатие все еще успешно, даже когда не представляет сертификат клиента - PullRequest
0 голосов
/ 19 марта 2020

Я подключаюсь к порту TLS сервера, для которого требуется аутентификация клиента, используя openssl:

хост подключения openssl s_client: порт -cert xxx -key xxx -CAfile xxx

OUTPUT:

SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server certificate request A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client certificate A 
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A

Рукопожатие прошло успешно, и если я сейчас делаю GET на веб-странице, я получаю содержимое этой веб-страницы.

Пока все хорошо ... Но когда я пытаюсь подключиться, когда не представление сертификата клиента:

openssl s_client connect host: порт

Я получаю тот же OUTPUT, поэтому рукопожатие прошло успешно, но после выполнения GET я получаю 403 запрещенных; что правильно.

Однако теперь мой вопрос: почему же рукопожатие прошло успешно, даже если я не отправил сертификат клиента ?? Я ожидаю, что рукопожатие, и, следовательно, соединение TLS, не будет установлено в первую очередь.

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