Skip to content

Commit 998bc1a

Browse files
committed
fix sni
1 parent 0da2baf commit 998bc1a

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

internal/provider/adc/translator/gateway.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/api7/api7-ingress-controller/internal/provider"
1212
"github.com/api7/gopkg/pkg/log"
1313
"github.com/pkg/errors"
14+
"go.uber.org/zap"
1415
corev1 "k8s.io/api/core/v1"
1516
"k8s.io/apimachinery/pkg/types"
1617
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
@@ -75,6 +76,10 @@ func (t *Translator) translateSecret(tctx *provider.TranslateContext, listener g
7576
if err != nil {
7677
return nil, err
7778
}
79+
if len(hosts) == 0 {
80+
log.Warnw("no valid hostname found in certificate", zap.String("secret", secret.Namespace+"/"+secret.Name))
81+
continue
82+
}
7883
sslObj.Snis = append(sslObj.Snis, hosts...)
7984
// Note: Dashboard doesn't allow duplicate certificate across ssl objects
8085
sslObj.ID = id.GenID(string(cert))
@@ -102,7 +107,13 @@ func extractHost(cert []byte) ([]string, error) {
102107
if err != nil {
103108
return nil, errors.Wrap(err, "parse certificate")
104109
}
105-
return der.DNSNames, nil
110+
hosts := make([]string, 0, len(der.DNSNames))
111+
for _, dnsName := range der.DNSNames {
112+
if dnsName != "*" {
113+
hosts = append(hosts, dnsName)
114+
}
115+
}
116+
return hosts, nil
106117
}
107118

108119
func extractKeyPair(s *corev1.Secret, hasPrivateKey bool) ([]byte, []byte, error) {

0 commit comments

Comments
 (0)