apache - SSL 不适用于具有多个虚拟主机的 ubuntu 服务器

标签 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 并更新了我的虚拟主机以实现安全连接:

<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 之类的步骤。

最佳答案

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

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

https://letsencrypt.org/

关于apache - SSL 不适用于具有多个虚拟主机的 ubuntu 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45741150/

相关文章:

java - Apache Tomcat 为 Web 应用程序返回 404 错误

php - 如何根据 .htaccess 中的文件类型限制文件上传大小限制

c - 制作一个C程序来编译另一个

c++ - 简单的 OpenGL 代码总是导致段错误(Ubuntu 上的 C++,虚拟机)

ssl - 如何将 Windows 证书存储与 Jetty 一起使用?

c# - 使用 Tcplistener 的 HTTPS

php - Apache 内存错误

Oracle HTTP 服务器 htdocs

node.js - Angular-cli项目跨平台构建问题

ssl - Jenkins 工作-DSL : How to accept URL over Https with own root-ca signed certificate?