某个网站找不到证书的情况下不再自动匹配证书

This commit is contained in:
GoEdgeLab
2023-05-24 17:00:27 +08:00
parent 78ab4d7b1d
commit 27b3b240d5

View File

@@ -113,21 +113,12 @@ func (this *BaseListener) matchSSL(domain string) (*sslconfigs.SSLPolicy, *tls.C
// 通过代理服务域名配置匹配
server, _ := this.findNamedServer(domain)
if server == nil || server.SSLPolicy() == nil || !server.SSLPolicy().IsOn {
// 找不到或者此时的服务没有配置证书需要搜索所有的Server通过SSL证书内容中的DNSName匹配
// TODO 需要思考这种情况下是否允许访问
for _, server := range group.Servers() {
if server.SSLPolicy() == nil || !server.SSLPolicy().IsOn {
continue
}
cert, ok := server.SSLPolicy().MatchDomain(domain)
if ok {
return server.SSLPolicy(), cert, nil
}
}
if server == nil {
return nil, nil, errors.New("no server found for '" + domain + "'")
}
if server.SSLPolicy() == nil || !server.SSLPolicy().IsOn {
return nil, nil, errors.New("no cert found for '" + domain + "'")
}
// 证书是否匹配
var sslConfig = server.SSLPolicy()