无法在AWS EC2中的Apache服务器上设置SSL密钥

时间:2013-03-15 09:12:07

标签: ssl amazon-ec2

我在AWS上有一个带有Apache服务器的EC2实例。

我从Comodo购买了SSL证书,并在/ etc / pki / tls / private /中安装了以下文件: server.ca-bundle server.crt server.key

我还在/etc/httpd/conf/httpd.conf中添加了以下行:

<VirtualHost www.mydomain.com:443>
    ServerName www.mydomain.com
    DocumentRoot "/var/www/html"
    SSLENGINE on
    SSLCertificateFile /etc/pki/tls/private/server.crt
    SSLCertificateKeyFile /etc/pki/tls/private/server.key
    SSLCertificateChainFile /etc/pki/tls/private/server.ca-bundle
</VirtualHost>

并重新启动http服务器。

但是当尝试通过https://www.mydomain.com访问我的网站时,会出现证书错误警告(但如果我继续执行警告,则该网站会显示正常)。

我使用ssltool.com查看并获得: 经测试的网站www.mydomain.com与主题CN ip-10-203-65-225不同! 不用说,密钥文件是使用我的域名(CN = www.mydomain.com)创建的,而不是使用包含ip的名称。 当我在unix shell中输入“hostname”时,我确实得到了'ip-10-203-65-225',这是亚马逊自动给出的东西。但即使我改变它(在/ etc / sysconfig / network中)它仍被视为ip-10-203-65-225。

另一方面,在不安装密钥的情况下查看同样的问题:即使我从httpd.conf中删除这些行,并删除密钥文件,浏览器也会警告证书错误,就好像有一个自我签署证书并在ssltool.com上出现相同的错误。所以似乎并不是我的密钥文件无效,而是服务器根本不使用它们......

我完全糊涂了。请有人帮忙吗?

2 个答案:

答案 0 :(得分:3)

出于某些原因,我访问的所有页面都没有提到答案提到上述行应该在

/etc/httpd/conf.d/ssl.conf

而不是

/etc/httpd/conf/httpd.conf

(而不是在&lt; virtualHost&gt;部分内)

答案 1 :(得分:0)

您的证书已发布到与您的EC2实例的主机名匹配的公用名(CN)。您需要使用正确的主机名创建新的CSR,然后再次完成整个过程。生成新CSR时,请务必更改CN而不是接受默认值。