Skip to content

Releases: caddyserver/certmagic

v0.18.0

09 Jun 00:04
v0.18.0
d37847a
Compare
Choose a tag to compare

This update brings several optimizations and improvements:

  • Don't access storage during on-demand TLS unless the subject is allowed in the first place
  • Managers moved into on-demand config, since they operate only at handshake-time
  • Experimental FallbackServerName that is like DefaultServerName, except this one applies even if a ServerName is specified in the handshake
  • Several bug fixes, especially related to on-demand TLS and Managers

What's Changed

  • Allow specifying http proxy via config by @georgmu in #212
  • Allow the default cache logger to be set by @pwilloughby in #213
  • Bump golang.org/x/text from 0.3.7 to 0.3.8 by @dependabot in #216
  • Bump golang.org/x/net from 0.0.0-20220805013720-a33c5aa5df48 to 0.7.0 by @dependabot in #218
  • obtain instead of renew cert if it does not exist in storage by @shitz in #221
  • Use recursive query when checking for TXT records by @kizmc in #224
  • Update & Improve CI by @wusatosi in #227
  • chore: Skip slow tests on Windows by @francislavoie in #229
  • Add a GetCertificateWithContext function by @ankon in #225
  • Refactor certificate Managers by @mholt in #231
  • Fix advanced cache initialization in README by @s111 in #198

New Contributors

Full Changelog: v0.17.2...v0.18.0

v0.17.2

04 Oct 17:09
2e8dd44
Compare
Choose a tag to compare

What's Changed

  • Avoid nil dereferencing on errors by @ankon in #206
  • Fix a panic when attempting to log when certificate should not be renewed by @antoniomika in #207

New Contributors

Full Changelog: v0.17.1...v0.17.2

v0.17.1

05 Sep 18:43
2e22c6f
Compare
Choose a tag to compare

This release changes the OnEvent API in a slightly breaking way, so if you are using events, please check out the new doc: https://pkg.go.dev/github.com/caddyserver/certmagic#Config.OnEvent

The new API is more flexible and easier to use. We are also documenting the events in our README.

Some bug fixes and improved logging. Minimum version is now Go 1.18.

Full Changelog: v0.16.2...v0.17.1

v0.16.2

02 Aug 21:22
v0.16.2
8531018
Compare
Choose a tag to compare

This release primarily improves DNS challenges, making them more efficient and correct (mostly edge cases).

What's Changed

New Contributors

Full Changelog: v0.16.1...v0.16.2

v0.16.1

06 May 16:22
v0.16.1
049e605
Compare
Choose a tag to compare

Minor enhancement allowing customization of the propagation delay/timeout for DNS challenge.

Full Changelog: v0.16.0...v0.16.1

v0.16.0

25 Mar 17:10
v0.16.0
03cffeb
Compare
Choose a tag to compare

This release is hopefully one of the last major tags before a more stable CertMagic 1.0. It includes a number of breaking changes (for the better, I promise) -- so please pay attention:

  • ⚠️ All storage methods now require context.Context passed in. We also added it to CleanUpOwnLocks() and several other functions that end up calling Storage methods (e.g. CacheUnmanagedTLSCertificate()). Your editor, in combination with gopls (the Go language server) should be able to quickly tell you where context is missing.
  • ⚠️ Storage methods now return fs.ErrNotExist if a file or key is not found, instead of certmagic.ErrNotExist, which has been removed. (The io/fs package did not exist when CertMagic was first written.)
  • ⚠️ ACMEManager has been renamed to ACMEIssuer, and CertificateManager has been renamed to Manager. These renames make naming more consistent and accurate, and less confusing (since ACMEManager was not a CertificateManager, which is a new type).
  • Certificate events now provide more useful, actionable information. See #150.

I have personally submitted PRs to the more popular known storage implementations as a courtesy to help deal with the breaking changes.

The nuances of the logic in preparing for DNS challenges have changed slightly, hopefully it will work in more environments.

Thanks to all who contributed! Sorry for any inconvenience with the breaking changes; that's the joy of pre-1.0 libraries. We're almost there, though. It's been 5 years and we might finally be starting to get good at things.

What's Changed

New Contributors

Full Changelog: v0.15.4...v0.16.0

v0.15.4

08 Mar 20:12
v0.15.4
f60ce01
Compare
Choose a tag to compare

What's Changed

  • Fixed order of certificate loading so that private keys are loaded first by @sam-lord in #171
  • Managers: Ability to call GetCertificate from external certificate sources by @mholt in #163
  • Support OverrideDomain is DNS01Solver by @crccw in #160

New Contributors

Full Changelog: v0.15.3...v0.15.4

v0.15.3

01 Feb 20:48
v0.15.3
2f78e52
Compare
Choose a tag to compare

Enhanced OCSP stapling support. Fixed automatic replacement of revoked certificates for on-demand certificates and some other edge cases.

What's Changed

New Contributors

Full Changelog: v0.15.2...v0.15.3

v0.15.2

08 Nov 20:05
v0.15.2
f832018
Compare
Choose a tag to compare

Minor tweaks and a minor bug fix.

v0.15.0

30 Sep 19:28
v0.15.0
6b2f5f9
Compare
Choose a tag to compare

This release improves use at large scale:

  • Adjusted default internal throttle for ACME transactions from 20 every minute to 10 every 10 seconds. This should allow for higher throughput with busy clients without impacting CA networks too much.
  • Clarified in the docs that NextProtos needs to be set by you on a tls.Config if you are not using a CertMagic function that serves an application on top of TLS. In other words, if you're not using the HTTPS() function, you should set NextProtos to the proper values for your application. (This is not new, nor a change. Just a helpful note in the docs.)
  • Fixed a bug that affected a small subset of users with lots of on-demand certificates ( > 10,000) and some non-on-demand certificates that would cause the non-on-demand certificates to be evicted from the cache. They are now reloaded later if this happens. (Note: the non-on-demand certs must be managed; this won't work for manually-managed certs.)
  • ⚠️ Changed ManageSync() to take a context.Context as the first argument, so that synchronous operations can also be cancelled and cleaned up. This is a breaking change that may affect a small subset of users.