2013-06-19 49 views
0

我在我正在開發的一些項目上過期客戶端證書時遇到了一些麻煩,發生在Firefox 21和以下版本中。使用HTML5創建SSL客戶端證書<keygen>標記

環境:有一些客戶端,每個客戶端都有一個客戶端證書。這些客戶端證書是使用帶有導出密碼的PKCS12文件格式安裝的。客戶正在調用一個域名爲「a.somedomain.net」的網站,每個服務器請求都有「b.somedomain.net」作爲目標。這些證書對'* .somedomain.net'有效。到目前爲止,這麼好,一切都很好。

現在他們到期了,所以我想要有一些更新機制對證書進行安靜的,無需用戶操作的更新。如果剩餘天數低於預定義值,我正在檢查$ _SERVER ['SSL_CLIENT_V_REMAIN']變量並執行更新。這也是有效的。

如果需要更新,我正在做一些http重定向到位於「b.somedomain.net」的腳本。該表單包含所有DN數據HTML5瀏覽器創建公鑰/私鑰對並將公鑰發送到表單動作URL所需的所有DN數據。這也是有效的。

現在服務器通過OpenSSL/PHP對證書進行簽名,並返回帶有正確標頭的證書以供瀏覽器識別。但是,然後FF告訴我「此個人證書無法安裝,因爲您沒有擁有在請求證書時創建的相應私鑰。」

私鑰保留在FFs的門後面,我只從FF獲取公鑰,OpenSSL對它沒有問題,並且沒有錯誤。我究竟做錯了什麼?

如果需要更多信息,請發表評論。

在此先感謝。

中的其他問題生成客戶端證書

回答

0

在瀏覽器和簽署服務器「>在瀏覽器中生成客戶端證書和簽名服務器上存在具有鏈接到crosskeygen.js和HTML模板HTML-Templates,顯示它是如何工作的一個答案。 對我來說這是一個很大的幫助。