产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请编程助手免费智能写代码、翻译NewAMYSQL 免费MySQL管理工具AMFTP 免费FTP管理客户端

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[综合话题] 关于AMH 5.3版本里SSL的问题

l12ab
金牌会员
7345.06 价值分

l12ab 发表于 2017-04-06 18:54:56
比如我建立了3个虚拟主机,标识分别为A、B、C,域名分别为a.com, b.com, c.com
然后给A主机添加SSL支持,访问https://a.com 一切如我所期待。
但是如果访问https://b.com 或者 https://c.com ,则也会响应请求,并且提示证书不正确,因为此时响应了a.com的证书。这不是我所想要的。
我并不想https://b.com和https://c.com 能够被访问,此时对这两个域名不应该响应443端口。

看了一下服务器上生成的配置文件,有个A-https.conf,配置了一个server段,里面是A的ssl信息。对,是单独的一个server。所以导致了上述问题。

似乎,正确的做法是把80和443写在一个server里,类似官方文档的做法,这样访问https://b.com 就没有任何响应了。

server {
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
...
}

希望接下来能改进一下。
评价: 这个话题有价值吗?  没有 (0分)   有, 感谢 (0分)
2017-04-06 18:54:56 1

l12ab
金牌会员
7345.06 价值分

没找到编辑按钮在哪里,所以回复一贴。
上面这种做法似乎也没解决这个问题
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-04-06 20:07:42 2

yanghang
银牌会员
1563.14 价值分

你要只让a做https 就建a域名的站点,然后b和c单独建http的站点,如果想访问的是同一目录,那就修改server的root就行了
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-04-07 09:02:29 3

l12ab
金牌会员
7345.06 价值分

引用:
yanghang 发表于 2017-04-07 09:02:29
你要只让a做https 就建a域名的站点,然后b和c单独建http的站点,如果想访问的是同一目录,那就修改server的root就行了

你没有看懂帖子,我给B和C只建立了http站点,但是可以访问https://b.com会有响应,响应的是A的证书,访问的也是A站点的内容。

----
google了很多资料,这个问题似乎无解。
ssl握手在nginx获取host名称和server_name之前,也就是说nginx会响应所有的ssl请求,因为他不知道你要访问哪个站点,然后再得到server_name去匹配对应的站点,如果相应的server_name不存在,就匹配default的或者任意一个配置ssl的。
变通的方案是在server里判断得到的host是否与该server段配置的server_name一致,否则报错。
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-04-07 20:57:20 4

yanghang
银牌会员
1563.14 价值分

不会的,http站点和https站点是两个不同的站点 ,https的正常情况下应该是没响应的,除非你的https的那个a是默认站点,这样你可以另外建一个https的默认站点域名用ip地址就行了
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-04-07 21:25:41 5

l12ab
金牌会员
7345.06 价值分

引用:
yanghang 发表于 2017-04-07 21:25:41
不会的,http站点和https站点是两个不同的站点 ,https的正常情况下应该是没响应的,除非你的https的那个a是默认站点,这样你可以另外建一个https的默认站点域名用ip地址就行了

你自己试试就知道我在说什么了
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-04-07 22:33:52 6

amysql
创始人
99532.51 价值分

像amssl那样单独分开是最好的。80与443分开,ssl需要什么参数不影响80端。
上面所说的问题web服务器nginx、apache都会这样的,没绑定的域都会访问到默认的主机的,80与443都会这样。
解决可以添加一个默认主机进行屏蔽,与80端口相似,同样在amssl。
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-04-10 11:46:08 7

AMH面板 - 好用高效低占用、安全可靠极稳定

894587758
铝牌会员
307.47 价值分

像amssl那样单独分开是最好的。80与443分开,ssl需要什么参数不影响80端。
上面所说的问题web服务器nginx、apache都会这样的,没绑定的域都会访问到默认的主机的,80与443都会这样。
解决可以添加一个默认主机进行屏蔽,与80端口相似,同样在amssl。
评价: 这个回复有价值吗?  没有 (-52.53分)   有, 感谢 (0分)
回复  2017-06-07 14:10:20 8
 1  (总1页)
AMH社区列表
用户服务中心