Назад | Перейти на главную страницу

Сертификаты 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 закрыто с аварийным завершением работы ([Thu Oct 11, 09: 27: 36.221876 2012] [ssl: debug] [pid 9530: tid 25 ] ssl_engine_io.c (1171): (70014) Конец найденного файла: [client 10.235.128.55:45846] AH02007: подтверждение связи SSL прервано системой [Подсказка: в браузере нажата кнопка Stop ?!]

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

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

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

Местный:

-OpenSSL v.1.0.1x -Apache 2.4.3 -Ubuntu -mpm: event - каждая конфигурация должна быть включена

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

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

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

Краткое содержание:

-Запуск apache 2.4 -серверные сертификаты работают нормально-клиентские сертификаты для некоторых / локаций не работают, не работают с ошибками

PS:

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

Похоже, что есть проблема с версией 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- после простоя-на-время-td4812609.html