Ошибка подписи аутентификации клиента SSL ERR в Google Chrome

У меня есть веб-сайт, который использует авторизацию сертификата клиента SSL. Все сертификаты клиента генерируются с помощью OpenSSL и являются самозаверяющими. Все работало со всеми веб-браузерами, но рекомендуемым был Google Chrome, потому что он использует тот же склад SSL, что и IE, поэтому установка сертификата была довольно простой (click-click-password-done!). После последнего обновления Google "Chrome 29.0.1547.57 m" никто не может получить доступ к моему веб-серверу, даже я. Только ошибка Google chrome! IE и FF работают штраф. Ошибка: ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED. То же самое в журнале ошибок сервера. У вас есть предложения? Проблема в том, что большинство клиентов не знакомы с ПК, и они очень испугались этой ситуации. Так что ребята из службы поддержки находятся под волной звонков.

5 ответов


Я испытываю то же самое здесь с клиентскими системами Windows7, неспособными аутентифицироваться с клиентскими сертификатами против некоторых наших систем, но не других. На затронутых серверах работает Apache Tomcat, а на незатронутых - IIS7, хотя я не решаюсь определить эту разницу как виновника.

кто - нибудь еще это видит?

EDIT:

Я могу устраните проблему, отключив TLSv1.2 на сервер. Кто-нибудь еще способен воспроизвести этот опыт?

Мне также было бы интересно узнать, видит ли кто-нибудь еще это на чем-либо, кроме платформы Windows, поскольку это единственное место, где это происходит здесь (та же версия OSX не имеет проблем).

EDIT2:

отчет об ошибке Chrome здесь:https://code.google.com/p/chromium/issues/detail?id=278370

EDIT3:

должно работать снова в последней Chrome стабильной. Chrome 30 будет иметь более надежное исправление, но 29.x также должен работать сейчас.


мы испытываем ту же проблему. Как сообщил Шон, похоже, что Chrome на Windows XP ведет переговоры TLSv1.2 даже если операционная система не поддерживает SHA-2 (скажем, SHA-256 или SHA-384) функция хеширования.

мы обнаружили, что Chrome терпит неудачу, когда он получает "запрос сертификата клиента" после приветствия сервера. Сервер HELLO сам согласовывает RC4-SHA1 (в нашей среде), который должен преуспеть. Проблематика пакет, кажется, "запрос сертификата клиента", который включает Функции SHA-2 (а также SHA1) для хэшей.

вызов Chrome с помощью "--enable-logging --log-level=0 " выводит следующее сообщение: ERROR:nss_ssl_util.cc (193)] ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED: ошибка NSS -12222, ошибка ОС -2146893816

Это ошибка операционной системы, соответствующая "NTE_BAD_ALGID" для функции CryptSignHash: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380280(v=vs. 85).aspx

Отключение TLSv1.2 на сервер должен устранить проблему. Но я думаю, что Chrome должен предпочесть SHA1 на Windows XP.


Это Комбинация Win XP и Google Chrome 29.0.1547.57 m На Win 7/8 эта проблема не возникает.

вы можете установить старую рабочую версию 28.0.1500.95 http://www.filehippo.com/download_google_chrome/15657/

но настройки для отключения обновления не так легко. http://dev.chromium.org/administrators/turning-off-auto-updates


проблема вызвана запуском Chrome TLSv1.2 в Windows XP.

Это может быть отключено на стороне сервера, но и на стороне клиента.

чтобы запустить Chrome с более низкой версией TLS, запустите его с помощью опции командной строки --ssl-version-max=tls1.1


У меня была эта проблема с подключением Chrome с WebSockets к Apache throw proxy_wstunnel_module.

моим решением была настройка httpd.conf

ProxyPass /wss2/ ws://127.0.0.1:8080/  retry=0 keepalive=On
ProxyPassReverse /wss2/ ws://127.0.0.1:8080/  retry=0 
    <Location /wss2/>
        SSLRequireSSL On
        SSLVerifyClient none
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars +StrictRequire
        SSLRenegBufferSize 10486000
    </Location>

Chrome WebSockets не нравится параметр SSLVerifyClient необязательный

надеюсь, это поможет.