HTTPS & self signed certificate

Pavel V. pavel2000 at ngs.ru
Wed Dec 24 18:20:17 UTC 2014


Здравствуйте, Ualde.

Вы писали 23 декабря 2014 г., 13:31:02:

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

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


> 400 Bad Request
> No required SSL certificate was sent

 >       ssl on;
 >       ssl_certificate /etc/nginx/server.crt;
 >       ssl_certificate_key /etc/nginx/server.key;
 >
 >       ssl_verify_client on;
 >       ssl_client_certificate /etc/nginx/ca.crt;


1) Сделайте файл server.cert, примерно так:

 cat server.crt > server.cert
 echo "" >> server.cert
 cat ca.crt >> server.cert

2) Используйте его вместо server.crt в ssl_certificate. Т.е.

 ssl_certificate /etc/nginx/server.cert;

 Т.е. это будет основной сертификат + "промежуточные", т.е. ваш CA-сертификат будет отправляться
 клиенту, и страница отобразится/клиент сможет добавить СА в доверенные.

 http://nginx.org/ru/docs/http/ngx_http_ssl_module.html#ssl_certificate


3) Если вы на самом деле не собираетесь никого сертификатами авторизовывать, то директивы не нужны:

 ssl_verify_client on;
 ssl_client_certificate /etc/nginx/ca.crt;

 Вся проблема у вас из-за них, т.к. от клиента требуют авторизацию, а авторизоваться он не может.

 Ну и в предыдущем письме Вам написали про места хранения сертификатов.


Бонусы:

 - Для создания сертификатов / управления CA удобно использовать консольные скрипты easy-rsa/2.0,
 которые идут в комплекте с openvpn.

 - http://security.ncsa.illinois.edu/research/grid-howtos/usefulopenssl.html

 - http://www.fixyourip.com/library/openssl/openssl_howto.php


-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



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