Merged
Conversation
Contributor
Author
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
af31804 to
99989b3
Compare
Contributor
Author
|
99989b3 to
d4167b5
Compare
d4167b5 to
f014814
Compare
f014814 to
ddd466f
Compare
ddd466f to
2fd44fe
Compare
2fd44fe to
d21b895
Compare
d21b895 to
ae13124
Compare
ae13124 to
cf175c4
Compare
cf175c4 to
3913534
Compare
3913534 to
65f8f7b
Compare
65f8f7b to
ec64945
Compare
Contributor
|
🎉 This PR is included in version 1.0.5 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.8.4-alpine->2.10.0-alpine2.8.4-builder-alpine->2.10.0-builder-alpinev2.8.4->v2.10.0Release Notes
caddyserver/caddy (github.com/caddyserver/caddy/v2)
v2.10.0Compare Source
Caddy 2.10 is here! Aside from bug fixes, this release features:
x25519mlkem768cryptographic group by default.dnsglobal option in the Caddyfile, or in JSON config, it's thednsparameter in thetlsapp configuration.tls force_automatein the Caddyfile. The experimentalauto_https prefer_wildcardoption has been removed.dnsconfig: Now that several components of Caddy configuration may affect DNS records (ACME challenges, ECH publication, etc.), there is a newdnsglobal option that can be used to specify your DNS provider config in a single place. This prevents repetition of credentials for servers where all the domains are managed by a single DNS provider.Thank you to the many contributors who have helped to make this possible! 🎉 🥳 🍾
Encrypted ClientHello (ECH) details
(This is a brief overview. We recommend reading the full documentation.)
Typically, server names (domain names, or "SNI") are sent in the plaintext ClientHello when establishing TLS connections. With ECH, the true server name is encrypted (and wrapped) by an "outer" ClientHello which has a generic SNI of your choosing. With many sites on the same server sharing the same outer SNI, both clients and the server have more privacy related to domain names.
Caddy implements fully automated ECH, meaning that it generates (and soon, rotates), publishes, and serves ECH configurations simply by specifying a DNS provider, and the outer/public domain name to use.
Fully automated ECH requires a DNS module built into your Caddy binary. In order for a client, such as a browser, to know it can use ECH, and what parameters to use, the server's ECH configuration must be published. This config includes the public name, cryptographic parameters, and a public key for encrypting the inner ClientHello. By convention, browsers read the standardized HTTPS-type DNS record containing a
echSvcParamKey. Caddy sets this DNS record for all domains being protected, but it needs that DNS provider module plugged in and configured in order to do this. If you are already using the DNS ACME challenge, you should already have a DNS provider plugged in. If you prefer to build Caddy from source with a DNS module, it's easy with xcaddy, for example:$ xcaddy build --with github.com/caddy-dns/cloudflareThe minimum config needed to enable ClientHello is also the recommended config, as it maximizes privacy benefits in most situations. You just need the
echglobal option and a DNS provider specified. Here's an example using Cloudflare as the nameserver:Caddyfile:
{ debug # not required; recommended while testing dns cloudflare {env.CLOUDFLARE_API_KEY} ech ech.example.net } example.com { respond "Hello there!" }This protects all your sites (
example.comin this case) behind the public name ofech.example.net. (As another example, Cloudflare usescloudflare-ech.comfor all the sites it serves. We recommend choosing a single public domain and use it to protect all your sites.)The outer/public name you choose should point to your server. Caddy will obtain a certificate for this name in order to facilitate safe, reliable connections for clients when needed. Without a certificate, clients may be forced to connect insecurely, or fail to connect at all, in some cases, which not only leaves them vulnerable, but also risks exposing the names of your server's sites.
Caddy then uses the specified DNS provider to publish the ECH config(s) for your various site names. It creates (or augments) HTTPS-type records for the domains of your sites (not your ECH public name). Note that DNS provider modules are independently-maintained, and may not have been tested for compatibility with HTTPS-type records. Please contact your module's maintainers if you experience issues.
If you have more advanced configuration needs, you can use the JSON configuration (more details coming soon; for now, see #6862 or look at the source code; or use
caddy adaptto convert a Caddyfile to JSON).Testing and verifying Encrypted ClientHello
First make sure Caddy runs successfully with ECH enabled (and a DNS module) in the config. You should see logs that it is generating an ECH config and publishing it to your domain name(s).
You will need to use a client that supports ECH. Some custom builds of
curldo, and Firefox and modern Chrome-based browsers do as well, but you need to enable DNS-over-HTTPS or DNS-over-TLS first (since, obviously, querying DNS in plaintext for a protected domain name will expose the domain and defeat the purpose of ECH).If reusing an existing domain name, clear your DNS cache. Firefox has a way of doing this for its cache at
about:networking#dns.Once you have a suitable client, use Wireshark to capture network packets as you load your site. You should see only the outer/public name as SNI (ServerName Indicator) values in the packet capture. If at any time you see the true site name, ECH is not working properly -- it could be a client or server issue. Before filing a bug, please try to pinpoint it as a server issue first. But definitely report server bugs! Thank you!
(Note that ECH is not automatically published for CNAME'd domains, and the domain must already have a record in the zone.)
Commits
Beta 1:
96c5c55admin: fix index validation for PUT requests (#6824)3644ee3build(deps): bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 (#6876)eacd772build(deps): bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 (#6871)9996d6abuild(deps): bump github.com/golang/glog from 1.2.2 to 1.2.4 (#6814)1115158caddyhttp: ResponseRecorder sets stream regardless of 1xx8861eaecaddytest: Support configuration defaults override (#6850)d7764dfcaddytls: Encrypted ClientHello (ECH) (#6862)a807fe0caddytls: Enhance ECH documentationbc3d497caddytls: Fix broken refactor7b8f350caddytls: Fix sni_regexp matcher to obtain layer4 contexts (#6804)2c4295ecaddytls: Initial support for ACME profilesd7872c3caddytls: Refactor sni matcher (#6812)172136acaddytls: Support post-quantum key exchange mechanism X25519MLKEM768066d770cmd: automatically set GOMEMLIMIT (#6809)1f35a8afastcgi: improve parsePHPFastCGI docs (#6779)22563a7file_server: use the UTC timezone for modified time (#6830)cfc3af6fix: update broken link to Ardan Labs (#6800)99073eago.mod: Upgrade CertMagic to v0.21.71641e76go.mod: Upgrade dependencies0d7c639go.mod: remove glog dependency (#6838)932dac1logging: Always set fields func; fix #68299e0e5a4logging: Fix crash if logging error is not HandlerError (#6777)904a0fareverse_proxy: re-add healthy upstreams metric (#6806)e7da3b2reverseproxy: Via header (#6275)9283770reverseproxy: ignore duplicate collector registration error (#6820)Beta 2:
f4432a3caddyfile: add error handling for unrecognized subdirective/options in various modules (#6884)84364ffcaddypki: Remove lifetime check at Caddyfile parse (fix #6878)adbe7f8caddytls: Only make DNS solver if not already set (fix #6880)d57ab21caddytls: Pointer receiver (fix #6885)4ebcfedcaddytls: Reorder provisioning steps (fix #6877)a686f7ccmd: Only set memory/CPU limits on run (fix #6879)1987620cmd: Promote undo maxProcs func to caller220cd1creverseproxy: more comments about buffering and add new tests (#6778)Beta 3:
b3e692ecaddyfile: Fix formatting for backquote wrapped braces (#6903)55c89cccaddytls: Convert AP subjects to punycode1f8dab5caddytls: Don't publish ECH configs if other records don't exist782a3c7caddytls: Don't publish HTTPS record for CNAME'd domain (fix #6922)49f9af9caddytls: Fix TrustedCACerts backwards compatibility (#6889)e276994caddytls: Initialize permission module earlier (fix #6901)39262f8caddytls: Minor fixes for ECH1735730core: add modularnetwork_proxysupport (#6399)86c620fgo.mod: Minor dependency upgradesaf2d33aheaders: Allow nil HeaderOps (fix #6893)dccf3d8requestbody: Add set option to replace request body (#5795)2ac09fdrequestbody: Fix ContentLength calculation after body replacement (#6896)v2.10.0:
f297bc0admin: Remove host checking for UDS (close #6832)0b2802fbuild(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 (#6960)5be77d0caddyauth: Set authentication provider error in placeholder (#6932)b06a949caddyhttp: Document side effect of HTTP/3 early data (close #6936)35c8c2dcaddytls: Add remote_ip to HTTP cert manager (close #6952)fb22a26caddytls: Allow missing ECH meta file1bfa111caddytls: Prefer managed wildcard certs over individual subdomain certs (#6959)ea77a9acaddytls: Temporarily treat "" and "@" as equivalent for DNS publication5a6b2f8events: Refactor; move Event into core, so core can emit events (#6930)137711ago.mod: Upgrade acmez and certmagic9becf61go.mod: Upgrade to libdns 1.0 beta APIs (requires upgraded DNS providers)6c38ae7reverseproxy: Add valid Upstream to DialInfo in active health checks (#6949)What's Changed
archives.format_overrides.formatby @mohammed90 in https://github.com/caddyserver/caddy/pull/6807replacefor optional body replacement by @AdrienPensart in https://github.com/caddyserver/caddy/pull/5795network_proxysupport by @mohammed90 in https://github.com/caddyserver/caddy/pull/6399New Contributors
Full Changelog: caddyserver/caddy@v2.9.1...v2.10.0
v2.9.1Compare Source
This is a patch release fixing a few issues related to FastCGI, HTTP/3 and unix sockets, log file permissions, repeated TERM signals, and an ARI edge case. It also adds Caddyfile support for response matching in the
headerdirective.Thanks to everyone who reported bugs and helped with fixes!
Changelog
34cff4acore: Only initiate exit once (should fix #6707)50778b5fix: disable h3 for unix domain socket (#6769)0e570e0go.mod: Upgrade CertMagic to 0.21.6 (fix ARI handshake maintenance)e48b758header:matchsubdirective for response matching (#6765)1f927d6log: Only chmod if permission bits differ; make log dir (#6761)1bd567dreverseproxy: buffer requests for fastcgi by default (#6759)What's Changed
matchsubdirective for response matching by @lilnasy in https://github.com/caddyserver/caddy/pull/6765New Contributors
Full Changelog: caddyserver/caddy@v2.9.0...v2.9.1
v2.9.0Compare Source
Happy New Year! We're pleased to release Caddy 2.9. Aside from some minor new features, this release is mainly focused on refinements and bug fixes in many areas, including:
We realize there is extensive interest in Encrypted Client Hello (ECH) and post-quantum ciphers. These are slated to be supported in Go 1.24, which is scheduled for a stable release in approximately February. We did not want to force users to go through the inconvenience of installing pre-release, non-stock installations of Go, even though the RCs are quite stable and production-ready, in order to even compile Caddy, which is quite common given our plugin ecosystem. We anticipate a Caddy 2.10 release in the near future with these capabilities, built on Go 1.24.
We hope you will enjoy the 2.9 release. Thanks to all contributors, bug reporters, and helpers, and those organizations which deployed pre-release versions to production to help verify patches and features.
Changelog
ef4e022caddyfile: Fix comma edgecase in address parsing (#6616)b116dcecaddyhttp: Add{?query}placeholder (#6714)c216cf5caddyhttp: Allow matching Transfer-Encoding, add to access logs (#6629)197c564caddyhttp: Set default ReadHeaderTimeout (1 min)09b2cbccaddyhttp: AddMatchWithErrorto replace SetVar hack (#6596)c6f2979caddyhttp: Close http3 server gracefully (#6213)88fd5f3caddyhttp: Use internal issuer for IPs when no APs configured5c8dc34caddytls: Allow disabling storage cleaning, avoids writing two files (#6593)d7564d6caddytls: Droprate_limitandburst, has been deprecated (#6611)d398898cmd: Allowadd-packageto select version of package (#6665)66c80cacmd: Disable go1.23 tlskyber=1 experimentfb72793cmd: Reject multiple configs for fmt command (#6717)b3ce260cmd: ignore missing keys during storage export (#6697)0182fb8core: addresses.go funcs renames (#6622)e76405dcore: Change ListenerFunc signature (#6651)315715ecore: Implement FastAbs to avoid repeated os.Getwd calls (#6687)d0e209eencode: good defaults (#6737)5ba1e06encode: try to use sendfile when compression is not used (#6749)bcaa8aaencode: write status immediate for success response for CONNECT requests (#6738)1d15652events: UseWithLazyto prevent eager serialization of the event data (#6671)6790c0efastcgi: check for CONTENT_LENGTH when sending requests (#6661)eddbccdfastcgi: remove dir redirection when useless in php_fastcgi (#6698)efd9251fileserver: Addfirst_exist_fallbackstrategy fortry_files(#6699)d0123bdfileserver: Fix policyValidate()oversight (#6727)290cfeafileserver: add a test for precompressed defaults (#6743)5c2617efileserver: good default for precompressed (#6736)cc23ad6fileserver: Addfile_limitoption for browse (to be experimental) (#6648)350ad38fileserver: Fix Caddyfile parsing9753c44fileserver: fix try_policy when instantiating file matcher from CEL (#6624)05cfb12forwardauth: Skip copying missing response headers (#6608)ed1c594go.mod: Upgrade ACMEz to v3; and upgrade CertMagic3f3f8b3go.mod: Upgrade CertMagic to v0.21.591e3413go.mod: upgrade only some otel deps (#6676)22b9d51go.mod: Upgrade quic-go to 0.48.2b129ed6httpcaddyfile: Fixes forprefer_wildcardmode (#6636)afa778ahttpcaddyfile: Implement experimentalforce_automateoption (#6712)b183aechttpcaddyfile: Implement logsamplingconfig (#6682)1d106fametrics: addgoandprocesscollectors (#6704)388c7e8metrics: movemetricsup, outsideservers(#6606)8c3dd3drequestbody: Type-based error handling forMaxBytesError(#6701)5e6024creverseproxy: Fix log message48ce47freverseproxy: Use correct cases for websocket related headers (#6621)825fe48reverseproxy: Allow0as weights forweighted_round_robin(#6681)328fb61reverseproxy: Only handle websocket protocol (#6740)238f110reverseproxy: Revert #4952 - don't ignore context cancellation in stream mode9c0c71ereverseproxy: Rewrite requests and responses for websocket over http2 (#6567)c864b82reverseproxy: Set Content-Length when body is fully buffered (#6638)fbf0f4creverseproxy: Sync changes from stdlib for 1xx handling (#6656)5823eccrewrite: Don't add / in Caddyfile, do it after replacer (#6662)b443190sigtrap: always ignore SIGPIPE (#6645)f2c17d1testing: sort force-automated hosts (#6756)669fc41tracing: AddspanIDfield to access logs andhttp.vars.span_idplaceholder (#6646)What's Changed
DisableStorageChecksetting for certmagic by @ankon in https://github.com/caddyserver/caddy/pull/6368runinto a publicBuildContextand a private part by @ankon in https://github.com/caddyserver/caddy/pull/6378zapcore.Coreby @kkroo in https://github.com/caddyserver/caddy/pull/6381importfor snippets by @elee1766 in https://github.com/caddyserver/caddy/pull/6130-tags nobadgeron binary build by @girlbossceo in https://github.com/caddyserver/caddy/pull/6470sortoptions by @lollipopkit in https://github.com/caddyserver/caddy/pull/6468{file.*}global placeholder strips trailing newline by @steffenbusch in https://github.com/caddyserver/caddy/pull/6411Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.