Skip to content

Commit 3c848ad

Browse files
authored
Merge pull request #7008 from acmesh-official/dev
sync
2 parents f265c30 + 2e4e5d7 commit 3c848ad

9 files changed

Lines changed: 541 additions & 295 deletions

File tree

.github/workflows/DNS.yml

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,9 +661,65 @@ jobs:
661661
662662
663663
664-
Haiku:
664+
Tribblix:
665665
runs-on: ubuntu-latest
666666
needs: OpenIndiana
667+
env:
668+
TEST_DNS : ${{ secrets.TEST_DNS }}
669+
TestingDomain: ${{ secrets.TestingDomain }}
670+
TEST_DNS_NO_WILDCARD: ${{ secrets.TEST_DNS_NO_WILDCARD }}
671+
TEST_DNS_NO_SUBDOMAIN: ${{ secrets.TEST_DNS_NO_SUBDOMAIN }}
672+
TEST_DNS_SLEEP: ${{ secrets.TEST_DNS_SLEEP }}
673+
CASE: le_test_dnsapi
674+
TEST_LOCAL: 1
675+
DEBUG: ${{ secrets.DEBUG }}
676+
http_proxy: ${{ secrets.http_proxy }}
677+
https_proxy: ${{ secrets.https_proxy }}
678+
HTTPS_INSECURE: 1 # always set to 1 to ignore https error, since Tribblix doesn't accept the expired ISRG X1 root
679+
TokenName1: ${{ secrets.TokenName1}}
680+
TokenName2: ${{ secrets.TokenName2}}
681+
TokenName3: ${{ secrets.TokenName3}}
682+
TokenName4: ${{ secrets.TokenName4}}
683+
TokenName5: ${{ secrets.TokenName5}}
684+
steps:
685+
- uses: actions/checkout@v6
686+
- name: Clone acmetest
687+
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
688+
- uses: vmactions/tribblix-vm@v1
689+
with:
690+
debug-on-error: ${{ vars.DEBUG_ON_ERROR }}
691+
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}}'
692+
sync: nfs
693+
prepare: zap install socat
694+
run: |
695+
if [ "${{ secrets.TokenName1}}" ] ; then
696+
export ${{ secrets.TokenName1}}="${{ secrets.TokenValue1}}"
697+
fi
698+
if [ "${{ secrets.TokenName2}}" ] ; then
699+
export ${{ secrets.TokenName2}}="${{ secrets.TokenValue2}}"
700+
fi
701+
if [ "${{ secrets.TokenName3}}" ] ; then
702+
export ${{ secrets.TokenName3}}="${{ secrets.TokenValue3}}"
703+
fi
704+
if [ "${{ secrets.TokenName4}}" ] ; then
705+
export ${{ secrets.TokenName4}}="${{ secrets.TokenValue4}}"
706+
fi
707+
if [ "${{ secrets.TokenName5}}" ] ; then
708+
export ${{ secrets.TokenName5}}="${{ secrets.TokenValue5}}"
709+
fi
710+
cd ../acmetest
711+
./letest.sh
712+
- name: DebugOnError
713+
if: ${{ failure() }}
714+
run: |
715+
echo "See how to debug in VM:"
716+
echo "https://github.com/acmesh-official/acme.sh/wiki/debug-in-VM"
717+
718+
719+
720+
Haiku:
721+
runs-on: ubuntu-latest
722+
needs: Tribblix
667723
env:
668724
TEST_DNS : ${{ secrets.TEST_DNS }}
669725
TestingDomain: ${{ secrets.TestingDomain }}

.github/workflows/Tribblix.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Tribblix
2+
on:
3+
push:
4+
branches:
5+
- '*'
6+
paths:
7+
- '*.sh'
8+
- '.github/workflows/Tribblix.yml'
9+
10+
pull_request:
11+
branches:
12+
- dev
13+
paths:
14+
- '*.sh'
15+
- '.github/workflows/Tribblix.yml'
16+
17+
concurrency:
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: true
20+
21+
22+
23+
jobs:
24+
Tribblix:
25+
strategy:
26+
matrix:
27+
include:
28+
- TEST_ACME_Server: "LetsEncrypt.org_test"
29+
CA_ECDSA: ""
30+
CA: ""
31+
CA_EMAIL: ""
32+
TEST_PREFERRED_CHAIN: (STAGING)
33+
- TEST_ACME_Server: "LetsEncrypt.org_test"
34+
CA_ECDSA: ""
35+
CA: ""
36+
CA_EMAIL: ""
37+
TEST_PREFERRED_CHAIN: (STAGING)
38+
ACME_USE_WGET: 1
39+
#- TEST_ACME_Server: "ZeroSSL.com"
40+
# CA_ECDSA: "ZeroSSL ECC DV SSL CA 2"
41+
# CA: "ZeroSSL RSA DV SSL CA 2"
42+
# CA_EMAIL: "githubtest@acme.sh"
43+
# TEST_PREFERRED_CHAIN: ""
44+
runs-on: ubuntu-latest
45+
env:
46+
TEST_LOCAL: 1
47+
TEST_ACME_Server: ${{ matrix.TEST_ACME_Server }}
48+
CA_ECDSA: ${{ matrix.CA_ECDSA }}
49+
CA: ${{ matrix.CA }}
50+
CA_EMAIL: ${{ matrix.CA_EMAIL }}
51+
TEST_PREFERRED_CHAIN: ${{ matrix.TEST_PREFERRED_CHAIN }}
52+
ACME_USE_WGET: ${{ matrix.ACME_USE_WGET }}
53+
steps:
54+
- uses: actions/checkout@v6
55+
- uses: anyvm-org/cf-tunnel@v0
56+
id: tunnel
57+
with:
58+
protocol: http
59+
port: 8080
60+
- name: Set envs
61+
run: echo "TestingDomain=${{steps.tunnel.outputs.server}}" >> $GITHUB_ENV
62+
- name: Clone acmetest
63+
run: cd .. && git clone --depth=1 https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
64+
- uses: vmactions/tribblix-vm@v1
65+
with:
66+
debug-on-error: ${{ vars.DEBUG_ON_ERROR }}
67+
envs: 'TEST_LOCAL TestingDomain TEST_ACME_Server CA_ECDSA CA CA_EMAIL TEST_PREFERRED_CHAIN ACME_USE_WGET'
68+
nat: |
69+
"8080": "80"
70+
prepare: zap install socat curl wget
71+
sync: nfs
72+
run: |
73+
cd ../acmetest \
74+
&& ./letest.sh
75+
- name: DebugOnError
76+
if: ${{ failure() }}
77+
run: |
78+
echo "See how to debug in VM:"
79+
echo "https://github.com/acmesh-official/acme.sh/wiki/debug-in-VM"

.github/workflows/dockerhub.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ jobs:
4141
runs-on: ubuntu-latest
4242
needs: CheckToken
4343
if: "contains(needs.CheckToken.outputs.hasToken, 'true')"
44+
permissions:
45+
contents: read
46+
packages: write
4447
steps:
4548
- name: checkout code
4649
uses: actions/checkout@v6
@@ -58,6 +61,9 @@ jobs:
5861
- name: login to docker hub
5962
run: |
6063
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
64+
- name: login to ghcr
65+
run: |
66+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
6167
- name: build and push the image
6268
run: |
6369
if [[ $GITHUB_REF == refs/tags/* ]]; then
@@ -73,6 +79,8 @@ jobs:
7379
fi
7480
fi
7581
82+
echo "DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG}" >>"$GITHUB_ENV"
83+
7684
DOCKER_LABELS=()
7785
while read -r label; do
7886
DOCKER_LABELS+=(--label "${label}")
@@ -84,3 +92,9 @@ jobs:
8492
--output "type=image,push=true" \
8593
--build-arg AUTO_UPGRADE=${AUTO_UPGRADE} \
8694
--platform linux/arm64/v8,linux/amd64,linux/arm/v6,linux/arm/v7,linux/386,linux/ppc64le,linux/s390x .
95+
- name: mirror the image to ghcr (best-effort)
96+
run: |
97+
docker buildx imagetools create \
98+
--tag ghcr.io/${{ github.repository }}:${DOCKER_IMAGE_TAG} \
99+
${DOCKER_IMAGE}:${DOCKER_IMAGE_TAG} \
100+
|| echo "::warning::GHCR mirror failed; Docker Hub publish unaffected"

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<a href="https://github.com/acmesh-official/acme.sh/actions/workflows/MidnightBSD.yml"><img src="https://github.com/acmesh-official/acme.sh/actions/workflows/MidnightBSD.yml/badge.svg" alt="MidnightBSD"></a>
2020
<a href="https://github.com/acmesh-official/acme.sh/actions/workflows/Omnios.yml"><img src="https://github.com/acmesh-official/acme.sh/actions/workflows/Omnios.yml/badge.svg" alt="Omnios"></a>
2121
<a href="https://github.com/acmesh-official/acme.sh/actions/workflows/OpenIndiana.yml"><img src="https://github.com/acmesh-official/acme.sh/actions/workflows/OpenIndiana.yml/badge.svg" alt="OpenIndiana"></a>
22+
<a href="https://github.com/acmesh-official/acme.sh/actions/workflows/Tribblix.yml"><img src="https://github.com/acmesh-official/acme.sh/actions/workflows/Tribblix.yml/badge.svg" alt="Tribblix"></a>
2223
<a href="https://github.com/acmesh-official/acme.sh/actions/workflows/Haiku.yml"><img src="https://github.com/acmesh-official/acme.sh/actions/workflows/Haiku.yml/badge.svg" alt="Haiku"></a>
2324
</p>
2425

@@ -112,6 +113,7 @@
112113
|23|-----| OpenWRT: Tested and working. See [wiki page](https://github.com/acmesh-official/acme.sh/wiki/How-to-run-on-OpenWRT)
113114
|24|[![](https://acmesh-official.github.io/acmetest/status/proxmox.svg)](https://github.com/acmesh-official/letest#here-are-the-latest-status)| Proxmox: See Proxmox VE Wiki. Version [4.x, 5.0, 5.1](https://pve.proxmox.com/wiki/HTTPS_Certificate_Configuration_(Version_4.x,_5.0_and_5.1)#Let.27s_Encrypt_using_acme.sh), version [5.2 and up](https://pve.proxmox.com/wiki/Certificate_Management)
114115
|25|[![Haiku](https://github.com/acmesh-official/acme.sh/actions/workflows/Haiku.yml/badge.svg)](https://github.com/acmesh-official/acme.sh/actions/workflows/Haiku.yml)|Haiku OS
116+
|26|[![Tribblix](https://github.com/acmesh-official/acme.sh/actions/workflows/Tribblix.yml/badge.svg)](https://github.com/acmesh-official/acme.sh/actions/workflows/Tribblix.yml)|Tribblix
115117

116118

117119
> 🧪 Check our [testing project](https://github.com/acmesh-official/acmetest)

acme.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4895,7 +4895,7 @@ issue() {
48954895
# (Let's Encrypt) may also reject with a malformed error if the prior cert
48964896
# was issued by a different issuer / different CA. Retry without "replaces"
48974897
# whenever the failure mentions ARI or the replaces field.
4898-
if [ "$_replaces_certID" ] && { _contains "$response" "alreadyReplaced" || _contains "$response" "'replaces'" || _contains "$response" "ARI"; }; then
4898+
if [ "$_replaces_certID" ] && { _contains "$response" "alreadyReplaced" || _contains "$response" "urn:ietf:params:acme:error:malformed" || _contains "$response" "'replaces'" || _contains "$response" "ARI"; }; then
48994899
_info "ARI 'replaces' rejected by CA, retrying newOrder without 'replaces'."
49004900
if ! _send_signed_request "$ACME_NEW_ORDER" "$_newOrderObj}"; then
49014901
_err "Error creating new order."
@@ -5785,7 +5785,7 @@ renew() {
57855785
_debug "_renewServer" "$_renewServer"
57865786

57875787
_initpath "$Le_Domain" "$_isEcc"
5788-
5788+
_info "Renew: $Le_Domain"
57895789
_set_level=${NOTIFY_LEVEL:-$NOTIFY_LEVEL_DEFAULT}
57905790
_info "$(__green "Renewing: '$Le_Domain'")"
57915791
if [ ! -f "$DOMAIN_CONF" ]; then
@@ -6865,7 +6865,7 @@ deactivate() {
68656865
#cert
68666866
_getAKI() {
68676867
_cert="$1"
6868-
${ACME_OPENSSL_BIN:-openssl} x509 -in "$_cert" -text -noout | grep "X509v3 Authority Key Identifier" -A 1 | _tail_n 1 | tr -d ': ' | sed "s/keyid//"
6868+
${ACME_OPENSSL_BIN:-openssl} x509 -in "$_cert" -text -noout | grep -A 1 "X509v3 Authority Key Identifier" | _tail_n 1 | tr -d ': ' | sed "s/keyid//"
68696869
}
68706870

68716871
#cert

0 commit comments

Comments
 (0)