code: func (m *Manager) Get(storeName string, configName string) *tls.Config {
  	m.lock.RLock()
  	defer m.lock.RUnlock()
  
  	store := m.getStore(storeName)
  
  	tlsConfig, err := buildTLSConfig(m.configs[configName])
  	if err != nil {
  		log.Error(err)
  		tlsConfig = &tls.Config{}
  	}
  
  	tlsConfig.GetCertificate = func(clientHello *tls.ClientHelloInfo) (*tls.Certificate, error) {
  		domainToCheck := types.CanonicalDomain(clientHello.ServerName)
  
  		if m.TLSAlpnGetter != nil {
  			cert, err := m.TLSAlpnGetter(domainToCheck)
  			if err != nil {
  				return nil, err
  			}
  
  			if cert != nil {
  				return cert, nil
  			}
  		}
  
  		bestCertificate := store.GetBestCertificate(clientHello)
  		if bestCertificate != nil {
  			return bestCertificate, nil
  		}
  
  		if m.configs[configName].SniStrict {
  			return nil, fmt.Errorf("strict SNI enabled - No certificate found for domain: %q, closing connection", domainToCheck)
  		}
  
  		log.WithoutContext().Debugf("Serving default certificate for request: %q", domainToCheck)
  		return store.DefaultCertificate, nil
  	}
  	return tlsConfig
  }
docs: // Get gets the tls configuration to use for a given store / configuration