为SERVER配置的RSA证书不包含与服务器名称匹配的ID


28

我最近在上面启动了带WordPress的LAMP服务器(所有最新版本),并且尝试安装最近购买的SSL证书。当我重新启动时apachectl,error_log给了我这个:

[Tue Feb 25 01:07:14.744222 2014] [mpm_prefork:notice] [pid 1744] AH00169: caught SIGTERM, shutting down
[Tue Feb 25 01:07:17.135704 2014] [suexec:notice] [pid 1765] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Feb 25 01:07:17.217424 2014] [auth_digest:notice] [pid 1766] AH01757: generating secret for digest authentication ...
[Tue Feb 25 01:07:17.218686 2014] [lbmethod_heartbeat:notice] [pid 1766] AH02282: No slotmem from mod_heartmonitor
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.5/modules/mysql.so' - /usr/lib64/php/5.5/modules/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.5/modules/mysqli.so' - /usr/lib64/php/5.5/modules/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
[Tue Feb 25 01:07:17.305292 2014] [mpm_prefork:notice] [pid 1766] AH00163: Apache/2.4.6 (Amazon) OpenSSL/1.0.1e-fips PHP/5.5.7 configured -- resuming normal operations
[Tue Feb 25 01:07:17.305378 2014] [core:notice] [pid 1766] AH00094: Command line: '/usr/sbin/httpd'

虽然ssl_error_log给了我这个:

[Tue Feb 25 00:57:15.802287 2014] [ssl:warn] [pid 1705] AH01909: RSA certificate configured for ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com:443 does NOT include an ID which matches the server name
[Tue Feb 25 00:57:15.899327 2014] [ssl:warn] [pid 1706] AH01909: RSA certificate configured for ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com:443 does NOT include an ID which matches the server name

我将“ ServerName”更改ssl.conf为服务器的名称(dcturano.com)并重新启动apachectl,但是发生此错误。有什么想法吗?

顺便说一句,我还没有设置服务器的CommonName,这可能是问题吗?

Answers:


45
openssl x509 -in server.crt -noout -subject

应返回证书的CN。那是您必须在ServerName指令中使用并连接的名称。


#openssl x509 -in server.crt -noout -subject错误打开证书server.crt 140451499632288:错误:02001002:系统库:fopen:无此类文件或目录:bss_file.c:398:fopen('server.crt',' r')140451499632288:错误:20074002:BIO例程:FILE_CTRL:系统lib:bss_file.c:400:无法加载证书
jmituzas 2014年

1
@jmituzas,你应该改变server.crtopenssl x509 -in server.crt -noout -subject您server.crt这位置
avivmg

4
如今,当今几乎所有公共CA都使用SubjectAlternativeName扩展名颁发证书,并且您可以使用该扩展名中的任何或所有名称(或任何与通配符匹配的名称)。OpenSSL不会孤立地显示SAN,但您可以执行以下操作openssl x509 -in cert -text | grep -A1 "Subject Alternative Name"
dave_thompson_085 2015年

1
另外,请确保添加ServerName指令,而不仅仅是设置虚拟主机的地址(在我看来,这就是问题所在)。
hugovdberg

做到了。复制CN值localhost从输出sudo openssl x509 -in /etc/ssl/certs/server.crt -noout -subjectServerName localhostsudo nano /etc/httpd/conf.d/ssl.conf。我在无业游民中使用centos 7。
Damodar Bashyal

2

另外,如果像我一样,甚至不使用ssl,您仍会收到此错误消息,因为默认情况下使用ssl是打开的。在这种情况下,请将其关闭!以下是摘录config.d/ssl.conf

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
#SSLEngine on
SSLEngine off

7
我对您的回答评分较低,因为问题明确指出他购买了证书。我通常不买我不打算使用的东西。
hugovdberg

2

我有同样的问题,但这是由于另一个原因。我将其发布在这里供将来的Google员工使用:

在我的apache2配置文件上,而不是<VirtualHost *:443>拥有<VirtualHost *:80>。一旦我解决了该问题,该站点就可以正常运行。


1

我通过/etc/hosts文件触发了此问题。

我有一个虚拟主机,我们称它为www.effinwhatever.com

服务器的主机名是www2

我在其中添加了一行,/etc/hosts以便可以针对虚拟主机卷曲内容:

192.168.1.200         www.effinwhatever.com

从该行中删除该行后/etc/hosts,我的Apache服务器再次开始正常运行(并重新启动该服务)。奇怪的。

我的SSL证书用于通配符域也可能是相关的。


0

我有同样的AH01909:RSA证书错误。就我而言,我具有正确的serverName价值。

错误的原因是<VirtualHost 10.11.12.13:443>安全站点的定义中的IP地址不正确。我打错了!


-1

确保您的ServerName与openssl x509 -in server.crt -noout -subject输出完全相同。如果有www,则ServerName也需要一个。如果不是,则ServerName必须删除www。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.