nginx配置防恶意解析+集群模式下没加证书SSL的域名通过https访问错误的指向其它域名的证书解决办法

普遍遇到的问题:

1. 情况一:nginx网站被别人的域名恶意解析指向我的网站上,且这个恶意解析的域名没有备案,通信管理局查到后会对网站进行关停处理。

 2. 情况二:为了节省公网IP,大家在一个 nginx下经常会放多个网站共用一个出口,比如:www.c.com、www.d.com、www.e.com等,如果 www.d.com 需要配置证书,其它的域名没有购买证书。此种情景下,有证书的域名 https://www.d.com 可以正常使用,但如果访问未部署证书的其它域名如 https://www.c.com 或 https://www.e.com,会自然获取 https://www.d.com 的域名证书,这样访问就有问题了。

针对上面2种情况的问题,我们只要对 nginx 安装目录下的 conf 文件进行配置即可,在这里配置的主要目的就是设置一个默认的 default_server 来接管并处理上面2种问题。配置如下:

server {
	listen 80 default_server; #监听80端口
	listen 443 ssl default_server; #监听443端口
	server_name  _;	#防止恶意域名
	#让没证书SSL的域名,通过https访问时跳回80端口上
	if ($server_port ~ 443) {    
		return 301 http://$host$request_uri;
	}
	#对恶意解析的域名返回404状态码
	return 404;
	#说明:上面有2个return操作,这个顺序千万不要错,否则达不到效果。
	
	#CA
	ssl_certificate /CA/申请的一个普通证书.crt;
	ssl_certificate_key /CA/申请的一个普通证书.key;

	ssl_session_timeout  5m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-R
SA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES12
8-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
	ssl_prefer_server_ciphers on;

	#hidden nginx version
	server_tokens off;
	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
			root   html;
	}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web share

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值