400 Bad Request.No required SSL certificate was sent

esirenko nginx-forum at nginx.us
Tue Aug 5 06:13:07 UTC 2014


Привет, товарищи

Прочитал не одну тему на данную ошибку, но могу понять таки, почему у меня
такая ошибка.
*********************************************************************
Окружение:

nginx version: nginx/1.6.0
built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)
TLS SNI support enabled

+ Centos 7
*********************************************************************
как я создавал серты

#Создаём новый корневой СА для наших нужд
openssl req -new -newkey rsa:1024 -nodes -keyout ca.key -x509 -days 500
-subj
/C=RU/ST=RO/L=Rostov-on-Don/O=IT/OU=admin/CN=rootCA/emailAddress=xxx at xxx.com
-out ca.crt

#Создаём ключ для сервера
openssl genrsa -des3 -out server.key 1024

#И запрос для него
openssl req -new -key server.key -out server.csr

#И тут же подпишим его нашей подписью
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key
-set_serial 01 -out server.crt


#Создаём ключ для нового клиента и файл запроса сертификата
openssl req -new -newkey rsa:1024 -nodes -keyout ivan.key -subj
/C=RU/ST=Rostov/L=Rostov-on-Don/O=SomeFirm/OU=Ivan/CN=IvansCert/emailAddress=xxx at xxx.ru
-out ivan.csr

#создаём сертификат клиента использую созданный запрос на создание
сертификата и файл конфигураций
openssl ca -config ca.config -in ivan.csr -out ivan.crt -batch

#создаём сертификат клиента для браузера, используя его ключ и сертификат
openssl pkcs12 -export -in ivan.crt -inkey ivan.key -certfile ../cert.pem
-out ivan.p12 -passout pass:qwerty.

****************************************************************
Конфиги

ssl.conf
**********
ssl_session_cache               shared:SSL:10m;
ssl_session_timeout             5m;

#ssl_stapling                   on;

ssl_prefer_server_ciphers       on;
ssl_protocols                   TLSv1.2 TLSv1.1;
ssl_client_certificate          /etc/nginx/ssl/ca.crt;
ssl_certificate                 /etc/nginx/ssl/server.crt;
ssl_certificate_key             /etc/nginx/ssl/server.nopass.key;
add_header                      Strict-Transport-Security 'max-age=604800';

ssl_verify_client               on;
#ssl_verify_depth               3;
ssl_ciphers                     "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM
EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256
EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK
!SRP !DSS";


keepalive_timeout 70;
fastcgi_param SSL_VERIFIED $ssl_client_verify;
fastcgi_param SSL_CLIENT_SERIAL $ssl_client_serial;
fastcgi_param SSL_CLIENT_CERT $ssl_client_cert;
fastcgi_param SSL_DN $ssl_client_s_dn;
*********


nginx.conf
*************
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log debug;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"
'
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

 # Redirect HTTP to HTTPS:
    server {

        listen       80;
        server_name  192.168.100.38;
        return 301 https://$server_name$request_uri;


    }

    # HTTPS server:
    server {

        listen       192.168.100.38:443 ssl;
        server_name  192.168.100.38;

        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;

        include /etc/nginx/ssl/ssl.conf;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }


}
}

*******************************************************************************************

в итоге инсталлю в яндексовский браузер 
ivan.p12
ivan.crt
server.crt
ca.crt

и на выходе - 400 Bad Request.No required SSL certificate was sent

*********************************************
а в error log - 

2014/08/05 13:52:47 [info] 35336#0: *158 peer closed connection in SSL
handshake while SSL handshaking, client: 192.168.100.15, server:
192.168.100.38:443
2014/08/05 13:52:47 [info] 35336#0: *159 client closed connection while
waiting for request, client: 192.168.100.15, server: 192.168.100.38:443
2014/08/05 13:52:47 [info] 35336#0: *160 client sent no required SSL
certificate while reading client request headers, client: 192.168.100.15,
server: 192.168.100.38, request: "GET /favicon.ico HTTP/1.1", host:
"192.168.100.38"
********************************************

Понимаю насколько банальна эта тема, но.... глаза что ли замылились?...

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,252280,252280#msg-252280



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