使用 HTTPS 时如何从 FR 重定向到 COM

使用 HTTPS 时如何从 FR 重定向到 COM

我有两个域名:我的域名.com我的域名.fr

我想按如下方式重定向流量:

  • 我的域名.com:80 -> 我的域名.com:443
  • 我的域名.fr:80 -> 我的域名.com:443
  • 我的域名.fr:443 -> 我的域名.com:443

我选择只使用 .com,对吗?我想是的。因为我只需要管理一个证书:.COM 证书。

我的/etc/apache2/站点可用/默认

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName www.my-domain.com
   ServerAlias my-domain.com
   Redirect permanent / https://www.my-domain.com
</VirtualHost>

<VirtualHost *:80>
   ServerName www.my-domain.fr
   ServerAlias my-domain.fr
   Redirect permanent / https://www.my-domain.com
</VirtualHost>

我的/etc/apache2/站点可用/默认-ssl

NameVirtualHost *:443

<VirtualHost *:443>
   ServerName www.my-domain.com
   ServerAlias my-domain.com
   DocumentRoot /var/www/my-domain/
   ErrorLog /var/log/my-domain/my-domain.com.error.log
   CustomLog /var/log/my-domain/my-domain.com.access.log combined

   GnuTLSEnable on
   GnuTLSPriorities NORMAL
   GnuTLSExportCertificates on
   GnuTLSCertificateFile /etc/apache2/ssl/certs/my-domain.com.crt
   GnuTLSKeyFile /etc/apache2/ssl/private/my-domain.com.key
</VirtualHost>

<VirtualHost *:443>
   ServerName www.my-domain.fr
   ServerAlias my-domain.fr
   DocumentRoot /var/www/my-domain/
   ErrorLog /var/log/my-domain/my-domain.fr.error.log
   CustomLog /var/log/my-domain/my-domain.fr.access.log combined

   GnuTLSEnable on
   GnuTLSPriorities NORMAL
   GnuTLSExportCertificates on
   GnuTLSCertificateFile /etc/apache2/ssl/certs/my-domain.fr.crt
   GnuTLSKeyFile /etc/apache2/ssl/private/my-domain.fr.key
</VirtualHost>

但是当我访问 my-domain.fr 时出现了 SSL 证书错误,因为它告诉我我想访问 my-domain.fr 但是我没有。

答案1

恐怕您误解了事情发生的顺序。首先建立 SSL 连接,并且只有完成此操作后,HTTP 请求才会传递到服务器并获得重定向响应。

如果可以在检查服务器的 SSL 证书之前重定向到其他域,那么将任何访问者发送到任何随机域将非常容易。想象一下,如果一个简单的中间人攻击可以在没有 SSL 警告的情况下将用户重定向到其他网站,这会对在线银行网站造成什么影响……

最简单的解决方案是获取带有主题备用名称的证书,并列出要使用该证书的所有域。这样,您仍然只需要更新一个证书,但它将适用于您的所有域。

答案2

当你使用 HTTPS 时,你的网络服务器不知道请求的域名,因此它总是请求*:443 virtualhost你配置的第一个域名。你需要 openssl-1.x信噪比上班。

相关内容