如何撤销默认的蛇油证书?

Joh*_*och 2 ssl 11.04 certificates

Windows XP 一直使用 Ubuntu 附带的蛇油证书,尽管它从未在任何虚拟主机中使用过。

该证书位于

/etc/ssl/certs/ssl-cert-snakeoil.pem
Run Code Online (Sandbox Code Playgroud)

我不确定钥匙在哪里。我看到的唯一一个似乎合理的是在

/etc/ssl/private/ssl-cert-snakeoil.key
Run Code Online (Sandbox Code Playgroud)

我认为 CA 证书在

/etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)

但我不确定。

到目前为止,我已经尝试了各种 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
Run Code Online (Sandbox Code Playgroud)

那一个的输出是

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:
Run Code Online (Sandbox Code Playgroud)

我都没有想法了。任何帮助是极大的赞赏。

编辑

这是发生的事情:

我从 GeoTrust 购买了一个证书,安装了它,使用该证书激活了新的虚拟主机,然后重新启动了 apache2。在此服务器的生命周期中,从未使用过任何其他证书来保护网络流量,更不用说蛇油证书了。Windows Vista 及更高版本,以及 OSX 和我测试过的所有 Linux 发行版都使用正确的证书。Windows XP 使用蛇油证书(在 IE 中。该 VM 上没有其他浏览器)。以下是一些截图:

Chrome 中加载的正确证书

Windows XP 上 IE 8 中加载的错误证书

Jam*_*dge 6

鉴于您提供的额外信息,我可能更容易开始另一个答案。

似乎没有向 Windows 客户端提供虚拟的“snakeoil”证书。“snakeoil”证书的主题为CN=Ubuntu,而提供给 Windows 框的证书的主题为CN=Production。所以我们在这里查看第三个证书。

如果我使用 OpenSSL 连接到您的服务器,我可以看到相同的证书s_client

$ openssl s_client -connect portal.avendimedia.com:443
...
Certificate chain
 0 s:/CN=Production
   i:/CN=Production
...
Run Code Online (Sandbox Code Playgroud)

我相信正在发生的是您已将 Web 服务器配置为使用服务器名称指示扩展。此扩展旨在让服务器根据客户端想要连接的主机名呈现不同的证书。

这适用于大多数现代浏览器,但不适用于 Vista 之前的 Windows 版本的 Internet Explorer。在这一点上,微软似乎不太可能更新 Windows XP 上的 SSL 库以支持 SNI 扩展。

如果您需要您的站点在 XP 上使用 Internet Explorer,请查看是否可以从 Apache 配置中删除对在同一 IP 地址上运行的其他 SSL 主机的引用。