mirror of
https://github.com/acmesh-official/acme.sh.git
synced 2025-05-05 19:07:43 +00:00
Add support for Technitium DNS
Signed-off-by: Avi Miller <me@dje.li>
This commit is contained in:
parent
f7f1168aad
commit
c5314d37ff
301
.github/workflows/DNS.yml
vendored
301
.github/workflows/DNS.yml
vendored
@ -11,9 +11,6 @@ on:
|
|||||||
- 'dnsapi/*.sh'
|
- 'dnsapi/*.sh'
|
||||||
- '.github/workflows/DNS.yml'
|
- '.github/workflows/DNS.yml'
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
CheckToken:
|
CheckToken:
|
||||||
@ -56,18 +53,11 @@ jobs:
|
|||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
||||||
CASE: le_test_dnsapi
|
CASE: le_test_dnsapi
|
||||||
TEST_LOCAL: 1
|
TEST_LOCAL: 1
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
DEBUG: 1
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- name: Clone acmetest
|
- name: Clone acmetest
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
||||||
- name: Set env file
|
- name: Set env file
|
||||||
run: |
|
run: |
|
||||||
cd ../acmetest
|
cd ../acmetest
|
||||||
@ -86,13 +76,11 @@ jobs:
|
|||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
if [ "${{ secrets.TokenName5}}" ] ; then
|
||||||
echo "${{ secrets.TokenName5}}=${{ secrets.TokenValue5}}" >> docker.env
|
echo "${{ secrets.TokenName5}}=${{ secrets.TokenValue5}}" >> docker.env
|
||||||
fi
|
fi
|
||||||
|
echo "TEST_DNS_NO_WILDCARD" >> docker.env
|
||||||
|
echo "TEST_DNS_SLEEP" >> docker.env
|
||||||
- name: Run acmetest
|
- name: Run acmetest
|
||||||
run: cd ../acmetest && ./rundocker.sh testall
|
run: cd ../acmetest && ./rundocker.sh testall
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MacOS:
|
MacOS:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
needs: Docker
|
needs: Docker
|
||||||
@ -104,43 +92,33 @@ jobs:
|
|||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
||||||
CASE: le_test_dnsapi
|
CASE: le_test_dnsapi
|
||||||
TEST_LOCAL: 1
|
TEST_LOCAL: 1
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
DEBUG: 1
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- name: Install tools
|
- name: Install tools
|
||||||
run: brew install socat
|
run: brew install socat
|
||||||
- name: Clone acmetest
|
- name: Clone acmetest
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
||||||
- name: Run acmetest
|
- name: Run acmetest
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
if [ "${{ secrets.TokenName1}}" ] ; then
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
export ${{ secrets.TokenName1}}=${{ secrets.TokenValue1}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
if [ "${{ secrets.TokenName2}}" ] ; then
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
export ${{ secrets.TokenName2}}=${{ secrets.TokenValue2}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
if [ "${{ secrets.TokenName3}}" ] ; then
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
export ${{ secrets.TokenName3}}=${{ secrets.TokenValue3}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
if [ "${{ secrets.TokenName4}}" ] ; then
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
export ${{ secrets.TokenName4}}=${{ secrets.TokenValue4}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
if [ "${{ secrets.TokenName5}}" ] ; then
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
export ${{ secrets.TokenName5}}=${{ secrets.TokenValue5}}
|
||||||
fi
|
fi
|
||||||
cd ../acmetest
|
cd ../acmetest
|
||||||
./letest.sh
|
./letest.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Windows:
|
Windows:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
needs: MacOS
|
needs: MacOS
|
||||||
@ -152,19 +130,12 @@ jobs:
|
|||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
||||||
CASE: le_test_dnsapi
|
CASE: le_test_dnsapi
|
||||||
TEST_LOCAL: 1
|
TEST_LOCAL: 1
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
DEBUG: 1
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set git to use LF
|
- name: Set git to use LF
|
||||||
run: |
|
run: |
|
||||||
git config --global core.autocrlf false
|
git config --global core.autocrlf false
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- name: Install cygwin base packages with chocolatey
|
- name: Install cygwin base packages with chocolatey
|
||||||
run: |
|
run: |
|
||||||
choco config get cacheLocation
|
choco config get cacheLocation
|
||||||
@ -172,39 +143,37 @@ jobs:
|
|||||||
shell: cmd
|
shell: cmd
|
||||||
- name: Install cygwin additional packages
|
- name: Install cygwin additional packages
|
||||||
run: |
|
run: |
|
||||||
C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -s https://mirrors.kernel.org/sourceware/cygwin/ -P socat,curl,cron,unzip,git
|
C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -s http://mirrors.kernel.org/sourceware/cygwin/ -P socat,curl,cron,unzip,git
|
||||||
shell: cmd
|
shell: cmd
|
||||||
- name: Set ENV
|
- name: Set ENV
|
||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
echo PATH=C:\tools\cygwin\bin;C:\tools\cygwin\usr\bin >> %GITHUB_ENV%
|
echo PATH=C:\tools\cygwin\bin;C:\tools\cygwin\usr\bin >> %GITHUB_ENV%
|
||||||
- name: Clone acmetest
|
- name: Clone acmetest
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
||||||
- name: Run acmetest
|
- name: Run acmetest
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
if [ "${{ secrets.TokenName1}}" ] ; then
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
export ${{ secrets.TokenName1}}=${{ secrets.TokenValue1}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
if [ "${{ secrets.TokenName2}}" ] ; then
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
export ${{ secrets.TokenName2}}=${{ secrets.TokenValue2}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
if [ "${{ secrets.TokenName3}}" ] ; then
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
export ${{ secrets.TokenName3}}=${{ secrets.TokenValue3}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
if [ "${{ secrets.TokenName4}}" ] ; then
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
export ${{ secrets.TokenName4}}=${{ secrets.TokenValue4}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
if [ "${{ secrets.TokenName5}}" ] ; then
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
export ${{ secrets.TokenName5}}=${{ secrets.TokenValue5}}
|
||||||
fi
|
fi
|
||||||
cd ../acmetest
|
cd ../acmetest
|
||||||
./letest.sh
|
./letest.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
runs-on: macos-12
|
runs-on: macos-10.15
|
||||||
needs: Windows
|
needs: Windows
|
||||||
env:
|
env:
|
||||||
TEST_DNS : ${{ secrets.TEST_DNS }}
|
TEST_DNS : ${{ secrets.TEST_DNS }}
|
||||||
@ -214,48 +183,37 @@ jobs:
|
|||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
||||||
CASE: le_test_dnsapi
|
CASE: le_test_dnsapi
|
||||||
TEST_LOCAL: 1
|
TEST_LOCAL: 1
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
DEBUG: 1
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- name: Clone acmetest
|
- name: Clone acmetest
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
||||||
- uses: vmactions/freebsd-vm@v0
|
- uses: vmactions/freebsd-vm@v0.1.4
|
||||||
with:
|
with:
|
||||||
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG http_proxy https_proxy TokenName1 TokenName2 TokenName3 TokenName4 TokenName5 ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
||||||
prepare: pkg install -y socat curl
|
prepare: pkg install -y socat curl
|
||||||
usesh: true
|
usesh: true
|
||||||
copyback: false
|
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
if [ "${{ secrets.TokenName1}}" ] ; then
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
export ${{ secrets.TokenName1}}=${{ secrets.TokenValue1}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
if [ "${{ secrets.TokenName2}}" ] ; then
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
export ${{ secrets.TokenName2}}=${{ secrets.TokenValue2}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
if [ "${{ secrets.TokenName3}}" ] ; then
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
export ${{ secrets.TokenName3}}=${{ secrets.TokenValue3}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
if [ "${{ secrets.TokenName4}}" ] ; then
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
export ${{ secrets.TokenName4}}=${{ secrets.TokenValue4}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
if [ "${{ secrets.TokenName5}}" ] ; then
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
export ${{ secrets.TokenName5}}=${{ secrets.TokenValue5}}
|
||||||
fi
|
fi
|
||||||
cd ../acmetest
|
cd ../acmetest
|
||||||
./letest.sh
|
./letest.sh
|
||||||
|
|
||||||
|
Solaris:
|
||||||
|
runs-on: macos-10.15
|
||||||
|
|
||||||
OpenBSD:
|
|
||||||
runs-on: macos-12
|
|
||||||
needs: FreeBSD
|
needs: FreeBSD
|
||||||
env:
|
env:
|
||||||
TEST_DNS : ${{ secrets.TEST_DNS }}
|
TEST_DNS : ${{ secrets.TEST_DNS }}
|
||||||
@ -265,201 +223,32 @@ jobs:
|
|||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
||||||
CASE: le_test_dnsapi
|
CASE: le_test_dnsapi
|
||||||
TEST_LOCAL: 1
|
TEST_LOCAL: 1
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
DEBUG: 1
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- name: Clone acmetest
|
- name: Clone acmetest
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
||||||
- uses: vmactions/openbsd-vm@v0
|
- uses: vmactions/solaris-vm@v0.0.5
|
||||||
with:
|
with:
|
||||||
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG http_proxy https_proxy TokenName1 TokenName2 TokenName3 TokenName4 TokenName5 ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
||||||
prepare: pkg_add socat curl
|
|
||||||
usesh: true
|
|
||||||
copyback: false
|
|
||||||
run: |
|
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
|
||||||
fi
|
|
||||||
cd ../acmetest
|
|
||||||
./letest.sh
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NetBSD:
|
|
||||||
runs-on: macos-12
|
|
||||||
needs: OpenBSD
|
|
||||||
env:
|
|
||||||
TEST_DNS : ${{ secrets.TEST_DNS }}
|
|
||||||
TestingDomain: ${{ secrets.TestingDomain }}
|
|
||||||
TEST_DNS_NO_WILDCARD: ${{ secrets.TEST_DNS_NO_WILDCARD }}
|
|
||||||
TEST_DNS_NO_SUBDOMAIN: ${{ secrets.TEST_DNS_NO_SUBDOMAIN }}
|
|
||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
|
||||||
CASE: le_test_dnsapi
|
|
||||||
TEST_LOCAL: 1
|
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Clone acmetest
|
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
||||||
- uses: vmactions/netbsd-vm@v0
|
|
||||||
with:
|
|
||||||
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG http_proxy https_proxy TokenName1 TokenName2 TokenName3 TokenName4 TokenName5 ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
|
||||||
prepare: |
|
|
||||||
pkg_add curl socat
|
|
||||||
usesh: true
|
|
||||||
copyback: false
|
|
||||||
run: |
|
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
|
||||||
fi
|
|
||||||
cd ../acmetest
|
|
||||||
./letest.sh
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DragonFlyBSD:
|
|
||||||
runs-on: macos-12
|
|
||||||
needs: NetBSD
|
|
||||||
env:
|
|
||||||
TEST_DNS : ${{ secrets.TEST_DNS }}
|
|
||||||
TestingDomain: ${{ secrets.TestingDomain }}
|
|
||||||
TEST_DNS_NO_WILDCARD: ${{ secrets.TEST_DNS_NO_WILDCARD }}
|
|
||||||
TEST_DNS_NO_SUBDOMAIN: ${{ secrets.TEST_DNS_NO_SUBDOMAIN }}
|
|
||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
|
||||||
CASE: le_test_dnsapi
|
|
||||||
TEST_LOCAL: 1
|
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Clone acmetest
|
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
||||||
- uses: vmactions/dragonflybsd-vm@v0
|
|
||||||
with:
|
|
||||||
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG http_proxy https_proxy TokenName1 TokenName2 TokenName3 TokenName4 TokenName5 ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
|
||||||
prepare: |
|
|
||||||
pkg install -y curl socat
|
|
||||||
usesh: true
|
|
||||||
copyback: false
|
|
||||||
run: |
|
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
|
||||||
fi
|
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
|
||||||
fi
|
|
||||||
cd ../acmetest
|
|
||||||
./letest.sh
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Solaris:
|
|
||||||
runs-on: macos-12
|
|
||||||
needs: DragonFlyBSD
|
|
||||||
env:
|
|
||||||
TEST_DNS : ${{ secrets.TEST_DNS }}
|
|
||||||
TestingDomain: ${{ secrets.TestingDomain }}
|
|
||||||
TEST_DNS_NO_WILDCARD: ${{ secrets.TEST_DNS_NO_WILDCARD }}
|
|
||||||
TEST_DNS_NO_SUBDOMAIN: ${{ secrets.TEST_DNS_NO_SUBDOMAIN }}
|
|
||||||
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
|
|
||||||
CASE: le_test_dnsapi
|
|
||||||
TEST_LOCAL: 1
|
|
||||||
DEBUG: ${{ secrets.DEBUG }}
|
|
||||||
http_proxy: ${{ secrets.http_proxy }}
|
|
||||||
https_proxy: ${{ secrets.https_proxy }}
|
|
||||||
HTTPS_INSECURE: 1 # always set to 1 to ignore https error, since Solaris doesn't accept the expired ISRG X1 root
|
|
||||||
TokenName1: ${{ secrets.TokenName1}}
|
|
||||||
TokenName2: ${{ secrets.TokenName2}}
|
|
||||||
TokenName3: ${{ secrets.TokenName3}}
|
|
||||||
TokenName4: ${{ secrets.TokenName4}}
|
|
||||||
TokenName5: ${{ secrets.TokenName5}}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Clone acmetest
|
|
||||||
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
||||||
- uses: vmactions/solaris-vm@v0
|
|
||||||
with:
|
|
||||||
envs: 'TEST_DNS TestingDomain TEST_DNS_NO_WILDCARD TEST_DNS_NO_SUBDOMAIN TEST_DNS_SLEEP CASE TEST_LOCAL DEBUG http_proxy https_proxy HTTPS_INSECURE TokenName1 TokenName2 TokenName3 TokenName4 TokenName5 ${{ secrets.TokenName1}} ${{ secrets.TokenName2}} ${{ secrets.TokenName3}} ${{ secrets.TokenName4}} ${{ secrets.TokenName5}}'
|
|
||||||
copyback: false
|
|
||||||
prepare: pkgutil -y -i socat
|
prepare: pkgutil -y -i socat
|
||||||
run: |
|
run: |
|
||||||
pkg set-mediator -v -I default@1.1 openssl
|
pkg set-mediator -v -I default@1.1 openssl
|
||||||
export PATH=/usr/gnu/bin:$PATH
|
export PATH=/usr/gnu/bin:$PATH
|
||||||
if [ "${{ secrets.TokenName1}}" ] ; then
|
if [ "${{ secrets.TokenName1}}" ] ; then
|
||||||
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
|
export ${{ secrets.TokenName1}}=${{ secrets.TokenValue1}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName2}}" ] ; then
|
if [ "${{ secrets.TokenName2}}" ] ; then
|
||||||
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
|
export ${{ secrets.TokenName2}}=${{ secrets.TokenValue2}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName3}}" ] ; then
|
if [ "${{ secrets.TokenName3}}" ] ; then
|
||||||
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
|
export ${{ secrets.TokenName3}}=${{ secrets.TokenValue3}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName4}}" ] ; then
|
if [ "${{ secrets.TokenName4}}" ] ; then
|
||||||
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
|
export ${{ secrets.TokenName4}}=${{ secrets.TokenValue4}}
|
||||||
fi
|
fi
|
||||||
if [ "${{ secrets.TokenName5}}" ] ; then
|
if [ "${{ secrets.TokenName5}}" ] ; then
|
||||||
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
|
export ${{ secrets.TokenName5}}=${{ secrets.TokenValue5}}
|
||||||
fi
|
fi
|
||||||
cd ../acmetest
|
cd ../acmetest
|
||||||
./letest.sh
|
./letest.sh
|
||||||
|
|
||||||
|
|
||||||
|
118
dnsapi/dns_technitium.sh
Normal file
118
dnsapi/dns_technitium.sh
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
#
|
||||||
|
# acme.sh DNS API plugin for Technitium DNS Server <https://technitium.com/dns/>
|
||||||
|
#
|
||||||
|
# Requires the following environment variables to be configured:
|
||||||
|
#
|
||||||
|
# DNS_WEB_URL:
|
||||||
|
# - the URL for the Technitium DNS web service dashboard, including protocol
|
||||||
|
# and port, e.g. https://dns-server.example.com:53443
|
||||||
|
#
|
||||||
|
# DNS_API_TOKEN:
|
||||||
|
# - An API token can be created interactively in the DNS web service dashboard
|
||||||
|
# or progamatically using the CreateApiToken API endpoint as documented here:
|
||||||
|
# https://github.com/TechnitiumSoftware/DnsServer/blob/master/APIDOCS.md#create-api-token
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
dns_technitium_add() {
|
||||||
|
_fqdn="$1"
|
||||||
|
_text="$2"
|
||||||
|
|
||||||
|
if ! _check_dns_web_url_and_api_token; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! _get_zone "$_fqdn"; then
|
||||||
|
_err "Error: could not find zone for $_fqdn in Technitium DNS"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
_add_record_url="${DNS_WEB_URL}/api/zones/records/add?token=${DNS_API_TOKEN}&domain=${_fqdn}&zone=${_zone}&type=TXT&ttl=300&text=${_text}"
|
||||||
|
_response=$(_get "$_add_record_url" | _normalizeJson)
|
||||||
|
|
||||||
|
if _contains "$_response" "\"status\":\"ok\""; then
|
||||||
|
_info "Success: added DNS TXT record for ${_fqdn}"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
_err "Error: failed to add DNS TXT record for ${_fqdn}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
dns_technitium_rm() {
|
||||||
|
_fqdn="$1"
|
||||||
|
_text="$2"
|
||||||
|
|
||||||
|
if ! _check_dns_web_url_and_api_token; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! _get_zone "$_fqdn"; then
|
||||||
|
_err "Error: could not find zone for $_fqdn in Techitium DNS"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
_remove_record_url="${DNS_WEB_URL}/api/zones/records/delete?token=${DNS_API_TOKEN}&domain=${_fqdn}&zone=${_zone}&type=TXT&text=${_text}"
|
||||||
|
_response=$(_get "$_remove_record_url" | _normalizeJson)
|
||||||
|
|
||||||
|
if _contains "$_response" "\"status\":\"ok\""; then
|
||||||
|
_info "Success: removed DNS TXT record for ${_fqdn}"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
_err "Error: failed to remove DNS TXT record for ${_fqdn}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_get_zone() {
|
||||||
|
domain=$1
|
||||||
|
i=1
|
||||||
|
|
||||||
|
_list_zones_url="${DNS_WEB_URL}/api/zones/list?token=${DNS_API_TOKEN}"
|
||||||
|
_all_zones=$(_get "$_list_zones_url" | _normalizeJson)
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
|
||||||
|
h=$(printf "%s" "$domain" | cut -d . -f "$i-100")
|
||||||
|
_debug h "$h"
|
||||||
|
if [ -z "$h" ]; then
|
||||||
|
# not valid
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if _contains "$_all_zones" "\"name\":\"$h\""; then
|
||||||
|
_zone=$h
|
||||||
|
_debug _zone "$_zone"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
i=$(_math "$i" + 1)
|
||||||
|
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_check_dns_web_url_and_api_token() {
|
||||||
|
|
||||||
|
DNS_WEB_URL="${DNS_WEB_URL:-$(_readaccountconf_mutable DNS_WEB_URL)}"
|
||||||
|
DNS_API_TOKEN="${DNS_API_TOKEN:-$(_readaccountconf_mutable DNS_API_TOKEN)}"
|
||||||
|
|
||||||
|
if [ -z "$DNS_WEB_URL" ]; then
|
||||||
|
_err "Error: DNS API web interface URL not provided"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DNS_API_TOKEN" ]; then
|
||||||
|
_err "Error: DNS API token not provided"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# store the DNS Server API URL and long-lived token to the account conf file.
|
||||||
|
_saveaccountconf_mutable DNS_WEB_URL "$DNS_WEB_URL"
|
||||||
|
_saveaccountconf_mutable DNS_API_TOKEN "$DNS_API_TOKEN"
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user