Commit graph

117 commits

Author SHA1 Message Date
Phil Pennock
3c41a39252
BIND: Implement AutoDNSSEC (#648)
There's a philosophy issue here around what is the Bind output meant to
do.  Since AFAIK we're not integrating into Bind's catalog zones or the
like, we're just targeting the zonefiles, we're not in a position to do
_anything_ relating to registrar options such as setting up DS glue.

So at one level, enabling AutoDNSSEC for Bind is a lie. But without
this, folks can't target a Bind zone as a secondary provider for their
domain, to get debug dumps of the zone output, because the checks for
"Can" block it.  So I think this commit achieves a happy compromise: we
write a comment into the Bind zonefile, indicating that DNSSEC was
requested.

Actually: we add support for arbitrary zone comments to be written into
a zonefile via a slightly ugly "can be `nil`" parameter.  We then write
in a generation timestamp comment, and if AutoDNSSEC was requested we
then write that in too.
2020-02-22 13:27:24 -05:00
Tom Limoncelli
7384743f6d
pretty helpers.js (#649) 2020-02-22 12:07:10 -05:00
Phil Pennock
9b239f41a3
Add AUTODNSSEC, implement for DNSimple (#640)
* Add AUTODNSSEC, implement for DNSimple

There are two models for DNSSEC in DNS management: either dnscontrol
manages all the DNSSEC records and has to be invoked regularly for
re-signing, or the provider manages DNSSEC automatically and dnscontrol
is not involved beyond saying "yeah, do that".

This implements the latter, as a model, and for one provider.

Potentially we could tune/configure options for DNSSEC such as
algorithm, but DNSimple don't expose that API so I haven't implemented
it.

This minimal model should be something which maps into other providers
cleanly.

* Fix missing CanAutoDNSSEC on provider

* Validation fix for master broken

This is broken in master and causing Travis in my branch to fail.  The
validation tool runs with `gofmt -s` to require "simplify", and so
rejects an ignored second bound variable to range iteration.

* Correct wire in the AUTODNSSEC validation step
2020-02-22 07:09:31 -05:00
Tom Limoncelli
87ad01d194
Add "get-zone" command (#613)
* Add GetZoneRecords to DNSProvider interface
* dnscontrol now uses ufave/cli/v2
* NEW: get-zones.md
* HasRecordTypeName should be a method on models.Records not models.DomainConfig
* Implement BIND's GetZoneRecords
* new WriteZoneFile implemented
* go mod vendor
* Update docs to use get-zone instead of convertzone
* Add CanGetZone capability and update all providers.
* Get all zones for a provider at once (#626)
* implement GetZoneRecords for cloudflare
* munge cloudflare ttls
* Implement GetZoneRecords for cloudflare (#625)

Co-authored-by: Craig Peterson <192540+captncraig@users.noreply.github.com>
2020-02-18 08:59:18 -05:00
Tom Hughes
6c4192bf82
Add _mta-sts to labels allowed to have an underscore (#617)
Although _mta-sts is normally used with a TXT record it can
also be used with a CNAME record to delegate the authority.

See sections 3.1 and 8.2 of RFC8461 for details.
2020-02-07 14:20:24 -05:00
Tom Limoncelli
36a05608e0
DOCS: Explain nameservers vs ns (#608) 2020-01-29 13:47:32 -05:00
Tom Limoncelli
92b51dbc65
Update github.com/mjibson/esc (#515)
* Update github.com/mjibson/esc

* Update github.com/mjibson/esc
* Fix generate.go to new signature for esc.Run

* Internal: Upgrade to lastest "esc"
2020-01-29 13:43:25 -05:00
Patrick Gaskin
6e8d5b59ab Fixed issues from go vet (#605)
* CloudFlare provider is missing quotes on a JSON struct tag.
* ACME package has a unnecessary JSON struct tag.
* Route53 provider has an unreachable return.
2020-01-28 12:10:58 -05:00
Patrick Gaskin
825ba2d081 Switch to Go 1.13 error wrapping (#604)
* Replaced errors.Wrap with fmt.Errorf (#589)

* Find:    errors\.Wrap\(([^,]+),\s+(["`][^"`]*)(["`])\)
  Replace: fmt.Errorf($2: %w$3, $1)

* Replaced errors.Wrapf with fmt.Errorf (#589)

* Find:    errors\.Wrapf\(([^,]+),\s+(["`][^"`]*)(["`])\)
  Replace: fmt.Errorf($2: %w$3, $1)
* Find:    errors\.Wrapf\(([^,]+),\s+(["`][^"`]*)(["`])(,[^)]+)\)
* Replace: fmt.Errorf($2: %w$3$4, $1)

* Replaced errors.Errorf with fmt.Errorf (#589)

* Find:    errors\.Errorf
  Replace: fmt.Errorf

* Cleaned up remaining imports

* Cleanup

* Regenerate provider support matrix

This was broken by #533 ... and it's now the third time this has been missed.
2020-01-28 11:06:56 -05:00
Patrick Gaskin
2f83aa9302 Internals: Switch to v2 go.mod, drop GOPATH, and fix Azure Pipelines (#595)
* Switched to v2 go.mod

Also set GO111MODULE=on in build stuff to always use Go modules
even when in GOPATH.

* Ensure go.mod, go.sum, and vendor are up to date

* Attempt to fix Azure pipelines

* Add set -e to properly fail on exit (it didn't seem to be
  propagating properly before).
* Set workingDirectory for GoFmt and GoGen (this might be why it
  fails unlike compile and unitests).

* Another attempt to fix Azure Pipelines

* Use the Go env template for all go-related jobs.

* Completely fixed Azure Pipelines

* Added a display name to GoFmt for consistency.
* Fixed diffs for GoFmt and GoGen.
* Show git status for checks.

* Drop GOPATH for tests

TODO: Do the same for integration tests.

* Drop GOPATH for integration tests

* Show more diffs

* Regenerate provider support matrix

This wasn't done in #590...
2020-01-28 10:42:31 -05:00
Anton Yurchenko
262acdd3d8 get-certs: DNS01 challenge skipping preCheckDNS (#591) 2020-01-23 17:54:07 -05:00
Tom Limoncelli
f6ce421fdd
NEW PROVIDER: GANDI_V5 (deprecates GANDI) (#572)
* GANDI_v5: Add Registrar support
* Add GANDI deprecation warning
* vendor github.com/tiramiseb/go-gandi
2020-01-20 14:13:32 -05:00
Tom Limoncelli
2c0361b0d5
BUG: Correctly spell Cabability (#582) 2020-01-12 11:24:10 -05:00
Craig Peterson
2ee086d41c
switch to new go-acme imports from xenolf. Fix api changes (#540)
* switch to new go-acme imports from xenolf. Fix api changes

* update many vault related dependencies
2019-07-29 10:54:32 -04:00
Tom Limoncelli
be10c5f7c2
Bugfix: redirect: should be redirect= (#507) 2019-06-21 07:48:59 -04:00
Tom Limoncelli
2d9d93653b
SPF Optimizer: Add "redirect:" support (#506)
FYI: The support is very minimal. It only supports redirect if it is the last item in an SPF record. At that point, it is equivalent to include.

* In SFP, treat redirect like a special include.
* Document SPF redirect: limited implementation.
2019-06-19 18:46:56 +01:00
Patrik Kernstock
539820f87a CF: Add ability to manage UniversalSSL (#496)
* Added Cloudflare UniveralSSL control
* Added CF_UNIVERSALSSL_ON/OFF macros
* Updated docs
* Small docs update
* go generate
2019-06-13 07:32:54 -04:00
Tom Limoncelli
8b86eec6bf go generate 2019-05-30 19:52:35 -04:00
Craig Peterson
be5b588035
add must_staple option to cert. Default false (#502) 2019-05-29 14:03:36 -04:00
Koen Vlaswinkel
5538de6682 IGNORE() now supports glob pattern/wildcards (#463) 2019-05-27 10:14:29 -04:00
Nikolay Kolev
b3e35b56a2 DOC: Apply brand-preferred case (#429)
* Apply brand-preferred case

* Apply case to own branding as well
2019-05-23 09:29:21 -04:00
Oscar Moreno Garza
608dd7af56 NEW: require() now supports loading JSON too (#474) 2019-05-23 09:26:40 -04:00
Patrik Kernstock
f9df8c744a NEW: Added support for specific TTL when using SPF_BUILDER (#476)
* Added support for specific TTL for SPF_BUILDER

* Added updated static.go file

* Use IF instead of reading defaultTTL
2019-05-23 09:25:06 -04:00
Tom Limoncelli
df163c0042
OVH: Update to use newer client library (#445)
* xlucas/go-ovh is deprecated, use ovh/go-ovh instead.

* vendor github.com/ovh/go-ovh

* Fix 022-sshfp.json test
2019-05-20 15:39:19 -04:00
Tom Limoncelli
5f77888296
DOCUMENTATION: Document bugid 491 (#492) 2019-05-20 14:37:23 -04:00
Patrik Kernstock
a16f689d32 Added CAA_BUILDER (#478)
* Added CAA_BUILDER

* CAA-Builder: simply use "none" to refuse all CAs

* Fixed small error in documentation
2019-05-18 11:10:17 -04:00
Craig Peterson
6d6f685f70
trim trailing dots from discovered nameservers in central place 2019-05-15 12:57:17 -04:00
Craig Peterson
5c24f6ce39 fix some tests 2019-05-06 11:12:42 -04:00
Craig Peterson
e242f5a152
Increase 'just because' sleep to 60s 2019-05-02 19:31:15 -04:00
Tom Limoncelli
61a00a7d7e
Check for duplicate records much earlier (#467)
* Check for duplicate records much earlier.

* Change GetTargetDiffable to ToDiffable

* fixup!
2019-04-22 15:41:39 -04:00
Peter Dunaskin
bb278caf92 Set NAPTR record to FQDN. 2019-04-01 09:15:43 +02:00
Peter Dunaskin
e2726dda64 Fix NAPTR record support. 2019-03-29 12:01:52 +01:00
Peter Dunaskin
7566c0428e Attempt to add NAPTR support. 2019-03-28 15:40:13 +01:00
Tom Limoncelli
963bd32e20
Add SIP/JABBER labels to underscore exception list (#453)
* Improve comments in checkLabel
* Reformat labelUnderscores to make it easier to add to
* Add to exception list for label warnings
* Add underscores in hostnames to the opinions list.
2019-03-04 12:11:25 -05:00
Craig Peterson
5c03761fa6
notifications for get-certs command (#451) 2019-02-21 19:58:50 -05:00
Craig Peterson
7e5a1fb96d add tls.combined field to vault cert backend 2019-02-06 15:21:08 -05:00
Tom Limoncelli
061ea63322
require() should handle paths as relative (like nodeJS) (#443)
* Integrate @nlowe's documentation and tests
* Use filepath.Clean() instead of filepath.Abs()
* Use a stackless implementation
2019-01-29 10:29:00 -05:00
karlism
f9fc6243d4 Add SSHFP DNS record support. (#439)
* Add SSHFP DNS record support.
* Fix integration test.
2019-01-28 17:26:20 -05:00
Tom Limoncelli
1b1f37da9d Fix TLSA parse_test. 2019-01-11 10:34:13 -05:00
Tom Limoncelli
a5e14a5f93 fixup! 2018-12-19 10:22:37 -05:00
Tom Limoncelli
f83b624ea1
BUG: parse_tests: Fix (revert) earlier reformatting (#431) 2018-12-19 10:19:50 -05:00
Tom Limoncelli
ff3d446681
Codestyle: Fix formatting on parse_test JSON (#427)
* Fix failing parse_test 021
* Fix JSON formatting in parse_test directory
* js_test.go now reports json content length
2018-12-13 11:46:43 -05:00
Tom Limoncelli
4ef9e8bc40
Fix SRV record handling when target is shortname (#422)
* models/record.go: SRV targets are case insensitive. Downcase them.
* models/t_srv.go: Rename setTargetIntAndStrings() to setTargetSRVIntAndStrings() (makes it easier to search for /setTargetSRV/).
* pkg/js/parse_tests/021-srv.js*: SRV: Add parse_tests
* pkg/normalize/validate.go: SRV targets are hostnames, turn into FQDNs.
* Add  #rtype_variations warnings for future developers
2018-12-07 16:30:04 -05:00
Craig Peterson
cf7f199462
allow ecc certs if desired (#411) 2018-10-09 18:51:48 -04:00
Craig Peterson
6764811c5f
Abstraction for Certificate Storage (+ vault storage) (#406)
* new abstraction around storage

* re-work completely to fit new acme package pre-solving paradigm

* vault storage plugin

* add some vendor

* delete old vendor pinning mechanism
2018-10-08 16:11:19 -04:00
Ed Bardsley
06ee4d6fb1 Verbose debug logging via the ConsolePrinter and printer package. (#404)
This:
 * adds a global -v flag for verbosity
 * refactors the "printer" package to have a DefaultPrinter and package
   functions that call it, similar to net/http's DefaultServeMux
 * adds printer tests
 * moves current users of Debugf to Printf
 * moves most users of the "log" package to use "printer"
 * demotes noticably noisy log messages to "Debugf", like "IGNORE"-
   and "NO_PURGE"-related messages
2018-10-08 16:10:44 -04:00
Craig Peterson
e30cbff674 fix build 2018-09-07 14:17:02 -04:00
Ed Bardsley
61281d7046 Add NAMESERVER_TTL and associated documentation. (#398) 2018-09-04 10:57:11 -04:00
Andrew Rafferty
402fc449e2 Certs: Create directories with execute permissions so they can be opened (#395)
* Create directories with execute permissions so they can be opened
* Use 0700 permissions on certificate directories instead of 0755
2018-08-27 12:12:53 -04:00
Kieran Jacobsen
95ebf1d35b Include PTR types in SPF Builder (#378)
* Include PTR types in SPF

* Simplify PTR and Exists logic

* Include PTR test case

* Include PTR test case

* Remove extra }
2018-08-02 10:57:41 -04:00