400 Bad Request.No required SSL certificate was sent

Maxim Dounin mdounin at mdounin.ru
Wed Aug 6 08:34:59 UTC 2014


Hello!

On Wed, Aug 06, 2014 at 01:51:34AM -0400, esirenko wrote:

> Maxim Dounin Wrote:
> -------------------------------------------------------
> 
> > Для начала имеет смысл убедится, что с помощью "openssl s_client" 
> > всё работает штатно.
> 
> ***********************************************************************************************************
> [root at localhost openssl]# openssl s_client -connect 192.168.100.38:443

[...]

man s_client:

       -cert certname
           The certificate to use, if one is requested by the server. The
           default is not to use a certificate.

       -key keyfile
           The private key to use. If not specified then the certificate
           file will be used.

И сделать простейший запрос, "GET / HTTP/1.0" + два перевода 
строки.

Впрочем, если с Оперой заработало - значит, с настройками хорошо, 
и этот пункт можно пропустить.

> cURL с серверов и других и этого самого.
> ***********************************************************************************************************
> curl -v -s -k --key ./ivan.key --cert ./ivan.crt --pass qwerty
> https://192.168.100.38
> * About to connect() to 192.168.100.38 port 443 (#0)
> *   Trying 192.168.100.38... connected
> * Connected to 192.168.100.38 (192.168.100.38) port 443 (#0)
> * Initializing NSS with certpath: sql:/etc/pki/nssdb
> * warning: ignoring value of ssl.verifyhost
> * NSS error -5961
> * Closing connection #0
> * SSL connect error
> 
> 
> При этом  в еррорлоге 
> 
> SSL_do_handshake() failed (SSL: error:140760FC:SSL
> routines:SSL23_GET_CLIENT_HELLO:unknown protocol) while SSL handshaking

В конфиге только TLSv1.2 и TLSv1.1, это ожидаемый результат при 
использовании curl'а старее 7.34.0 c NSS.

http://curl.haxx.se/changes.html#7_34_0
http://curl.haxx.se/mail/lib-2013-11/0162.html

> > А дальше уже начинать разбираться с браузерами - там могут быть 
> > нюансы.  В частности, Chrome, если мне не изменяет память, 
> > отказывался использовать клиентские сертификаты, если у сервера 
> > было что-то не так с сертификатом.  В приведённом же примере у 
> > сервера видится как-минимум проблема в виде ip-адреса вместо 
> > доменного имени.
> 
> Не думаю что на данном этапе проблема может быть в этом, но попробую сделать
> буквенное имя на замену IP

Отдельно отмечу, что с сертификатом, если мне не изменяет память, 
должно быть хорошо всё.  Т.е. он должен штатно подбираться как 
доверенный без дополнительных нажатий "да, продолжить, доверяю" и 
т.п.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru