Windows XPは、仮想ホストで使用されたことがないにもかかわらず、Ubuntuに同梱されているsnakeoil証明書を使用し続けます。
証明書は
/etc/ssl/certs/ssl-cert-snakeoil.pem
キーがどこにあるのかわかりません。もっともらしいと思うのは
/etc/ssl/private/ssl-cert-snakeoil.key
CA証明書は
/etc/ssl/certs/ca-certificates.crt
しかし、私には分からない。
これまでのところ、次のようなさまざまなopensslコマンドを試しました。
openssl ca -keyfile /etc/ssl/private/ssl-cert-snakeoil.key \
-revoke /etc/ssl/certs/ssl-cert-snakeoil.pem \
-cert /etc/ssl/certs/ca-certificates.crt
その結果は
Using configuration from /usr/lib/ssl/openssl.cnf
CA certificate and CA private key do not match
14805:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:406:
私はすべてアイデアを失っています。どんな助けも大歓迎です。
ここで何が起こったのですか:
GeoTrustから証明書を購入し、インストールし、その証明書を使用して新しい仮想ホストをアクティブにし、Apache2を再起動しました。このサーバーの存続期間中に、Webトラフィックを保護するために他の証明書が使用されることはありません。もちろん、スネークオイル証明書は使用されません。 Windows Vista以降、および私がテストしたOSXおよびすべてのLinuxディストリビューションは、正しい証明書を使用します。 Windows XPは、snakeoil証明書を使用します(IEでは、そのVMには他のブラウザーはありません)。スクリーンショットは次のとおりです。
あなたが提供した追加情報を考えると、おそらく私が別の答えを始める方が簡単でしょう。
ダミーの「snakeoil」証明書がWindowsクライアントに提示されているようには見えません。 「snakeoil」証明書はCN=Ubuntu
という件名で生成されますが、Windowsボックスに提示される証明書はCN=Production
という件名を持ちます。そこで、ここで3つ目の証明書を探しています。
OpenSSLのs_client
を使用してサーバーに接続すると、同じ証明書が表示されます。
$ openssl s_client -connect portal.avendimedia.com:443
...
Certificate chain
0 s:/CN=Production
i:/CN=Production
...
私が信じているのは、 Server Name Indication 拡張を使用するようにWebサーバーを設定したということです。この拡張機能は、クライアントが接続するホスト名に応じて、サーバーが異なる証明書を提示できるように設計されています。
これは、ほとんどの最新のブラウザーでは正常に機能しますが、Vistaより前のWindowsバージョンのInternet Explorerでは機能しません。この時点で、MicrosoftがWindows上のSSLライブラリを更新してXPがSNI拡張をサポートする可能性は非常に低いようです。
サイトをXPのInternet Explorerで動作させる必要がある場合は、Apache構成から同じIPアドレスで実行されているこの他のSSLホストへの参照を削除できるかどうかを確認してください。
「snakeoil」証明書は、ssl-cert
パッケージがインストールされると自動的に生成されます。
これは自己署名証明書であるため、失効してもあまり意味がありません。ただし、新しいものは簡単に生成できます。
Sudo make-ssl-cert generate-default-snakeoil --force-overwrite
変更を有効にするには、おそらくその証明書を使用していたサービスを再起動する必要があります。
Windows XPが証明書を使用し続けると言うとき、正確にはどういう意味ですか?そのコンピューターのWebブラウザーに、Ubuntuシステムによって生成された特定のsnakeoil証明書を信頼するように指示した場合、ブラウザーの証明書管理インターフェースでその信頼を取り消すのは簡単なことです。