LINUX.ORG.RU
ФорумAdmin

Nginx не принимает SSL сертификат после обновления CentOS до 6.9

 , ,


0

1

Несколько лет проблем не было, стояла настроенная система 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;
    }
}



Последнее исправление: azx (всего исправлений: 2)

Ответ на: комментарий от azx

Парный тег cut для создания спойлера с целью сокращения занимаемого места на главной странице и в ленте.

Или я тупой или у меня cut не работает

Первый вариант

l0stparadise ★★★★★
()
Ответ на: комментарий от l0stparadise

поправил запрос:

curl -v -k --key ./client.key --cert ./client.crt --url "https://xxxxx.ru"
и получил
...
*NSS error -8054
*Closing connection #0
*SSL Connect error
curl: (35) SSL Connect error

azx
() автор топика
Ответ на: комментарий от azx

«You are attempting to import a cert with the same issuer/serial as an existing cert, but that is not the same cert.»

Гуглите вот по этой ошибке. Вероятно, напутали с сертификатами.

Например, вот тут есть отметки о том, что нужно делать, чтобы ошибка не появлялась: https://github.com/nategood/sleep-tight/blob/master/scripts/create-certs.sh

l0stparadise ★★★★★
()
Ответ на: комментарий от l0stparadise

Спасибо, действительно serial оказался одинаковым, так как тестирую на новом варианте CA. Серверному и клиентскому сертификату я выдал один и тот же серийник при создании сертификата -set-serial 01. Исправил. Теперь curl подключается при этом почему то игнорирует ssl.verifyhost

warning: ignoring value of ssl.verifyhost
skipping SSL peer certificate verification

azx
() автор топика
Ответ на: комментарий от azx

В логах nginx

2017/06/21 17:24:33 [alert] 44502#44502: *623 ignoring stale global SSL error (SSL: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01 error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding check failed error:0D0C5006:asn1 encoding routines:ASN1_item_verify:EVP lib) while waiting for request, client: 192.168.117.3, server: 0.0.0.0:443
2017/06/21 17:24:33 [info] 44502#44502: *623 client SSL certificate verify error: (7:certificate signature failure) while reading client request headers, client: 192.168.117.3, server: xxxxxx.ru, request: "GET / HTTP/1.1", host: "xxxxxx.ru"

azx
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.