• Matthew Holt's avatar
    tls: Restructure and improve certificate management · fc2ff915
    Matthew Holt authored
    - Expose the list of Caddy instances through caddy.Instances()
    
    - Added arbitrary storage to caddy.Instance
    
    - The cache of loaded certificates is no longer global; now scoped
      per-instance, meaning upon reload (like SIGUSR1) the old cert cache
      will be discarded entirely, whereas before, aggressively reloading
      config that added and removed lots of sites would cause unnecessary
      build-up in the cache over time.
    
    - Key certificates in the cache by their SHA-256 hash instead of
      by their names. This means certificates will not be duplicated in
      memory (within each instance), making Caddy much more memory-efficient
      for large-scale deployments with thousands of sites sharing certs.
    
    - Perform name-to-certificate lookups scoped per caddytls.Config instead
      of a single global lookup. This prevents certificates from stepping on
      each other when they overlap in their names.
    
    - Do not allow TLS configurations keyed by the same hostname to be
      differen...
    fc2ff915
tls.go 7.29 KB