HTTPS & self signed certificate

Ualde nginx-forum at nginx.us
Tue Dec 23 07:31:02 UTC 2014


Здравствуйте

Используем nginx уже достаточно давно, однако, теперь решили использовать и
SSL (до этого защищенное соединение не требовалось). 
Для начала решили все опробовать с самоподписанными сертификатами.
Но возникает следующая проблема, тестовый сайт не открывается клиентом в
Google Chrome, Firefox, и при этом открывается в Internet Explorer.

Что сделали?
Создали корневой сертификат ( ca.conf - http://pastebin.com/NF5eQJEe ):
# openssl genrsa -des3 -out ca.key 2048
# openssl req -new -x509 -nodes -sha1 -days 365 -key ca.key -out ca.crt
-config ca.conf
# openssl x509 -trustout -inform PEM -in ca.crt -outform DER -out ca.pfx

Создали список отозванных сертификатов ( carevoke.conf -
http://pastebin.com/7xYs7AJV ):
# openssl ca -gencrl -out crl.pem -config carevoke.conf

Создали серверный сертификат ( site.dev/server.conf -
http://pastebin.com/sLaHqkM8 ):
# openssl genrsa -passout pass:test -des3 -out site.dev/server.key.1 1024
# openssl rsa -passin pass:test -in site.dev/server.key.1 -out
site.dev/server.key
# openssl req -config site.dev/server.conf -new -key site.dev/server.key
-out site.dev/server.csr
# rm -f site.dev/server.key.1
# openssl ca -batch -config ca.conf -out site.dev/server.crt -infiles
site.dev/server.csr
# openssl verify -CAfile ca.crt site.dev/server.crt

Создали клиентский сертификат ( site.dev/client01/client.conf -
http://pastebin.com/2ZH39Dux ):
# openssl req -config site.dev/client01/client.conf -new -newkey rsa:512
-nodes -out site.dev/client01/client.csr -keyout
site.dev/client01/client.key
# openssl ca -batch -config ca.config -out site.dev/client01/client.crt
-infiles site.dev/client01/client.csr
# openssl verify -CAfile ca.crt site.dev/client01/client.crt
# openssl pkcs12 -export -clcerts -in site.dev/client01/client.crt -inkey
site.dev/client01/client.key -out site.dev/client01/client.p12 -name
"my_client_certificate" -passout file:site.dev/client01/pass

В результате получились следующие файлы - http://pastebin.com/ZB5p12S0

Сделали конфигурацию nginx:
nginx.conf - http://pastebin.com/CzcVM2b4
site.dev - http://pastebin.com/pZrcj3tx


На клиентскую машину поставили сертификаты в хранилища по умолчанию
(пробовали и в доверенные центры): client01.p12, ca.crt
Вроде все "по инструкции", однако, проблема неприятная. Никак не можем
подключиться по иным браузерам кроме IE.
Во всех остальных пишется: 

400 Bad Request
No required SSL certificate was sent


Версия nginx:
# nginx -V
nginx version: nginx/1.7.8
built by gcc 4.7.2 (Debian 4.7.2-5)
TLS SNI support enabled
configure arguments: --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log --user=www --group=www
--with-select_module --with-http_ssl_module --with-pcre=../pcre-8.36
--with-pcre-jit --with-zlib=../zlib-1.2.8 --with-http_gzip_static_module


Версии браузеров:
Internet Explorer 10 и 11 (на обоих работает)
Google Chrome 39.0.2171.95
Firefox 35.0a2 (2014-11-08) и 33.0.2 (на обоих не работает)


Что сделали не так?

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



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