Nginx在vhost和SSL之间发出问题
我在同一个IP中有两个站点,具有以下配置: > site1.com >倍数子域(即:foo.site1.com,bar.site1.com) > site2WithSSL.com >侦听端口80和443(SSL) 我可以毫无问题地访问https://site2WithSSL.com和http://site1.com.当有人想访问https://site1.com时会出现问题,使用site2WithSSL.com的nginx答案我希望避免这种情况.我的意思是,每当有人访问https://site1.com时,不必返回内容或仅重定向到https:// 配置是:
已解决:为每个站点使用不同的IP 最佳答案 您的问题是SSL不支持同一IP上的多个虚拟主机. 当NGINX通过HTTP / 1.1接收到新连接时,该请求包含一个HOST标头,指定要服务的虚拟主机(这是1.1中的重大变化,并允许我们今天所知的虚拟主机). 但是使用HTTPS,标头是加密的,密钥交换和TLS层必须先建立才能解密.换句话说,在发送SSL证书之前,nginx无法选择正确的SSL服务器块. 您可以在site2的配置下添加重定向匹配site1的域名,但是用户仍会收到一条消息,说明证书无效,因此不太适合. 您可以使用一些多域证书,但它会花费您的成本. 最简单的,也是您想要的配置,可能是最佳选择,是为每个站点使用不同的IP地址.不同的NGINX服务器配置可以绑定到不同的地址,因此从来没有任何关于哪个地址的问题.大多数提供商可以为您提供多个IP地址,有些甚至可以提供多个块,当然,在云端,您可以提供更多. 更新:SNI通过将主机标头移动到加密的有效负载之外来解决此问题,并且受现代浏览器的支持. (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- php – 在负载平衡器上推送到多个EC2实例
- nginx – SPDY是否会改善非SPDY CDN提供的资产交付?
- 这个Nginx配置有多安全?我还能做些什么来进一步优化它?
- nginx – 从Google容器引擎转发HTTPS客户端IP
- asp.net – 通过nginx和ServiceStack对fastcgi-mono-server
- linux – 设置nginx.conf以拒绝除某些文件或目录之外的所有
- php – 对于ansible来说,是一个优雅的重载幂等法吗?
- linux – Nginx使用writev()和sendfile()
- python – uwsgi_params文件应该放在哪里以及它的扩展名是什
- centos – 为Phusion Passenger 3提供SSL支持的Curl开发标题