使用 Apache2 将子域名重定向到 HTTPS 中的子域名

使用 Apache2 将子域名重定向到 HTTPS 中的子域名

我有这些子域名:

link.domain.com
links.domain.com

我想将 重定向link.domain.comlinks.domain.com。为此,我使用了与此处所述相同的方法:将子域名重定向到子域名 Apache2并且它有效。

我使用 Let's Encrypt 安装了 TLS 证书links.domain.com,可以完美地links.domain.com通过 HTTPS 访问。我希望从link.domain.com到 的重定向links.domain.com也能在 HTTPS 中有效。

这是我的配置文件:

<IfModule mod_ssl.c>
   <VirtualHost *:443>
      DocumentRoot /var/www/links/
      ServerName links.domain.com

      <Directory "/var/www/links/">
         Options Indexes MultiViews FollowSymLinks
         AllowOverride None
         Order deny,allow
         Allow from all
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/error_links.log
      CustomLog ${APACHE_LOG_DIR}/access_links.log combined 

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      SSLCertificateFile /etc/letsencrypt/live/links.domain.com/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/links.domain.com/privkey.pem
      Include /etc/letsencrypt/options-ssl-apache.conf
   </VirtualHost>
</IfModule>

我已经尝试了以下操作:

  • 添加

    ServerAlias link.domain.com RedirectMatch permanent ^link.domain.com/(.*)$ https://links.domain.com/$1

    在该ServerName links.domain.com行之后。

  • 添加

    <VirtualHost *:443> ServerName link.domain.com RedirectMatch permanent ^/(.*)$ https://links.domain.com/$1 </VirtualHost>

    在已经定义的VirtualHost之前和之后。

沒有人工作。

你有什么主意吗 ?

答案1

您需要在两个VirtualHosts 中都进行 SSL 配置,但这RedirectMatch不是必需的。尝试:

<IfModule mod_ssl.c>
   <VirtualHost *:443>
      ServerName link.example.com

      SSLCertificateFile /etc/letsencrypt/live/links.example.com/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/links.example.com/privkey.pem
      Include /etc/letsencrypt/options-ssl-apache.conf

      Redirect / https://links.example.com/
   </VirtualHost>
</IfModule>

请注意,NET::ERR_CERT_COMMON_NAME_INVALID如果你没有link.example.com主题备用名称您的证书。

相关内容