summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Runfalk <andreas@runfalk.se>2017-05-10 14:24:25 +0200
committerAndreas Runfalk <andreas@runfalk.se>2017-05-10 14:24:25 +0200
commit998f006d09ed6613e3e1aab1f5016086b4ccce81 (patch)
tree660e7957a8bf068683f67c073fd5207995f0b9a2
parent63c76a64c5e42dbb9c9f21a62997135b64aa5b9a (diff)
downloadcertbot-loopia-998f006d09ed6613e3e1aab1f5016086b4ccce81.zip
certbot-loopia-998f006d09ed6613e3e1aab1f5016086b4ccce81.tar.gz
certbot-loopia-998f006d09ed6613e3e1aab1f5016086b4ccce81.tar.bz2
Added LICENSE and README.rst. Expanded setup.py to be a proper package
-rw-r--r--LICENSE32
-rw-r--r--MANIFEST.in1
-rw-r--r--README.rst59
-rw-r--r--setup.cfg2
-rw-r--r--setup.py30
5 files changed, 124 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..19f6ff8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,32 @@
+Copyright (c) 2017 by Andreas Runfalk.
+
+Some rights reserved.
+
+Redistribution and use in source and binary forms of the software as well
+as documentation, with or without modification, are permitted provided
+that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+* The names of the contributors may not be used to endorse or
+ promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..1aba38f
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1 @@
+include LICENSE
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..5d42130
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,59 @@
+Loopia DNS Authenticator for Certbot
+====================================
+This allows automatic completion of `Certbot's
+<https://github.com/certbot/certbot>` DNS01 challange for domains managed on
+`Loopia <https://www.loopia.se/>` DNS.
+
+
+Installing
+----------
+.. code-block::
+ $ pip install certbot-loopia
+
+
+Usage
+-----
+To use the authenticator you need to provide some required options.
+
+``--certbot-loopia:auth-user <user>`` *(required)*
+ API username for Loopia.
+``--certbot-loopia:auth-password <password>`` *(required)*
+ API password for Loopia.
+
+There are also some optional arguments:
+
+``--certbot-loopia:auth-time-limit <time>``
+ Time limit for local verification. This is the maximum time the authenticator
+ will try to self-verify before declaring that the DNS update was unsuccessful.
+ Default: ``30m``.
+``--certbot-loopia:auth-time-delay <time>``
+ Time delay before first trying to self-verify the result of authentication.
+ It is recommended to have a delay of at least 30 seconds to prevent the DNS
+ server from caching that there are no TXT records for the challenge subdomain.
+ Default: ``1m``.
+``--certbot-loopia:auth-retry-interval <time>``
+ How frequently to retry self-verification. This is time past since the start
+ of the previous verification. It is not recommended to choose values smaller
+ than 10 seconds. Default: ``30s``.
+
+The format of ``<time>`` is ``AdBhCmDs`` where: ``A``is days, ``B``is hours,
+``C``is minutes and ``D`` is seconds. Note that ``A``, ``B``, ``C`` and ``D``
+must be integers. The units ``d``, ``h`` and ``m`` are required while ``s`` is
+optional. Any value-unit pair may be omitted, but they must be ordered from most
+to least significant unit. Examples of valid ``<time>`` expressions are:
+
+- ``42`` or ``42s`` for 42 seconds
+- ``1m30s`` or ``1m30`` for 1.5 minutes
+- ``1h`` for 1 hour
+- ``1d12h`` for 1.5 days
+
+
+Known issues
+------------
+- Due to caching on Loopia's side it can take up to 15 minutes before changes
+ are visible. The plugin will by default retry self-verification for at least
+ 30 minutes before sending the actual verification request to the ACME server.
+
+Disclaimer
+----------
+This plugin is neither affiliated with nor endorsed by Loopia AB.
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..3c6e79c
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,2 @@
+[bdist_wheel]
+universal=1
diff --git a/setup.py b/setup.py
index bf2282c..472833a 100644
--- a/setup.py
+++ b/setup.py
@@ -1,9 +1,24 @@
from setuptools import setup
+
+try:
+ long_desc = open("README.rst").read()
+except:
+ print("Skipping README.rst for long description as it was not found")
+ long_desc = None
+
setup(
name="certbot-loopia",
+ version="0.1.0",
+ description="Loopia DNS authentication plugin for Certbot",
+ long_description=long_desc,
+ license="BSD",
+ author="Andreas Runfalk",
+ author_email="andreas@runfalk.se",
+ url="https://www.github.com/runfalk/certbot-loopia",
py_modules=["certbot_loopia"],
install_requires=[
+ "acme",
"certbot",
"loopialib",
"zope.interface",
@@ -13,4 +28,19 @@ setup(
"auth = certbot_loopia:LoopiaAuthenticator",
],
},
+ classifiers=[
+ "Development Status :: 2 - Pre-Alpha",
+ "Environment :: Plugins",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: BSD License",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3.3",
+ "Programming Language :: Python :: 3.4",
+ "Programming Language :: Python :: 3.5",
+ "Programming Language :: Python :: 3.6",
+ "Topic :: Internet :: Name Service (DNS)",
+ "Topic :: System :: Systems Administration",
+ "Topic :: Utilities",
+ ],
)