From 926b26de4ce84ede11119b0d2f8a8e629a9f8926 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sat, 18 Nov 2023 09:50:34 +0800 Subject: [PATCH] =?UTF-8?q?SSL=E8=AF=81=E4=B9=A6=E6=94=AF=E6=8C=81IP?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sslconfigs/ssl_cert_config.go | 10 ++++++++++ .../sslconfigs/ssl_cert_config_test.go | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/pkg/serverconfigs/sslconfigs/ssl_cert_config.go b/pkg/serverconfigs/sslconfigs/ssl_cert_config.go index d252237..169f6af 100644 --- a/pkg/serverconfigs/sslconfigs/ssl_cert_config.go +++ b/pkg/serverconfigs/sslconfigs/ssl_cert_config.go @@ -132,6 +132,16 @@ func (this *SSLCertConfig) Init(ctx context.Context) error { } } + for _, ipAddress := range c.IPAddresses { + if ipAddress == nil { + continue + } + var ipAddressString = ipAddress.String() + if !lists.ContainsString(dnsNames, ipAddressString) { + dnsNames = append(dnsNames, ipAddressString) + } + } + commonNames = append(commonNames, c.Issuer.CommonName) if index == 0 { diff --git a/pkg/serverconfigs/sslconfigs/ssl_cert_config_test.go b/pkg/serverconfigs/sslconfigs/ssl_cert_config_test.go index 6220c3e..6c62ca7 100644 --- a/pkg/serverconfigs/sslconfigs/ssl_cert_config_test.go +++ b/pkg/serverconfigs/sslconfigs/ssl_cert_config_test.go @@ -1,8 +1,9 @@ // Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. -package sslconfigs +package sslconfigs_test import ( + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" "github.com/iwind/TeaGo/assert" "testing" ) @@ -10,9 +11,22 @@ import ( func TestSSLCertConfig_MatchDomain(t *testing.T) { var a = assert.NewAssertion(t) - var cert = &SSLCertConfig{ + var cert = &sslconfigs.SSLCertConfig{ DNSNames: []string{"a.com", "b.com"}, } a.IsTrue(cert.MatchDomain("a.com")) a.IsFalse(cert.MatchDomain("z.com")) } + +/**func TestSSLCertConfig_DNSNames(t *testing.T) { + var config = sslconfigs.SSLCertConfig{} + config.CertData = []byte(`YOUR CERT DATA`) + config.KeyData = []byte(`YOUR KEY DATA`) + + err := config.Init(context.Background()) + if err != nil { + t.Fatal(err) + } + + t.Log(config.DNSNames) +}**/