123456789101112131415161718192021222324252627282930313233343536 |
- package cert
- import (
- "crypto/tls"
- "errors"
- "sync/atomic"
- cSettings "github.com/uozi-tech/cosy/settings"
- )
- var tlsCert atomic.Value
- // LoadServerTLSCertificate loads the TLS certificate
- func LoadServerTLSCertificate() error {
- return ReloadServerTLSCertificate()
- }
- // ReloadServerTLSCertificate reloads the TLS certificate
- func ReloadServerTLSCertificate() error {
- newCert, err := tls.LoadX509KeyPair(cSettings.ServerSettings.SSLCert, cSettings.ServerSettings.SSLKey)
- if err != nil {
- return err
- }
- tlsCert.Store(&newCert)
- return nil
- }
- // GetServerTLSCertificate returns the current TLS certificate
- func GetServerTLSCertificate() (*tls.Certificate, error) {
- cert, ok := tlsCert.Load().(*tls.Certificate)
- if !ok {
- return nil, errors.New("no certificate available")
- }
- return cert, nil
- }
|