diff --git a/.idea/namesilo-letsencrypt.iml b/.idea/namesilo-letsencrypt.iml
index ddc01a4..01981e5 100644
--- a/.idea/namesilo-letsencrypt.iml
+++ b/.idea/namesilo-letsencrypt.iml
@@ -7,7 +7,7 @@
-
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 0a79563..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# Changelog
-
-## [0.9.2](https://github.com/ethauvin/namesilo-letsencrypt/tree/0.9.2) (2020-05-28)
-
-[Full Changelog](https://github.com/ethauvin/namesilo-letsencrypt/compare/0.9.1...0.9.2)
-
-**Closed issues:**
-
-- Do not support multiple \_acme-challenge records [\#1](https://github.com/ethauvin/namesilo-letsencrypt/issues/1)
-
-**Merged pull requests:**
-
-- make python3.4 compatible. add subdomains support [\#2](https://github.com/ethauvin/namesilo-letsencrypt/pull/2) ([Junker](https://github.com/Junker))
-
-## [0.9.1](https://github.com/ethauvin/namesilo-letsencrypt/tree/0.9.1) (2020-03-15)
-
-[Full Changelog](https://github.com/ethauvin/namesilo-letsencrypt/compare/0.9.0...0.9.1)
-
-## [0.9.0](https://github.com/ethauvin/namesilo-letsencrypt/tree/0.9.0) (2019-04-30)
-
-[Full Changelog](https://github.com/ethauvin/namesilo-letsencrypt/compare/8a91146faebd196b223f7653e470428130f26246...0.9.0)
-
-
-
-\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/README.md b/README.md
index 3e2232a..79ab273 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# NameSilo Let's Encrypt
-[](https://opensource.org/licenses/BSD-3-Clause)
-[](https://www.python.org/)
+[](http://opensource.org/licenses/BSD-3-Clause)
+[](https://www.python.org/)
Python scripts (hook) to automate obtaining [Let's Encrypt](https://letsencrypt.org/) certificates,
using [Certbot](https://certbot.eff.org/) DNS-01 challenge validation for domains DNS hosted on
@@ -9,21 +9,22 @@ using [Certbot](https://certbot.eff.org/) DNS-01 challenge validation for domain
## Setup
-The scripts use the [tldextract](https://github.com/john-kurkowski/tldextract) and [untangle](https://untangle.readthedocs.io/en/latest/) libraries, if not already installed on your system:
+The scripts use the [untangle](https://untangle.readthedocs.io/en/latest/) library, if not already installed on your system:
```
-pip install tldextract untangle
+pip install untangle
```
Download the [latest release](https://github.com/ethauvin/namesilo-letsencrypt/releases) archive and expand it in the desired directory.
+
## Configuration
-Add your [NameSilo API key](https://www.namesilo.com/account/api-manager)
+Add your [NameSilo API key](https://www.namesilo.com/account_api.php)
to the top of the `config.py` file:
```python
-# Get your API Key from: https://www.namesilo.com/account/api-manager
+# Get your API Key from: https://www.namesilo.com/account_api.php
apikey = "YOUR_API_KEY"
```
@@ -42,4 +43,4 @@ certbot certonly --manual --email you@example.com \
-d *.example.com -d example.com
-Please note that NameSilo DNS propagation takes up to **15 minutes**. The scripts will wait **25 minutes** before completing, just to be safe.
+Please note that NameSilo DNS propagation takes up to **15 minutes**. The scripts will wait **20 minutes** before completing, just to be safe.
diff --git a/authenticator.py b/authenticator.py
old mode 100755
new mode 100644
index 510aa1f..c6fb9bd
--- a/authenticator.py
+++ b/authenticator.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python3.8
# authenticator.py
#
@@ -37,7 +37,6 @@ import tempfile
import time
import urllib.request
-import tldextract
import untangle
from config import apikey, wait
@@ -46,32 +45,28 @@ from config import apikey, wait
def sleep(minutes):
if minutes < 16:
minutes = 16
+ print("Waiting", minutes, "minutes for DNS changes to complete...")
time.sleep(minutes * 60)
domain = os.environ['CERTBOT_DOMAIN']
validation = os.environ['CERTBOT_VALIDATION']
-tmpdir = os.path.join(tempfile.gettempdir(), "CERTBOT_" + domain)
-rrhost = "_acme-challenge"
+tmpdir = os.path.join(tempfile.gettempdir(), f"CERTBOT_{domain}")
if "NAMESILO_API" in os.environ:
apikey = os.environ['NAMESILO_API']
-tld = tldextract.extract(domain)
-nsdomain = tld.domain + "." + tld.suffix
-if tld.subdomain:
- rrhost += "." + tld.subdomain
-
-url = "https://www.namesilo.com/api/dnsAddRecord?\
-version=1&type=xml&key=" + apikey + "&domain=" + nsdomain + "&rrtype=TXT\
-&rrhost=" + rrhost + "&rrvalue=" + validation + "&rrttl=3600"
+url = f"https://www.namesilo.com/api/dnsAddRecord?\
+version=1&type=xml&key={apikey}&domain={domain}&rrtype=TXT\
+&rrhost=_acme-challenge&rrvalue={validation}&rrttl=3600"
req = urllib.request.Request(
url,
data=None,
headers={
- 'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) '
- 'Gecko/20100101 Firefox/74.0')
+ 'User-Agent': ('Mozilla/5.0 (X11; CrOS x86_64 11647.154.0) '
+ 'AppleWebKit/537.36 (KHTML, like Gecko) '
+ 'Chrome/73.0.3683.114 Safari/537.36')
}
)
diff --git a/cleanup.py b/cleanup.py
old mode 100755
new mode 100644
index c15d05c..627560a
--- a/cleanup.py
+++ b/cleanup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python3.8
# cleanup.py
#
@@ -36,22 +36,18 @@ import sys
import tempfile
import urllib.request
-import tldextract
import untangle
from config import apikey
domain = os.environ['CERTBOT_DOMAIN']
-tmpdir = os.path.join(tempfile.gettempdir(), "CERTBOT_" + domain)
+tmpdir = os.path.join(tempfile.gettempdir(), f"CERTBOT_{domain}")
if "NAMESILO_API" in os.environ:
apikey = os.environ['NAMESILO_API']
-tld = tldextract.extract(domain)
-nsdomain = tld.domain + "." + tld.suffix
-
-url = "https://www.namesilo.com/api/dnsDeleteRecord\
-?version=1&type=xml&key=" + apikey + "&domain=" + nsdomain + "&rrid="
+url = f"https://www.namesilo.com/api/dnsDeleteRecord\
+?version=1&type=xml&key={apikey}&domain={domain}&rrid="
def getrequest(record_id):
@@ -59,8 +55,9 @@ def getrequest(record_id):
url + record_id,
data=None,
headers={
- 'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) '
- 'Gecko/20100101 Firefox/74.0')
+ 'User-Agent': ('Mozilla/5.0 (X11; CrOS x86_64 11647.154.0) '
+ 'AppleWebKit/537.36 (KHTML, like Gecko) '
+ 'Chrome/73.0.3683.114 Safari/537.36')
}
)
diff --git a/config.py b/config.py
index 0bcd226..8679450 100644
--- a/config.py
+++ b/config.py
@@ -1,4 +1,4 @@
-# Get your API Key from: https://www.namesilo.com/account/api-manager
+# Get your API Key from: https://www.namesilo.com/account_api.php
apikey = "YOUR_API_KEY"
# Minutes to wait for DNS changes to complete.
-wait = 25
+wait = 20
diff --git a/release.sh b/release.sh
deleted file mode 100755
index 6689a1b..0000000
--- a/release.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-RELEASE=release
-
-if [ $# != 1 ];
-then
- echo "Usage: $(basename "$0") "
- exit 2
-else
- if ! [ -d "$RELEASE" ]
- then
- mkdir "$RELEASE"
- fi
- PROJECT=$(basename "$(pwd)")
- DIR="${PROJECT}-${1}"
- mkdir "$DIR"
- cp ./*.py ./*.md ./*.txt "$DIR"
- dos2unix "$DIR"/*.*
- touch "$DIR" "$DIR"/*.*
- tar -czvf "${RELEASE}/${DIR}.tar.gz" "$DIR"
- zip --to-crlf -r "${RELEASE}/${DIR}.zip" "$DIR"
- touch "$RELEASE"/*.*
- rm -rf "${DIR}"
-fi
diff --git a/release/namesilo-letsencrypt-0.9.2.tar.gz b/release/namesilo-letsencrypt-0.9.2.tar.gz
deleted file mode 100644
index 711d070..0000000
Binary files a/release/namesilo-letsencrypt-0.9.2.tar.gz and /dev/null differ
diff --git a/release/namesilo-letsencrypt-0.9.2.zip b/release/namesilo-letsencrypt-0.9.2.zip
deleted file mode 100644
index 4affb98..0000000
Binary files a/release/namesilo-letsencrypt-0.9.2.zip and /dev/null differ