Apache 2.2.3 / mod_ssl / CentOS 5.5 VPS
我们的证书已于2011-10-06过期,即使我们似乎正确安装了新证书,但浏览该站点仍然显示已过期的证书!我尝试删除浏览器缓存并使用几种不同的浏览器。ssl.conf文件中的相关行(我已排除掉那些注释掉的行):
Listen 127.0.0.1:443
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
# Note - I tried disabling SSLSessionCache with the "none" setting but it didn't help.
<VirtualHost 127.0.0.1:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt
SSLCertificateKeyFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.key
SSLCertificateChainFile /var/certs/gentlemanjoe.com/new2011/gd_bundle.crt
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ServerAdmin webmaster@donotemailme.com
DocumentRoot /var/www/gentlemanjoe.com
ServerName gentlemanjoe.com
<Directory /var/www/gentlemanjoe.com>
AllowOverride All
Order deny,allow
allow from all
</Directory>
</VirtualHost>
我检查过的事情
首先,我尝试将旧的证书和密钥文件移动到一个完全不同的文件夹中,以确保Apache仍不会以某种方式获取它们。没有改变。为了好玩,我尝试临时重命名新的证书和密钥文件,而Apache忠实地抱怨并拒绝启动。
然后,我尝试确保通过编辑错误的配置文件不会被愚弄。使用“ locate”,我在/etc/httpd/conf/httpd.conf下仅找到一个httpd.conf文件。我还使用“定位”来验证只有一个ssl.conf文件,即/etc/httpd/conf.d/ssl.conf。密钥文件是我使用OpenSSL生成的,遵循GoDaddy为生成CSR所给出的说明。
通过将test.html文件上传到/var/www/gentlemanjoe.com文件夹并确认可以浏览到该站点,我已验证自己在使用正确的站点。但是,如果尝试在HTTPS中查看测试文件,则会收到相同的证书过期警告。
我验证了证书本身具有正确的到期日期:
openssl x509 -in /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
07:e7:49:69:97:96:16
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certificates.godaddy.com/repository, CN=Go Daddy Secure Certification Authority/serialNumber=07969287
Validity
Not Before: Oct 21 17:37:55 2011 GMT
Not After : Oct 8 21:16:03 2013 GMT
Subject: C=CA, ST=BC, L=Burnaby, O=Diamond Bailey Consolidated Commercial Services Ltd, OU= , CN=www.gentlemanjoe.com
我尝试使用新的CSR在GoDaddy上重新键入证书,一切似乎正常,但是在浏览器中得到的结果相同。
可能的线索1
每当我执行“ apachectl restart”时,我都会在error_log文件中看到以下内容:
[Fri Oct 21 18:03:33 2011] [notice] SIGHUP received. Attempting to restart
[Fri Oct 21 18:03:33 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Oct 21 18:03:33 2011] [notice] Digest: done
[Fri Oct 21 18:03:33 2011] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Fri Oct 21 18:03:33 2011] [info] LDAP: SSL support available
[Fri Oct 21 18:03:33 2011] [info] Init: Seeding PRNG with 256 bytes of entropy
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Shared memory session cache initialised
[Fri Oct 21 18:03:33 2011] [info] Init: Initializing (virtual) servers for SSL
[Fri Oct 21 18:03:33 2011] [warn] RSA server certificate CommonName (CN) `www.gentlemanjoe.com' does NOT match server name!?
[Fri Oct 21 18:03:33 2011] [info] Server: Apache/2.2.3, Interface: mod_ssl/2.2.3, Library: OpenSSL/0.9.8e-fips-rhel5
[Fri Oct 21 18:03:34 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Oct 21 18:03:34 2011] [info] Server built: Aug 30 2010 12:28:40
GoDaddy技术人员告诉我,www与非www无关紧要,我倾向于同意,因为浏览器中的安全警告不是抱怨服务器名称不匹配,而是抱怨过期,表明旧证书仍然有效正在以某种方式加载。
可能的线索2
http://gentlemanjoe.com的HTTP Server响应标头显示“ Andromeda”而不是“ Apache”。这对我来说很奇怪,因为我对“ Andromeda”的谷歌搜索打开了一个媒体服务器类型的项目,该项目不会安装在该服务器上(但是我不能确定地说,因为我没有设置任何内容) ,通常的管理员/开发人员正在休假,而我只是在帮助他的网站的朋友。)而且,httpd.conf文件不包含字符串“ Andromeda”,表明尚未对其进行修改以将其吐出来。因此,这可能是他正在使用的Magento电子商务平台,但是替换标准Apache响应标头的意义何在?