2013-08-22 1722 views
11

我有一個使用SSL客戶端證書授權網站。 所有客戶端證書均使用OpenSSL生成並且是自簽名的。所有網頁瀏覽器都可以使用,但推薦使用的是Google Chrome瀏覽器,因爲它使用與IE相同的SSL倉庫,因此安裝證書非常容易(點擊 - 密碼完成!)。 在Google「Chrome 29.0.1547.57 m」的最後一次更新之後,沒有人可以訪問我的網絡服務器,甚至是我。 僅限Google chrome錯誤! IE和FF工作正常。 錯誤是:ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED。 與服務器錯誤日誌相同。 你有什麼建議嗎? 問題是,大多數客戶不熟悉PC,他們對這種情況非常害怕。所以電話支持人員正在接聽電話。ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED谷歌瀏覽器

回答

4

我在這裏遇到了同樣的情況,Windows7客戶端系統無法使用客戶端證書對我們的一些系統進行身份驗證,但無法對其他系統進行身份驗證。受影響的服務器正在運行Apache Tomcat,而未受影響的服務器正在運行IIS7,儘管我很猶豫是否將這種差異確定爲罪魁禍首。

任何人看到這個?

編輯:

我能夠服務器上禁用TLSv1.2工作消除問題。其他人能否複製這種體驗?

我也有興趣知道其他人是否看到這對任何東西,但在Windows平臺,因爲它是它發生在這裏的唯一的地方(同OSX版本沒有問題)。

EDIT2:

Chrome的錯誤報告在這裏:https://code.google.com/p/chromium/issues/detail?id=278370

EDIT3:

應該再在最新的Chrome穩定的合作。 Chrome 30將具有更強大的修復功能,但現在應該可以使用29.x。

6

我們遇到同樣的問題。肖恩曾報道過,好像是Chrome的Windows XP上 協商TLSv1.2工作,即使操作系統不支持SHA-2(也就是說,SHA-256和SHA-384) 散列函數。

我們發現當它收到「客戶端證書請求」下列服務器HELLO是Chrome的失敗。 SERVER HELLO自己協商應該成功的RC4-SHA1(在我們的環境中)。有問題的 數據包似乎是包含散列的SHA-2(以及SHA1)函數的「客戶端證書請求」。

調用瀏覽器與 「--enable測井--log級別= 0」 輸出以下消息: ERROR:nss_ssl_util.cc(193)] ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED:NSS錯誤-12222,OS錯誤-2146893816

這是相應的「NTE_BAD_ALGID」爲CryptSignHash功能的操作系統錯誤: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380280(v=vs.85).aspx

在服務器上禁用TLSv1.2工作應該解決這個問題。但我認爲Chrome應該更喜歡Windows XP上的SHA1。

+0

謝謝!禁用TLSv1.2解決了這個問題。 – Alexey

0

該問題是由Chrome在Windows XP上運行TLSv1.2引起的。

這可以在服務器端禁用,但也可以在客戶端。

要使用TLS的低版本的Chrome瀏覽器上運行,用命令行選項--ssl版本-MAX = tls1.1

0

我有這個問題Chrome的連接使用WebSockets到Apache拋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> 

鉻的WebSockets不喜歡的參數SSLVerifyClient可選

我希望這有助於。