Sakura Cloud DNS Authenticator (#5701)

Implement an Authenticator which can fulfill a dns-01 challenge using
the Sakura Cloud DNS API.
Applicable only for domains using Sakura Cloud for DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-sakuracloud -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Domain name not registered to Sakura Cloud account.
This commit is contained in:
chibiegg
2018-07-10 14:30:37 -07:00
committed by Brad Warren
parent 8a5abb6203
commit 9314911135
26 changed files with 805 additions and 5 deletions
+4 -1
View File
@@ -165,7 +165,8 @@ def choose_plugin(prepared, question):
noninstaller_plugins = ["webroot", "manual", "standalone", "dns-cloudflare", "dns-cloudxns",
"dns-digitalocean", "dns-dnsimple", "dns-dnsmadeeasy", "dns-google",
"dns-linode", "dns-luadns", "dns-nsone", "dns-rfc2136", "dns-route53"]
"dns-linode", "dns-luadns", "dns-nsone", "dns-rfc2136", "dns-route53",
"dns-sakuracloud"]
def record_chosen_plugins(config, plugins, auth, inst):
"Update the config entries to reflect the plugins we actually selected."
@@ -300,6 +301,8 @@ def cli_plugin_requests(config): # pylint: disable=too-many-branches
req_auth = set_configurator(req_auth, "dns-rfc2136")
if config.dns_route53:
req_auth = set_configurator(req_auth, "dns-route53")
if config.dns_sakuracloud:
req_auth = set_configurator(req_auth, "dns-sakuracloud")
logger.debug("Requested authenticator %s and installer %s", req_auth, req_inst)
return req_auth, req_inst