将没有 SSL 的域重定向到有 SSL 的域

将没有 SSL 的域重定向到有 SSL 的域

我们公司最近更改了其中一个农产品网站的域名,并希望将旧网站的所有流量重定向到新网站。

现在会出现隐私错误,因为 ssl 位于 www.newdomain.com 而不是 www.olddomain.com。

是否有办法将 www.olddomain.com 重定向到 www.newdomain.com 而不会报告此错误?我怀疑我还需要在旧域上安装 SSL,但希望尽可能避免这种情况。

到目前为止,我已尝试通过 vhost 和/或 htaccess 来执行此操作,并在新域 conf 文件中为旧域指定别名,例如:

RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC]
RewriteRule ^(.*)$ https://www.newdomain.com/$1 [L,R=301,NC]

答案1

您需要两个域的 SSL 证书。为了从一个重定向到另一个,您首先需要一个证书olddomain.comwww.olddomain.com以便浏览器接受重定向指令。然后,您需要一个证书来www.newdomain.com托管新域。

因此,您可以为旧域设置一个虚拟主机,该虚拟主机仅重定向到新域。

参见阿帕奇重定向

<VirtualHost *:443>
    ServerName olddomain.com

    Redirect permanent / https://www.newdomain.com/

    SSLEngine on

    SSLCertificateFile      /path/to/olddomain.com/cert.pem
    SSLCertificateKeyFile   /path/to/olddomain.com/privkey.pem
    SSLCertificateChainFile /path/to/olddomain.com/chain.pem

</VirtualHost>

<VirtualHost *:443>
    ServerName www.newdomain.com

    DocumentRoot /var/www/html

    SSLEngine on

    SSLCertificateFile      /path/to/www.newdomain.com/cert.pem
    SSLCertificateKeyFile   /path/to/www.newdomain.com/privkey.pem
    SSLCertificateChainFile /path/to/www.newdomain.com/chain.pem

</VirtualHost>

相关内容