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

предупреждение об ошибке подтверждения ssl

Я получаю ошибку, упомянутую в заголовке, в Firefox, когда пытаюсь получить доступ к своему веб-сайту на моем компьютере. Это ошибка, которую я получаю:

An error occurred during a connection to www.st.um.
SSL peer was unable to negotiate an acceptable set of security parameters.
(Error code: ssl_error_handshake_failure_alert)

Это моя конфигурация виртуального хоста:

<VirtualHost *:443>
    ServerAdmin user1@st.um
    ServerName www.st.um
    DocumentRoot /var/www/web
    <Directory /var/www/web>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>    
    SSLEngine on
    SSLCertificateFile /usr/lib/ssl/demoCA/servercert.pem
    SSLCertificateKeyFile /usr/lib/ssl/demoCA/serverkey.pem
    SSLCACertificateFile /usr/lib/ssl/demoCA/stcert.pem

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

    BrowserMatch "MSIE [2-6]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

    # MSIE 7 and newer should be able to use keepalive
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

    SSLVerifyClient require
    SSLVerifyDepth 10

</VirtualHost>

Сертификат «servercert.pem» сертифицирован с использованием моего CA: «stcert.pem», и я могу использовать сертификат «servercert.pem» с ключом «serverkey.pem», чтобы получить доступ к s_server в качестве сервера и имея свои CA импортированы и доверены в списке авторитетов веб-браузера:

openssl s_server -cert servercert.pem -key serverkey.pem -www

Я также могу получить доступ к своему веб-сайту как клиент, используя файл PKCS # 12, созданный из сертификата clientcert.pem с его ключом clientkey.pem.

Единственное, что у меня есть в /etc/log/apache2/error.log, это:

[Sat May 25 02:44:11 2013] [notice] Apache/2.2.22 (Ubuntu) 
PHP/5.3.10-1ubuntu3.6 with Suhosin-Patch mod_ssl/2.2.22 
OpenSSL/1.0.1 configured -- resuming normal operations

Я отредактировал конфигурацию виртуального хоста и удалил:

    SSLVerifyClient require
    SSLVerifyDepth 10

И теперь он работает для аутентификации на стороне сервера. Директива SSLVerifyClient требует переопределения строк:

SSLCertificateFile /usr/lib/ssl/demoCA/servercert.pem
SSLCertificateKeyFile /usr/lib/ssl/demoCA/serverkey.pem
SSLCACertificateFile /usr/lib/ssl/demoCA/stcert.pem

И в этом была проблема. Директива «SSLVerifyClient require» предназначена для аутентификации на стороне клиента и заставляет openSSL всегда запрашивать сертификат от клиента.