【问题标题】:Apache2 VirtualHost SSL config issuesApache2 VirtualHost SSL 配置问题
【发布时间】:2021-05-06 14:38:29
【问题描述】:

Debian 10 / Apache2 -

目标:将所有网络流量重定向到 VPS 服务器到 SSL。我托管了 2 个站点:bjmurrey.com 和 nextcloud.bjmurrey.com。我有 1 个 IP 地址。

问题:我终其一生都无法找到完成这项工作的方法。我已经尝试了在这里和其他地方发布的 1000 条建议,但没有成功。我得到的最接近的是在输入 nextcloud.bjmurrey.com 时所有内容都重定向到https://bjmurrey.com。我也是这方面的新手,所以请善待。

我有一个如下所示的 default.conf:

<VirtualHost *:80>
    ServerName www.bjmurrey.com
    ServerAlias bjmurrey.com
    DocumentRoot /var/www/blog
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Redirect permanent / https://bjmurrey.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName nextcloud.bjmurrey.com
    DocumentRoot /var/www/nextcloud
    ServerAlias nextcloud.bjmurrey.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Redirect permanent / https://nextcloud.bjmurrey.com/
</VirtualHost>

我有一个如下所示的 default-ssl.conf:

<VirtualHost bjmurrey.com:443> 
   ServerName bjmurrey.com 
   ServerAlias www.bjmurrey.com
   DocumentRoot /var/www/blog
   SSLEngine on 
   SSLCertificateFile /etc/letsencrypt/live/bjmurrey.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/bjmurrey.com/privkey.pem
   Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

<VirtualHost nextcloud.bjmurrey.com:443>
    ServerName nextcloud.bjmurrey.com
    DocumentRoot /var/www/nextcloud
    ServerAlias nextcloud.bjmurrey.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/nextcloud.bjmurrey.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.bjmurrey.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

bjmurrey.com 位于 var/www/blog 和 nextcloud.bjmurrey.com 位于 var/www/nextcloud 目录中。

我的 DNS 记录 www 和 nextcloud 都指向同一个 IP。我只有 1 个可用 IP。这是一个非常低流量的网站。 我已经做了各种各样的事情,比如只将默认虚拟主机重定向到 nextcloud 并删除了所有提到 www 站点的内容,它仍然重定向到 bjmurrey.com,或者重定向到 SSL 错误,指出无法加载 nextcloud,因为ssl 仅适用于 bjmurrey.com。如您所见,我已经为 bjmurrey.com 和 nextcloud.bjmurrey.com 使用letsencrypt 制作了证书。

我正沮丧地拔掉我所有的头发,所以我知道我已经在这里挖掘了我所有的知识。救命!

【问题讨论】:

  • 我假设服务器内部的两个主机都解析到相同的地址)。使用 *:443 和反转顺序(首先放置 ServerName nextcloud.xxxx.xxx。对于端口 80 中的重定向,我必须考虑更多..
  • 我确实尝试过反转它们 - 结果相同。 :( 不过感谢您的提示!:) 也许这与 SSL 证书有关,因为这两个站点都在同一个域中(bjmurrey.com 和 nextcloud.bjmurrey.com)?
  • 添加了答案。请仔细检查您使用的是 *:80 和 *:443。

标签: ssl debian apache2 virtualhost nextcloud


【解决方案1】:

我已经重新测试了 http 并且正在为我工​​作。

mydomain.myhost.example.commyhost.example.com 两个地址解析到同一个 IP。

这是我的配置文件

ServerName example.com

<VirtualHost *:80>
        ServerName mydomain.myhost.example.com
        DocumentRoot /var/www/mydomain
</VirtualHost>

<VirtualHost *:80>
        ServerName myhost.example.com
        DocumentRoot /var/www/myhost
</VirtualHost>

在 Ubuntu 20.04.1、Apache 2.4 中测试

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 2014-12-08
    • 2016-11-19
    • 1970-01-01
    • 2021-04-16
    • 2014-01-13
    • 2014-06-21
    • 2017-11-26
    • 2018-04-01
    相关资源
    最近更新 更多