Fixed refresh error when multiple certificates exist (#663)

* Fix when there are multiple certs, after refresh from file all will be the same as the last.
This commit is contained in:
WeidiDeng 2021-09-18 03:48:22 +08:00 committed by GitHub
parent d111a046c0
commit b0b2aaa70c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View file

@ -66,7 +66,7 @@ func (c *Config) BuildCertificates() []*tls.Certificate {
isOcspstapling = true isOcspstapling = true
} }
index := len(certs) - 1 index := len(certs) - 1
go func(cert *tls.Certificate, index int) { go func(entry *Certificate, cert *tls.Certificate, index int) {
t := time.NewTicker(time.Duration(hotReloadCertInterval) * time.Second) t := time.NewTicker(time.Duration(hotReloadCertInterval) * time.Second)
for { for {
if entry.CertificatePath != "" && entry.KeyPath != "" { if entry.CertificatePath != "" && entry.KeyPath != "" {
@ -107,7 +107,7 @@ func (c *Config) BuildCertificates() []*tls.Certificate {
certs[index] = cert certs[index] = cert
<-t.C <-t.C
} }
}(certs[len(certs)-1], index) }(entry, certs[index], index)
} }
} }
return certs return certs

View file

@ -67,7 +67,7 @@ func (c *Config) BuildCertificates() []*xtls.Certificate {
isOcspstapling = true isOcspstapling = true
} }
index := len(certs) - 1 index := len(certs) - 1
go func(cert *xtls.Certificate, index int) { go func(entry *Certificate, cert *xtls.Certificate, index int) {
t := time.NewTicker(time.Duration(hotRelodaInterval) * time.Second) t := time.NewTicker(time.Duration(hotRelodaInterval) * time.Second)
for { for {
if entry.CertificatePath != "" && entry.KeyPath != "" { if entry.CertificatePath != "" && entry.KeyPath != "" {
@ -108,7 +108,7 @@ func (c *Config) BuildCertificates() []*xtls.Certificate {
certs[index] = cert certs[index] = cert
<-t.C <-t.C
} }
}(certs[len(certs)-1], index) }(entry, certs[index], index)
} }
} }
return certs return certs