Apache сертификаты для некоторых URL не работают

У нас довольно странная проблема с установкой Apache. Вот краткое резюме:

В настоящее время я устанавливаю Apache с https и сертификатами сервера. Это довольно просто и работает прямо из коробки - как и ожидалось. Это конфигурация для этой настройки:

Listen 443

SSLEngine on

SSLCertificateFile "/progs/apache/ssl/example-site.no.pem"
SSLCertificateKeyFile "/progs/apache/ssl/example-site.no.key"

SSLCACertificateFile "/progs/apache/ssl/ca/example_root.pem"
SSLCADNRequestFile  "/progs/apache/ssl/ca/example_intermediate.pem"

SSLVerifyClient none
SSLVerifyDepth 3

SSLOptions +StdEnvVars +ExportCertData

RequestHeader set ssl-ClientCert-Subject-CN "%{SSL_CLIENT_S_DN}s"

RewriteEngine On
ProxyPreserveHost On
ProxyRequests On
SSLProxyEngine On

...

<LocationMatch /secureStuff/$>
    SSLVerifyClient require
    Order deny,allow
    Allow from All
</LocationMatch>

...

<Proxy balancer://exBalancer>
    Header add Set-Cookie "EX_ROUTE=EB.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
    BalancerMember http://10.0.0.1:7200 route=ee1 retry=300 flushpackets=off keepalive=on
    BalancerMember http://10.0.0.2:7200 route=ee2 retry=300 flushpackets=off keepalive=on status=+H
    ProxySet stickysession=EX_ROUTE scolonpathdelim=Off timeout=10 nofailover=off failonstatus=505 maxattempts=1 lbmethod=bybusyness
    Order deny,allow
    Allow from all
</Proxy>

RewriteCond %{REQUEST_URI} !^/index.html [NC]
RewriteRule ^/(.*)$ balancer://exBalancer/$1 [P,NC]

ProxyPassReverse / balancer://exBalancer/

Header edit Set-Cookie "(.*)" "$1;HttpsOnly"

...

Итак, все работает нормально и, как и ожидалось, для всех страниц, которые не являются частью директивы LocationMatch.

При запросе чего-либо, соответствующего директиве LocationMatch, меня спрашивают о сертификате (отсюда и обязательный атрибут SSLVerifyClient) - и я получаю все правильные сертификаты в моем браузере, основанные на корневой / промежуточной цепочке. После выбора сертификата и нажатия кнопки "ОК" в журналах apache появляется следующее:

[ssl: info] [pid 9530: tid 25] [client: 43357] AH01998: Соединение закрыто для ребенка 86 с аварийным отключением ( [Чт, 11 октября 09:27:36.221876 2012] [ssl:debug] [pid 9530:tid 25] ssl_engine_io.c(1171): (70014) Конец файла найден: [клиент 10.235.128.55:45846] AH02007: SSL-рукопожатие прервано системой [Подсказка: в браузере нажата кнопка Stop?!]

И это просто спам логов. Что здесь происходит? Я вижу, как эта конфигурация работает на моей локальной машине, но не на одном из наших серверов. Между серверами нет различий в конфигурации, только незначительные изменения в приложениях.

Я пробовал следующее: 1) Удаление проверки CA-сертификата (работает) 2) Добавление необходимого CA-сертификата для всего сайта (работает) 3) Добавление "SSLVerifyClient необязательно" не работает 4) ++

Информация о сервере / приложении

Местный:

-OpenSSL v.1.0.1x -Apache 2.4.3 -Ubuntu -mpm: событие -все настройки должны быть включены

(отказавший) сервер:

-OpenSSL 0.9.8e -Apache 2.4.2 -SunOS -mpm: worker -все настройки должны быть включены

Пожалуйста, дайте мне знать, если потребуется дополнительная информация, я предоставлю ее немедленно.

Краткая сводка:

-Running Apache 2.4 -Серверные сертификаты работают просто отлично -Клиентские сертификаты для некоторых /Locations не работает, не работает с ошибками

PS:

Может ли это быть связано с версией OpenSSL и материалом "Renegotiation", связанным с TLS/SSLv3?

1 ответ

Кажется, есть проблема с версией apache, скомпилированной для используемой нами ОС Sun. Это объясняется здесь: - http://svn.apache.org/viewvc?view=revision&revision=1373439

В дополнение к этому, мы просто выполнили обновление до openssl v1.0.1c, которое исправило некоторые другие проблемы.

Подводя итоги: если вы используете Sun OS и Apache 2.4.0, 2.4.1 или 2.4.2, то вам необходимо выполнить обновление до версии 2.4.3, поскольку проблема с SSLCaching там решена.

Ресурсы:

http://svn.apache.org/viewvc?view=revision&revision=1373439

http://apache-http-server.18135.n6.nabble.com/DO-NOT-REPLY-Bug-53040-New-apache-2-4-1-Solaris-10-ssl-virtual-hosts-dies-after-idle-for-a-while-td4812609.html

Другие вопросы по тегам