summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-04-08httpcaddyfile, caddytls: Multiple edge case fixes; add testsMatthew Holt
- Create two default automation policies; if the TLS app is used in isolation with the 'automate' certificate loader, it will now use an internal issuer for internal-only names, and an ACME issuer for all other names by default. - If the HTTP Caddyfile adds an 'automate' loader, it now also adds an automation policy for any names in that loader that do not qualify for public certificates so that they will be issued internally. (It might be nice if this wasn't necessary, but the alternative is to either make auto-HTTPS logic way more complex by scanning the names in the 'automate' loader, or to have an automation policy without an issuer switch between default issuer based on the name being issued a certificate - I think I like the latter option better, right now we do something kind of like that but at a level above each individual automation policies, we do that switch only when no automation policies match, rather than when a policy without an issuer does match.) - Set the default LoggerName rather than a LoggerNames with an empty host value, which is now taken literally rather than as a catch-all. - hostsFromKeys, the function that gets a list of hosts from server block keys, no longer returns an empty string in its resulting slice, ever.
2020-04-08caddyhttp: Fix logging name associations by adding a defaultMatthew Holt
2020-04-08logging: Only colorize console outputMatthew Holt
2020-04-08httpcaddyfile: Add key_type global option (#3231)Francis Lavoie
2020-04-08cel: Leverage DefaultAdapter to extend CEL's type systemMatthew Holt
Thanks to @TristonianJones for the tip! https://github.com/caddyserver/caddy/commit/105acfa08664c97460a6fe3fb49635618be5bcb2#r38358983
2020-04-08caddyhttp: Return port placeholders as intsMatthew Holt
2020-04-07basicauth: Re-prompt after invalid credentials (fix #3239) (#3240)Matt Holt
2020-04-07templates: Update docsMatthew Holt
2020-04-07templates: Add env function (closes #3237)Matthew Holt
2020-04-07Merge branch 'remove-ntlm'Matthew Holt
2020-04-07reverseproxy: Remove NTLM transport; refactor and improve docsMatthew Holt
2020-04-07core: Rename ParsedAddress -> NetworkAddressMatthew Holt
2020-04-06docs: Clarify "not" matcher structure (see #3233)Matthew Holt
2020-04-06caddyhttp: Add missing LB policy Caddyfile unmarshalers (#3230)Francis Lavoie
2020-04-06caddyhttp: Strictly forbid unnecessary blocks on matchers (#3229)Francis Lavoie
2020-04-06caddyhttp: Support single-line not matcher (#3228)Francis Lavoie
* caddyhttp: Support single-line not matcher shortcut * caddyhttp: Some tests, I guess
2020-04-06templates: Use text/template; add experimental notice to docsMatthew Holt
Using html/template.HTML like we were doing before caused nested include to be HTML-escaped, which breaks sites. Now we do not escape any of the output; template input is usually trusted, and if it's not, users should employ escaping actions within their templates to keep it safe. The docs already said this.
2020-04-06httpcaddyfile: Carry bind setting through to ACME issuer (fixes #3232)Matthew Holt
2020-04-06caddytls: Support custom bind host for challenges (#3232)Matthew Holt
2020-04-06tests: Remove noisy logsMatthew Holt
2020-04-04ci: Tweak commit prefixes to ignoreMatthew Holt
2020-04-04cmd: Log warning if --resume and --config used togetherMatthew Holt
There's nothing actually risky/dangerous in this situation, it's mostly an attempt to get the user's attention
2020-04-03chore: add adapt tests. fix load failure not failing tests (#3222)Mark Sargent
* add adaption tests. fix load failure not failing tests * removed unnecessary assignment
2020-04-03httpcaddyfile: Yield cleaner JSON when conn policy or log name is emptyMatthew Holt
2020-04-03go.mod: Update CertMagic (again) v0.10.10Matthew Holt
2020-04-03go.mod: Use latest Certmagic (v0.10.9)Matthew Holt
2020-04-03fastcgi: Account for lack of split path configuration (fix #3221)Matthew Holt
2020-04-03go.mod: Update CertMagic to v0.10.8Matthew Holt
Fixes occasional panic due to closing closed channel
2020-04-03Create FUNDING.ymlMatt Holt
I guess this got left in the v1 branch when we switched, oops
2020-04-02ci: goreleaser: Drop some platforms and replacements (#3217)Matt Holt
Based on download stats, demand for 32-bit binaries these days is extremely low. Also unify some of the filename conventions; just a few bikeshedding changes :)
2020-04-02readme: So much more ... what? Fixed cliffhangerMatthew Holt
2020-04-02chore: ci: fix release action script (#3216)Mohammed Al Sahaf
* chore: ci: fixing the step name that captures the pushed tag * chrore: ci: exclude commits prefixed with `ci:` from changelog
2020-04-02httpcaddyfile: Refactor site key parsing; detect conflicting schemesMatthew Holt
We now store the parsed site/server block keys with the server block, rather than parsing the addresses every time we read them. Also detect conflicting schemes, i.e. TLS and non-TLS cannot be served from the same server (natively -- modules could be built for it). Also do not add site subroutes (subroutes generated specifically from site blocks in the Caddyfile) that are empty.
2020-04-02ci: fuzz: skip fuzz data that contains `import` (#3214)Mohammed Al Sahaf
Thus far the fuzzers have found a few crashers in the Caddyfile parser. However, the fuzzer have been stuck at import glob expansion after import glob expansion, which aren't reproducible.
2020-04-02caddytls: Encode big.Int as string with JSONMatthew Holt
2020-04-02Update readmeMatthew Holt
2020-04-01Fix for last commitMatthew Holt
2020-04-01caddytls: Refactor certificate selection policies (close #1575)Matthew Holt
Certificate selection used to be a module, but this seems unnecessary, especially since the built-in CustomSelectionPolicy allows quite complex selection logic on a number of fields in certs. If we need to extend that logic, we can, but I don't think there are SO many possibilities that we need modules. This update also allows certificate selection to choose between multiple matching certs based on client compatibility and makes a number of other improvements in the default cert selection logic, both here and in the latest CertMagic. The hardest part of this was the conn policy consolidation logic (Caddyfile only, of course). We have to merge connection policies that we can easily combine, because if two certs are manually loaded in a Caddyfile site block, that produces two connection policies, and each cert is tagged with a different tag, meaning only the first would ever be selected. So given the same matchers, we can merge the two, but this required improving the Tag selection logic to support multiple tags to choose from, hence "tags" changed to "any_tag" or "all_tags" (but we use any_tag in our Caddyfile logic). Combining conn policies with conflicting settings is impossible, so that should return an error if two policies with the exact same matchers have non-empty settings that are not the same (the one exception being any_tag which we can merge because the logic for them is to OR them). It was a bit complicated. It seems to work in numerous tests I've conducted, but we'll see how it pans out in the release candidates.
2020-04-01caddyfile: Export NewTestDispenser() (close #2930)Matthew Holt
This allows modules to test their UnmarshalCaddyfile methods.
2020-04-01go.mod: Update smallstep/truststoreMatthew Holt
So that installation continues if Firefox is not installed See https://github.com/smallstep/truststore/issues/3
2020-04-01gzip: Use klauspost/gzip, an optimized gzip implementationMatthew Holt
2020-04-01caddytls: Update cipher suite names and curve namesMatthew Holt
Now using IANA-compliant names and Go 1.14's CipherSuites() function so we don't have to maintain our own mapping of currently-secure cipher suites.
2020-04-01caddyhttp: Print actual listener address in log message (closes #2992)Matthew Holt
Needed if port is 0, thus chosen by OS
2020-04-01caddyhttp: Update host matcher docs about wildcardsMatthew Holt
2020-04-01caddyhttp: 'not' matcher now accepts multiple matcher sets and OR's them (#3208)Matt Holt
See https://caddy.community/t/v2-matcher-or-in-not/7355/
2020-04-01rewrite: Fix for rewrites with URI placeholders (#3209)Matthew Holt
If a placeholder in the path component injects a query string such as the {http.request.uri} placeholder is wont to do, we need to separate it out from the path.
2020-03-31caddytls: Add support for externalAccountBinding ACME extensionMatthew Holt
2020-03-31pki: Add trust subcommand to install root cert (closes #3204)Matthew Holt
2020-03-30httpcaddyfile: Include non-standard ports when mapping logger namesMatthew Holt
If a site block has a key like "http://localhost:2016", then the log for that site must be mapped to "localhost:2016" and not just "localhost" because "localhost:2016" will be the value of the Host header of requests. But a key like "localhost:80" does not include the port since the Host header will not include ":80" because it is a standard port. Fixes https://caddy.community/t/v2-common-log-format-not-working/7352?u=matt
2020-03-30caddyhttp: Rename MatchNegate type to MatchNot typeMatthew Holt
This is more congruent with its module name. A change that affects only code, not configurations.