如何使用HTTPS从FRredirect到COM

我有两个域: my-domain.commy-domain.fr

我想要redirectstream量如下:

  • my-domain.com:80 – > my-domain.com:443
  • my-domain.fr:80 – > my-domain.com:443
  • my-domain.fr:443 – > my-domain.com:443

我select只使用.com,对吗? 我猜是。 因为我只需要pipe理一个证书:.COM一个。

我的/ etc / apache2 / sites-available / default

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 / sites-available / default-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,而不是。

恐怕你误解了事情发生的顺序。 首先build立SSL连接,只有一次完成后,HTTP请求才会被传递到服务器,并得到一个redirect响应。

如果可以在检查服务器的SSL证书之前redirect到不同的域,那么将任何访问者发送到任何随机域将是非常容易的。 想象一下,如果一个简单的中间人攻击可以将用户redirect到另一个站点,甚至没有SSL警告,这可能会对网上银行网站造成什么影响。

这里最简单的解决方法是,您获得具有“使用者备用名称”的证书,并列出要使用该证书的所有域。 这样你仍然只有一个证书来保持更新,但它会适用于所有的域名。

当您使用HTTPS时,您的networking服务器不知道所请求的域名,所以它会一直请求您configuration的第一个*:443 virtualhost 。 你需要openssl-1.x来让SNI工作。