PDA

Показать полную графическую версию : Apache2 + mod_ssl - авторизация по клиентским сертификатам


Endy1
15-02-2010, 13:44
Ребята.. уже 2 недели мучаюсь, не могу найти ошибку. Суть вопроса простая: нужно настроить Apache для авторизации по клиентским сертификатам.
Все ключи и сертификаты думаю созданы правильно. На тестовом сервере всё прекрасно заработало (OpenSuse 11.2).

В .htaccess указываю:
SSLVerifyClient optional
SSLVerifyDepth 2

Но как только захожу на страничку, которая должна запрашивать клиентский сертификат, получаю вот что:

SSL-узлу не удалось договориться о приемлемом наборе параметров безопасности.
(Код ошибки: ssl_error_handshake_failure_alert)

Error.log апача в это время пишет вот что:
Re-negotiation handshake failed: Not accepted by client!?

Ничего не понимаю, где искать.. что искать. Вроде всё делал аналогично с тестовым сервером. Уже мозги кипят :(

Привожу конф апача для виртуальных хостов с SSL


<VirtualHost *:443>

DocumentRoot "/srv/virtual_2/site.examle.ru/html"
ServerName site.examle.ru
ServerAdmin root@localhost
ErrorLog /var/log/apache2/httpdssl-error.log
TransferLog /var/log/apache2/httpdssl-access.log


<Directory "/srv/virtual_2/site.examle.ru/html>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
php_admin_value allow_url_fopen 0
</Directory>

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLCACertificatePath /etc/apache2/esteid
SSLCertificateFile /etc/apache2/uued/server.crt
SSLCertificateKeyFile /etc/apache2/uued/server.key.unsecure
SSLCACertificateFile /etc/apache2/esteid/id.crt
SSLCARevocationPath /etc/apache2/ssl.crl


<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars +ExportCertData
</FilesMatch>

<Directory "/usr/local/www/apache22/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog /var/log/apache2/httpd-ssl_request.log \
"%f %t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>


Помогите, кто чем может... Может кто подскажет как протестировать SSL соединение, чтобы понять на каком шаге apache спотыкатется? Или кто-то сталкивался с такой бедой?

Endy1
16-02-2010, 10:33
Перекопал весь гугл, таких же вопросов полно и, но нет ни одного ответа.

Endy1
19-02-2010, 11:48
Такс... по-моему что-то начало проясняться.
1. Пробую эту авторизацию на тестовой машине. Всё работает как надо.
2. Делаю update всех программ на этой самой тестовой машине. Работать перестаёт.
3. Делаю вывод, что проблема в новой версии какой-то программы. Скорее всего openssl.
А именно в версии OpenSSL 0.9.8h 28 May 2008


Никто не сталкивался с этим?

Endy1
19-02-2010, 17:23
А вот и конкретный ответ. Виноват openssl-CVE-2009-4355.patch который устанавливается в числе других обновлений.
Теперь вопрос как этот патч удалить. Но.. это в другой теме.

Вообще у меня такое навязчивое чувство, что я разговариваю сам с собой. :) Но.. понимаю, вопрос не простой.

WhitePangolin
19-02-2010, 20:02
Вообще у меня такое навязчивое чувство, что я разговариваю сам с собой »
Просто Вам повезло найти багу с которой никто тут не сталкивался... будьте уверены что почти все с напряжением читают этот топик, в надежде познать истину...

Endy1
22-02-2010, 13:32
Вот и найдено решение! Проблема была в библиотеке libopenssl0_9_8 0.9.8h-28.13.1
Рабочая версия 0.9.8h-28.10.1.




© OSzone.net 2001-2012