当前位置:首页 > 技术分享 > 正文内容

同服务器 http 定向到https网站 解决办法

admin2个月前 (09-02)技术分享181

当访问https://www.domain1.com时却访问到了www.domain2.com的内容,这是因为您的Nginx配置存在以下问题:


问题原因

缺少HTTPS配置:www.domain1.com的server块只监听了80端口(HTTP),没有监听443端口(HTTPS)

默认SSL服务器:当访问https://www.domain1.com时,Nginx会使用第一个匹配的SSL服务器块,也就是www.domain2.com的配置

解决方案

方案1:为www.domain1.com添加SSL配置

修改www.domain1.com的server块,添加SSL监听和证书配置:

server {
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name www.domain1.com;
  
  # 添加SSL证书配置(使用与www.domain1.com相符的证书)
  ssl_certificate /ssl/www.domain1.com/www.domain1.com.pem;
  ssl_certificate_key /ssl/www.domain1.com/www.domain1.com.key;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;
  
  # 其余配置保持不变...
}

方案2:添加默认SSL服务器块(推荐)

为了防止其他未配置SSL的域名匹配到错误的服务器块,可以添加一个默认SSL服务器:

server {
  listen 443 ssl default_server;
  listen [::]:443 ssl default_server;
  ssl_certificate /ssl/www.domain2.com/www.domain2.com.pem;
  ssl_certificate_key /ssl/www.domain2.com/www.domain2.com.key;
  return 444; # 关闭连接或重定向到其他页面
}

验证步骤

修改配置后,测试Nginx配置:

Bash

   nginx -t

重新加载Nginx配置:

Bash

   systemctl reload nginx

测试访问:

https://www.domain1.com 现在应该显示正确的内容

如果访问其他未配置的HTTPS域名,应该会被拒绝或重定向

注意事项

确保/ssl/www.domain2.com/www.domain2.com.pem是一个有效的证书,能够匹配www.domain2.com

如果www.domain1.com需要独立的证书,应该为其配置专用证书

考虑为HTTP访问添加自动跳转HTTPS的配置(如果需要)

通过以上修改,您的HTTPS访问应该能够正确路由到对应的网站内容。


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/691.html

标签: nginx
分享给朋友:

相关文章

关于微信第三方平台(全网发布检测)检测流程以及踩到的坑

关于微信第三方平台(全网发布检测)检测流程以及踩到的坑

能点到全网发布这一步,说明你已经弄好了获取component_verify_ticket,component_access_token等这些参数,通常这个时候点击全网发布只会有这两个失败。如果其他失败的那就要好好检查一下你的代码了,或者查看...

解决 SVN Skipped 'xxx' -- Node remains in conflict

更新命令:svn up提示代码:意思就是说 ,这个文件冲突了,你要解决下Updating '.': Skipped 'data/config.php' -- ...

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

家里面买了斐讯盒子T1,必不可少的就是刷机,刷机一直爽,一直刷机一直爽,这样的快乐一般人体会不到。原来斐讯盒子N1,T1,还有斐讯K2P路由器也变成了性价比超高的东东,而且众多大神也带来了超多可玩性非常高的固件和破解。楼主今天扒到了相关超高...

VirtualXposed 不支持32位应用 32位无法安装问题解决办法

VirtualXposed 不支持32位应用 32位无法安装问题解决办法

VirtualXposed 是基于VirtualApp 和 epic 在非ROOT环境下运行Xposed模块的实现(支持5.0~10.0)。与 Xposed 相比,目前 VirtualXposed 有...

PHP AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补...

PHP和Redis实现在高并发下的抢购及秒杀功能

抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题:一、高并发对数据库产生的压力二、竞争状态下如何解决库存的正确减少("...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。