首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未安装SSL证书的vhosts重定向至使用SSL的其他vhost

未安装SSL证书的vhosts重定向至使用SSL的其他vhost
EN

Stack Overflow用户
提问于 2015-08-20 01:31:01
回答 1查看 1K关注 0票数 0

我在配置了vhost站点的多租户服务器上运行apache。

因此,我有一个用于domain1.com的vhost,它在vhost文件中定义了SSL证书。然后我有一个没有定义SSL证书的domain2.com。如果我访问https://domain2.com,浏览器会打开domain1.com的网站,然后当然会在浏览器中显示一个损坏的SSL证书警告。

我试图纠正这一点的方法是:

首先,在domain2的vhost.conf文件中,我放入了以下内容:

代码语言:javascript
复制
 <VirtualHost ip:443>  
 ServerName domain2.com  
 DocumentRoot /var/www/domain2/  
 SSLEngine on  
 SSLCertificateFile /var/certs/cert.crt  
 SSLCertificateKeyFile /var/certs/cert.key  
 Redirect permanent / http://www.domain2.com  
 </VirtualHost>  

当然,这个客户端实际上并不拥有自己的SSL证书,所以我将其指向我们其中一个域的证书文件。在某些情况下,当用户访问https://www.domain2.comhttps://domain2.com时,这会向用户发出证书警告。(在Chrome中,我可以转到https://domain2.com,在没有警告的情况下被重定向)

当然,生成用于此目的的自签名证书也会抛出证书警告。如果我删除了“SSL On”指令,这样我就不需要指定证书了,它实质上破坏了整个服务器上的SSLEngine,并且所有站点都无法正常工作。

如何才能在不担心用户收到证书警告的情况下成功完成此操作,并简单地将其对domain2.com的所有HTTPS请求重定向到HTTP?

EN

回答 1

Stack Overflow用户

发布于 2015-08-20 02:13:25

你不能这么做。

要进行正确的重定向而不出现证书警告,唯一的方法是为要重定向的域提供正确的证书。

重定向是在HTTP级别进行的,即在HTTPS连接创建的TLS隧道内完成。因此,客户端首先需要创建TLS连接,然后才能获得重定向。但是创建TLS连接已经导致了证书颁发,因为URL和证书中的名称不匹配。

另一种方法是将所有SSL主机移动到一个IP地址,而将所有其他主机移动到另一个IP地址。这样,客户端将不会收到证书警告,但会看到此地址上没有HTTPS。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32102017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档