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 спотыкатется? Или кто-то сталкивался с такой бедой?
Все ключи и сертификаты думаю созданы правильно. На тестовом сервере всё прекрасно заработало (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 спотыкатется? Или кто-то сталкивался с такой бедой?