Firefox 21 以降のバージョンで、現在取り組んでいるプロジェクトでクライアント証明書の有効期限が切れるという問題が発生しています。
環境: client-pc があり、それぞれに 1 つのクライアント証明書があります。これらのクライアント証明書は、エクスポート パスワードが設定された PKCS12 ファイル形式を使用してインストールされました。クライアントはドメイン 'a.somedomain.net' を持つサイトを呼び出しており、すべてのサーバー要求はターゲットとして 'b.somedomain.net' を持っています。証明書は「*.somedomain.net」に対して有効です。これまでのところ、とても良いです。すべて問題ありません。
現在、証明書の有効期限が切れているため、証明書の更新を静かに実行し、ユーザーの操作を必要としない更新メカニズムが必要でした。$_SERVER['SSL_CLIENT_V_REMAIN'] 変数をチェックして、残りの日数が事前定義された値を下回っている場合は更新を実行しています。それも機能します。
更新が必要な場合に備えて、「b.somedomain.net」にあるスクリプトに http リダイレクトを行っています。フォームには、HTML5 ブラウザーが公開鍵と秘密鍵のペアを作成し、公開鍵をフォーム アクション URL に送信するために必要なすべての DN データが含まれています。それも機能します。
これで、サーバーは OpenSSL/PHP を介して証明書に署名し、ブラウザーによる認識のために正しいヘッダーを含む証明書を返します。しかし、FF は、「証明書が要求されたときに作成された、対応する秘密鍵を所有していないため、この個人証明書をインストールできません」と言います。
秘密鍵はFFのドアの後ろにあり、FFからのみ公開鍵を取得します.OpenSSLはそれで問題なく、エラーをスローしません. 私は何を間違っていますか?
さらに情報が必要な場合は、コメントしてください。
前もって感謝します。