SSL无法在具有多个虚拟主机的ubuntu服务器上运行

时间:2017-08-17 17:03:34

标签: apache ubuntu ssl

我运行一个托管多个站点的Ubuntu(17.04)服务器。我现在托管的其中一个网站是电子商务网站,需要SSL证书。我已经完成了许多不同的教程,并且我已经完成了每一步,但当我使用HTTPS访问该网站时,我只是得到了一个错误页面。

以下屏幕截图中的域名是假的。

首先我从Comodo购买了SSL证书。他们从服务器请求CSR,因此我使用以下命令生成它:

openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

我粘贴了CSR并毫无问题地生成了CRT。现在我有来自Comodo的CRT并更新了我的vhost以获得安全连接:

<VirtualHost *:443>

ServerAdmin test@test.com
ServerName www.domain.com
ServerAlias domain.com
DirectoryIndex index.php
DocumentRoot /var/www/html/domain
SSLEngine on
SSLCertificateFile /etc/ssl/certs/www_domain_com.crt
SSLCertificateKeyFile /etc/ssl/private/domain_com.key

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
然后我跑了:

a2enmod ssl

最后重启了apache。现在,当我访问该网站时,我只看到了这个错误页面:

enter image description here

查看apache错误日志,可能出现错误的唯一提示是以下消息:

[Thu Aug 17 16:42:42.746221 2017] [mpm_prefork:notice] [pid 19871] AH00169: caught SIGTERM, shutting down
[Thu Aug 17 16:42:42.836087 2017] [ssl:warn] [pid 22306] AH01909: 2001:4802:7801:103:be76:4eff:fe20:7c04:443:0 server certificate does NOT include an ID which matches the server name
[Thu Aug 17 16:42:42.874200 2017] [ssl:warn] [pid 22316] AH01909: 2001:4802:7801:103:be76:4eff:fe20:7c04:443:0 server certificate does NOT include an ID which matches the server name
[Thu Aug 17 16:42:42.878354 2017] [mpm_prefork:notice] [pid 22316] AH00163: Apache/2.4.25 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations
[Thu Aug 17 16:42:42.878374 2017] [core:notice] [pid 22316] AH00094: Command line: '/usr/sbin/apache2'

真的很感激任何帮助。这是这个服务器第一次拥有一个SSL网站,所以也许我错过了使用openSSL或其他东西的步骤。

1 个答案:

答案 0 :(得分:0)

您的第一个错误是从Namecheap购买证书。我刚刚遇到类似的问题让他们的crt工作。直到我决定使用Let's Encrypt并使用他们的certbot生成我能够解决问题的SSL证书。我无法证明这一点,但我怀疑Namecheap的捆绑工具是否存在构建签名证书的问题。

Let's Encrypt是一个完全免费的开源项目,可以解决您的HTTPS需求。我也有多个虚拟主机,并在几分钟内启动并运行Let's Encrypt。

https://letsencrypt.org/