Nginx не принимает SSL сертификат после обновления CentOS до 6.9
Несколько лет проблем не было, стояла настроенная система CentOS 6.3(кажется) на ней:
nginx-1.0.15-2.el6.x86_64
Openvpn.2.2.1-1.el6.x86_64
openssl-1.0.0-25.el6_3.1.x86_64
С помощью скриптов OpenVPN (вызывающих команды OpenSSL) генерировались сертификаты для клиентов и они, установив их в браузер подключались к нашему серверу. Все работало нормально до того момента как я решил обновить php, под это дело обновил и саму ОС до финальной версии CentOS 6.9. Теперь:
Nginx 1.12.0
OpenSSL 1.0.1e-fips
OpenVPN (не используется)
Поле обновления Nginx перестал принимать сертификаты. Браузер выдает сообщение: «400 Bad Request. No required SSL certificate was sent nginx/1.12.0». В логах /var/log/nginx/error.log следующее:
2017/06/21 15:38:58 [info] 44502#44502: *168 client closed connection while waiting for request, client: 192.168.107.182, server: 0.0.0.0:443
2017/06/21 15:38:58 [info] 44502#44502: *167 client closed connection while waiting for request, client: 192.168.107.182, server: 0.0.0.0:443
2017/06/21 15:39:01 [info] 44502#44502: *170 client sent no required SSL certificate while reading client request headers, client: 192.168.107.182, server: xxxxxxx.ru, request: "GET / HTTP/1.1", host: "xxxxxxx.ru"
2017/06/21 15:39:02 [info] 44502#44502: *171 client closed connection while waiting for request, client: 192.168.107.182, server: 0.0.0.0:443
2017/06/21 15:39:02 [info] 44502#44502: *172 client sent no required SSL certificate while reading client request headers, client: 192.168.107.182, server: xxxxxxx.ru, request: "GET /favicon.ico HTTP/1.1", host: "xxxxxxxx.ru", referrer: "https://xxxxxxx.ru/"
ЧТО СЛУЧИЛОСЬ? КАК УСТРАНИТЬ?
Попробовал заново в отдельном каталоге собрать новый CA, серверный и клиентские сертификаты, они генерируются, но с браузером подружить не удается. Помогает только опция nginx ssl_verify_client off но в этом случае любой может подключиться к серверу, а мне нужно только по сертификату.
Настройки nginx ssl.conf
server {
listen 443;
server_name xxxxx.ru;
error_log /var/log/nginx/error.log debug;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
ssl_verify_client on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://192.168.107.3:8080;
proxy_redirect default;
}
}