
SSL 証明書を使用してクライアント認証を実装しようとしています。
http://www.modssl.org/docs/2.8/ssl_howto.html#auth-selective
次のエラーが発生します。
Apache: 再ネゴシエーション ハンドシェイクに失敗しました: クライアントに受け入れられませんでした!?
ファイアフォックス:
ssl_error_handshake_failure_alert
設定エラーだと思いますが、原因がわかりません。
追加情報: 商用 CA サーバー証明書サーバーは、Apache 2.2 および Passenger で問題なく動作します。クライアント認証関連のディレクティブのみが動作しません。
答え1
ハンドシェイクが失敗する場合、クライアントがネゴシエートされた SSL プロトコルを理解していない (または使用するように構成されていない) 可能性があります。たとえば、FF ですべての SSL プロトコル (SSL2、SSL3、TLSv1) が有効になっているかどうかを確認し、それを Apache 用に構成された SSL プロトコルと一致させます。
アップデート:また、ネットワーク トレースを実行して、クライアントとサーバーの両方がサポートする暗号スイートを確認することも役立つ場合があります。一致するスイートが見つからないため、ハンドシェイクが失敗する可能性があります。
または、modssl ログを設定すると、さらに詳細な情報も明らかになります。http://www.modssl.org/docs/2.8/ssl_reference.html#ToC19
答え2
ひょっとすると Debian/Lenny を実行していますか?
同様の問題に遭遇し、最終的に、受け入れられる証明書には MD5 (SHA のようなものでも可) チェックサムが含まれていてはならないことがわかりました。これは安全ではないと考えられるためです。
ただし、私たちの問題は GnuTLS+OpenLDAP に関するものでした。さらにお金を使う前に、更新された証明書や自己署名証明書を試してみるとよいでしょう。
答え3
私の場合、クライアント証明書 (Firefox にインポートされた '.p12' ファイル) が古く、このようなエラーが発生しました。その場合は、クライアント証明書を再生成して署名する必要があります。
答え4
PaypalのURLを確認する
api.paypal.com/webscr&cmd=_express-checkout&token='; を api.paypal.com/webscr&cmd=_express-checkout&token='; に置き換えます。
詳細については、以下を参照してください... http://blog.oryxn.com/2010/10/ssl_error_handshake_failure_alert-paypal/