У меня есть служба HTTPS, которая использует аутентификацию клиента SSL / TLS и требует предоставления сертификата. Как получить список допустимых имен ЦС сертификатов клиентов, используя openssl s_client
без предъявления сертификата клиента?
Если я попробую без сертификата клиента, я получу следующую ошибку:
4967:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:
Вам нужно использовать -prexit
вариант:
Например.
openssl s_client -connect server:8443 -prexit
распечатать информацию о сеансе при выходе из программы. Это всегда будет пытаться распечатать информацию, даже если соединение не удастся. Обычно информация распечатывается только один раз, если соединение установлено. Эта опция полезна, потому что используемый шифр может быть повторно согласован или соединение может завершиться неудачей, потому что требуется сертификат клиента или запрашивается только после попытки доступа к определенному URL-адресу. Примечание: вывод, производимый этой опцией, не всегда точен, потому что соединение могло никогда не быть установлено.
Используйте следующую команду:
openssl s_client -connect website_fqdn: 443 -state -nbio 2> & 1
Вывод будет содержать "Допустимые имена ЦС сертификатов клиента"