Caddy v2.2.0-rc.1 Release Notes

Release Date: 2020-08-11 // over 3 years ago
  • ๐Ÿš€ The release candidate for v2.2.0 - please try it out before the final release! As always, deploy into a test or staging environment before production.

    Highlights:

    • ๐Ÿ”Š Replaced the old underlying ACME library (lego) with ACMEz - we now have full control over the entire certificate management stack! Config reloads will be faster and certificate management at scale will be smoother. The logs for cert operations is now consistent with Caddy's structured logs.
    • Full support for a new ACME CA! ZeroSSL is an alternative CA to Let's Encrypt. Its ACME endpoint is free to use! To clarify, ZeroSSL's ACME endpoint is RFC 8555-compliant and was already compatible with Caddy; we just made it easier to use by automating the EAB credentials for your convenience. ( Known issue: Must use RSA certificate keys for now. This is queued to be fixed by upstream service provider.)
    • Fully customize certificate issuers from the Caddyfile. Up until now, you could only customize certain parts of the ACME issuer or choose the Internal issuer from the Caddyfile; now you have full control.
    • ๐Ÿ‘ Re-introduced HTTP/2 server push similar to how it was available in Caddy v1, but now a little better.
    • ๐Ÿฑ โš ๏ธ The logfmt log encoder has been deprecated and will be removed. (It is already broken since it does not encode objects.)
    • Customizable DNS resolver for reverse proxy.
    • ๐Ÿ›  Numerous bug fixes and other enhancements!

    ๐Ÿ”„ Changelog

    af5c148 admin,templates,core: Minor enhancements and error handling (#3607)
    8a0fff5 caddyauth: hash-password: Set bcrypt cost to 14 (#3580)
    fb9d874 caddyfile: Export Tokenize function for lexing (#3549)
    ๐Ÿ”Š 65a0952 caddyhttp: Add TLS client cert info to logs (#3640)
    ๐Ÿ‘ 514eef3 caddyhttp: Add support to resolve DN in CEL expression (#3608)
    6f0f159 caddyhttp: Add {http.request.body} placeholder
    โœ… 0bf2565 caddyhttp: Reorder some access log fields; add host matcher test case
    ๐Ÿ‘ 66863aa caddytls: Add support for ZeroSSL; add Caddyfile support for issuers (#3633)
    ๐Ÿšš efc0cc5 caddytls: Move initial storage clean op into goroutine
    6a14e2c caddytls: Replace lego with acmez (#3621)
    ๐Ÿ–จ 68529e2 cmd: Print caddy version with environ or --environ (#3627)
    2ae8c11 fastcgi: Add resolve_root_symlink (#3587)
    0665a86 fastcgi: Ensure leading slash, omit SERVER_PORT if empty for compliance (#3570)
    3fdaf50 fastcgi: Fill REMOTE_USER with http.auth.user.id placeholder (#3577)
    3860b23 fileserver: Don't assume len(str) == len(ToLower(str)) (fix #3623)
    735c866 fileserver: Enable browse pagination with offset parameter (#3542)
    ๐Ÿง c054a81 fileserver: Fix newly-introduced failing test on Linux (#3625)
    c42bfaf go.mod: Bump CertMagic
    โšก๏ธ 28d870c go.mod: Update quic-go, truststore, and goldmark
    โšก๏ธ c6d6a77 go.mod: Update some dependencies
    โฌ‡๏ธ 2a5599e go.mod: Upgrade and downgrade smallstep, quic-go, and cpuid
    6f73a35 httpcaddyfile: Add compression to http transport config (#3624)
    584eba9 httpcaddyfile: Allow named matchers in route blocks (#3632)
    ff19bdd httpcaddyfile: Avoid repeated subjects in APs (fix #3618)
    8b80a32 httpcaddyfile: Bring enforce_origin and origins to admin config (#3595)
    7bfe5b6 httpcaddyfile: Reorder automation policy logic (close #3550)
    ๐Ÿฑ eda54c2 logging: โš ๏ธ Deprecate logfmt encoder
    6cea1f2 push: Implement HTTP/2 server push (#3573)
    904f149 reverse_proxy: fix bidirectional streams with encodings (fix #3606) (#3620)
    e9b1d7d reverse_proxy: flush HTTP/2 response when ContentLength is unknown (#3561)
    ๐Ÿ“œ 19cc2bd reverseproxy: Fix Caddyfile parsing for empty non-http transports (#3576)
    ๐Ÿ›  e2f913b reverseproxy: Minor fixes and cleanup
    โช 246a31a reverseproxy: Restore request's original host and header (fix #3509)
    ๐Ÿ‘ bd9d796 reverseproxy: add support for custom DNS resolver (#3479)
    c358200 templates: Disable hard wraps in Markdown rendering (#3553)
    a2dae1d templates: Fix front matter closing fence search
    2bc30bb templates: Implement placeholders function (#3324)