@@ -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
108119func extractKeyPair (s * corev1.Secret , hasPrivateKey bool ) ([]byte , []byte , error ) {
0 commit comments