Firefox、IE共に「*.p12」形式の証明書をインポートしました。IEで該当のhttpsに接続すると、「デジタル証明書の選択」というポップアップが表示され、選択し「OK」を押下しますが、「取り消されたアクション」や「ページを表示できません」が表れます。
サーバー側の「ssl_access_log」や「ssl_error_log」には何も出力されていませんし、ieHTTPheaderなどでHTTP ヘッダーをみても何も出力されないので、サーバー側にリクエストがいっていない?ようにも見えます。IEでも正常にクライアント認証を通過させる方法もしくは検証方法はありませんか?
解決につながる回答には200P以上をお支払いします。ぜひともご教授ください。
クライアント証明書を使う場合,そのSSL証明書はPKCS#12形式でないと使えません.
拡張子が.p12とのことなので,PKCS#12形式と推測されますので,この点は問題ないと思います.
文章から推測するに,ご自身のサーバ,SSL証明書もご自身で用意されているようですが,これはいわゆるオレオレ証明書ではないでしょうか.
SSL Client Authentication を行う場合,サーバ,クライアント間の通信は当然SSLとなるため,サーバ側にもSSL証明書を備えてSSL暗号化通信を行っていると思いますが,もしこの通信に使われている証明書がオレオレ証明書であった場合,IEは挙動として,クライアント証明書を送ってない可能性があります.
また,クライアント証明書がオレオレ証明書の場合,サーバ側が信頼するとしたCAから発行されていない可能性もあります.
まずは,ブラウザが原因か,サーバが原因か切り分ける必要がある(Firefoxの場合は,成功じゃなくて,SSL Client Authentication自体行われていなかった,という可能性もあるので)と思うので,IE などのブラウザではなく.OpenSSL の s_client 機能を使って,通信内容をきちんを確かめてみることをオススメします.
% openssl s_client -connect serverhostname:443 -cert client.crt
蛇足ですが,実運用する場合は,必ず両証明書とも(ブラウザで)信頼されるCAからの発行をしてください.クライアント証明書の発行は,まだかなり高額だと思います.
おれおれ証明書、SSLクライアント認証、IE6で動作はするはずです。
http://alk.dip.jp/apache2-default/sv290.html
------
SSLVerifyClientのオプション設定?
http://www.nina.jp/server/slackware/httpd/httpd-ssl-client.html
これと似た手順で実行していますが、なぜかIEだけで動作しない現象に悩んでいます。
おっしゃる通り、おれおれ証明書です。
openssl s_client -connect xxxxxxxxxxx:443 -CAfile /etc/CA/cacert.pem -prexit
ではうまくVerify return code: 0 (ok)となりました。
openssl s_client -connect xxxxxxxxxxx:443 -cert /etc/CA/cert.pem -prexit
とやると、
-----
29414:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:644:Expecting: ANY PRIVATE KEY
セグメンテーション違反です
-----
と怒られますので、このあたりに原因がありそうでしょうか。家庭内のネットワークへの外部からの認証に使いたいため、できればおれおれ証明書で突き通したいと思っております。