这里列出一些可能出现的常见问题。
检查 error_log
文件。如果您没有将虚拟主机设置为写入错误日志,您可能需要重新考虑。示例 SSL 虚拟主机写入错误日志文件。很可能您会在日志末尾看到一些警告和一个错误,基本上说明私钥与证书不匹配。
示例
[Tue Nov 21 09:09:02 2000] [notice] Apache/1.3.14 (Unix) mod_ssl/2.7.1
OpenSSL/0.9.6 configured -- resuming normal operations
[Tue Nov 21 09:09:16 2000] [notice] caught SIGTERM, shutting down
[Tue Nov 21 14:39:54 2000] [notice] Apache/1.3.14 (Unix) mod_ssl/2.7.1
OpenSSL/0.9.6 configured -- resuming normal operations
[Tue Nov 21 14:40:31 2000] [notice] caught SIGTERM, shutting down
[Tue Nov 21 14:43:53 2000] [error] mod_ssl: Init: (esi.fin.equifax.com:443)
Unable to configure RSA server private key (OpenSSL library error follows)
[Tue Nov 21 14:43:53 2000] [error] OpenSSL: error:0B080074:x509 certificate
routines:X509_check_private_key:key values mismatch
如果您收到上述错误消息,则密钥和证书很可能不匹配。请确保您没有使用默认的 server.key
文件。您还应该检查 httpd.conf
文件,以确保指令指向正确的私钥和证书。
您可以检查以确保您的私钥和证书格式正确且相互匹配。为此,请在其中一个终端窗口中给出以下命令以解密私钥,并在另一个终端窗口中解密证书。您将要比较的是每个密钥的模数和指数。如果密钥的模数和指数与证书中的集合匹配,则您已确认您的证书和密钥已正确配对。
如果所有其他方法都失败了,请创建一个新的私钥、CSR 或自签名证书。在执行此操作之前,请查看您的 CA 的重新颁发策略。重新颁发可能会收费。
查看证书的内容
openssl x509 -noout -text -in filename.crt
查看私钥的内容
openssl rsa -noout -text -in filename.key
最常见的原因是在创建 CSR 时省略了域名开头的“www”。该虚拟主机的“ServerName”指令定义的名称必须与证书提供的域名完全匹配,否则浏览器会告知客户端。例外情况是通配符证书。通配符证书的域名字段看起来像 *.somedomain.com。这使您可以使用一个证书用于 somedomain.com 的任意数量的子域(例如 host1.somedomain.com 和 host2.somedomain.com)。
如果您正在使用自签名证书,您将收到此警告。您的客户端可以选择信任或不信任您的证书。如果您拥有 CA 签名的证书但收到不受信任的警告,您可能需要安装其中间(根)证书。
如果您没有将 ModSSL 与 Apache 一起编译,则会发出此错误消息。某些 SSL 包使用不同的指令在虚拟主机中启动 SSL。如果您使用的软件包确实使用了不同的指令,您也会收到此错误消息。
无法重置此密码。唯一的解决方案是记住密码或创建新的私钥。然后,您将需要获取新证书或创建新的自签名证书。