On Wed, 30 Jan 2019 10:08:30 +0100
Sebastian Benoit <[email protected]> wrote:
> http://feuf.eu/.well-known/acme-challenge/
> reports a 404 not found. I would expect a 403 Permission Denied there
> if you have DirectoryIndex turned off.
>
> Also feuf.eu claims it is "Apache/2.4.10 (Debian) Server at feuf.eu
> Port 80". How does your setup look like? What does the log of that
> Apache Server show?
>
> Is acme-client really writing the challenge into the correct dir?
> Is a NFS share involved?
>
> /Benno

Ah, sorry, my failure. feuf.eu no longer points to my server.
However, I removed account and domain key of a domain I actually control t=
o reproduce:
# /usr/sbin/acme-client -AD -vv git.dl6tom.de
acme-client: /etc/acme/letsencrypt-privkey.pem: generated RSA account key
acme-client: /etc/ssl/private/git.dl6tom.de.key: generated RSA domain key
acme-client: https://acme-v01.api.letsencrypt.org/directory: directories
acme-client: acme-v01.api.letsencrypt.org: DNS: 104.111.246.175
acme-client: transfer buffer: [{ "YIdc87IVfIg": "https://community.letsenc=
rypt.org/t/adding-random-entries-to-the-directory/33417", "key-change": "h=
ttps://acme-v01.api.letsencrypt.org/acme/key-change", "meta": { "caaIdenti=
ti
es": [ "letsencrypt.org" ], "terms-of-service": "https://letsencrypt.org/d=
ocuments/LE-SA-v1.2-November-15-2017.pdf", "website": "https://letsencrypt=
.org" }, "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz=
",
 "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert";, "new-re=
g": "https://acme-v01.api.letsencrypt.org/acme/new-reg";, "revoke-cert": "h=
ttps://acme-v01.api.letsencrypt.org/acme/revoke-cert" }] (658 bytes)
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-reg: new-reg
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [{ "id": 50553897, "key": { "kty": "RSA", "n=
": "zciLVEpq5dhhvGX6r1IocvGioS5i0Kaga-QMGwwR0MzcxScNgNJW8Qz4eTjiB50gkfYi7N=
ne3Wmfudmk-xKersV1RnWRPd5vaQtoZOdCAIPwHIgySgwrK2li5UDEuPvfBlGKr0kM_f8LP_Ti=
KY
Zt2-kgLWeTqwj_eyrVnwzamiHYoffpvBcyrdp4bnXsS9RTJLzYpPu8uYykKwwFon1OylC0H_tV=
E0ipOmW77nw6I3d1VJo9vKOWHtcCFG1ANk_SHtCB16bsuHaAdGllsu3XV4Usjga80k36J-UaUz=
_J4x_OyqZtaFZD3S2_oLrmqs_251hE6GN-UZGF-JIn-QGrkdr5JsB6fRlyO6r0Emy0seqrUpgf=
rX
tvbC1Vh5NJ_5CXfBPv-Gqr24trUXkGM72oNdugWvKd2KKI0qVdA3WQsBd56Sig6pjR53ERLcr6=
c8sMeB2ihNX-m2j1AVmgtqzzAyzlamkLx8VUX4DxLr16ePsTHXeOCx1x7BCyEa9dqGs3CV1Mem=
BOHU6K8do58dbHRwMhZ9g1cqMw9H-ahbqIQeJddtZMwZKhzRXhTT026gmnweaGlY4KAAciV_UN=
hX
vXA5KWOl4npQmRjFRZ7d5O28CD1fIE5PSh4I9rDamvxx7TeJlprxhWrPgZpBaQLHHebR9oIUuJ=
STjIDmO0QUlTszU", "e": "AQAB" }, "contact": [], "agreement": "https://lets=
encrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf", "initialIp": "88.9=
9.
190.88", "createdAt": "2019-01-30T19:07:03.979206299Z", "status": "valid" =
}] (968 bytes)
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-authz: req-auth=
: git.dl6tom.de
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [{ "identifier": { "type": "dns", "value": "=
git.dl6tom.de" }, "status": "pending", "expires": "2019-02-06T19:07:04Z", =
"challenges": [ { "type": "tls-alpn-01", "status": "pending", "uri": "http=
s:
//acme-v01.api.letsencrypt.org/acme/challenge/RPrDl_yEEcwfO9h81Ds73VO_KY3T=
0YGpaOE-o3P88Lg/12061394976", "token": "GIEFsxcTDwuCyH-11E_uDvcGCo-nMY5NFa=
240Ts61VM" }, { "type": "http-01", "status": "pending", "uri": "https://ac=
me
-v01.api.letsencrypt.org/acme/challenge/RPrDl_yEEcwfO9h81Ds73VO_KY3T0YGpaO=
E-o3P88Lg/12061394978", "token": "ssbrru-U9JHaV3JjUN4bgf53nZcCV7pHC7UVmBsI=
VBo" }, { "type": "dns-01", "status": "pending", "uri": "https://acme-v01.=
ap
i.letsencrypt.org/acme/challenge/RPrDl_yEEcwfO9h81Ds73VO_KY3T0YGpaOE-o3P88=
Lg/12061394979", "token": "y8AwuKyt58Drb3QkwTk7lbTPCNPAaMkTIF1gfeFAU90" } =
], "combinations": [ [ 0 ], [ 1 ], [ 2 ] ] }] (995 bytes)
acme-client: /var/www/acme/ssbrru-U9JHaV3JjUN4bgf53nZcCV7pHC7UVmBsIVBo: cr=
eated
acme-client: https://acme-v01.api.letsencrypt.org/acme/challenge/RPrDl_yEE=
cwfO9h81Ds73VO_KY3T0YGpaOE-o3P88Lg/12061394978: challenge
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [{ "type": "http-01", "status": "pending", "=
uri": "https://acme-v01.api.letsencrypt.org/acme/challenge/RPrDl_yEEcwfO9h=
81Ds73VO_KY3T0YGpaOE-o3P88Lg/12061394978", "token": "ssbrru-U9JHaV3JjUN4bg=
f5
3nZcCV7pHC7UVmBsIVBo", "keyAuthorization": "ssbrru-U9JHaV3JjUN4bgf53nZcCV7=
pHC7UVmBsIVBo.o3Ws_wJ8W2-_phVmKFKOd8gvouWSmIj7luYaMGzJYKg" }] (337 bytes)
acme-client: https://acme-v01.api.letsencrypt.org/acme/challenge/RPrDl_yEE=
cwfO9h81Ds73VO_KY3T0YGpaOE-o3P88Lg/12061394978: status
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-cert: certifica=
te
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-cert: bad HTTP:=
 403
acme-client: transfer buffer: [{ "type": "urn:acme:error:unauthorized", "d=
etail": "Error creating new cert :: authorizations for these names not fou=
nd or expired: git.dl6tom.de", "status": 403 }] (169 bytes)
acme-client: bad exit: netproc(60953): 1

The line ending in ": status" is from dochngcheck in netproc.c. Since the =
dump of the transfer buffer before shows "status": "pending" it should wai=
t and loop, but doesn't. With the patch below it works:
# /usr/sbin/acme-client -AD -vv git.dl6tom.de
acme-client: /etc/acme/letsencrypt-privkey.pem: generated RSA account key
acme-client: /etc/ssl/private/git.dl6tom.de.key: generated RSA domain key
acme-client: https://acme-v01.api.letsencrypt.org/directory: directories
acme-client: acme-v01.api.letsencrypt.org: DNS: 104.86.56.76
acme-client: transfer buffer: [{ "DhoYhCNn9jA": "https://community.letsenc=
rypt.org/t/adding-random-entries-to-the-directory/33417", "key-change": "h=
ttps://acme-v01.api.letsencrypt.org/acme/key-change", "meta": { "caaIdenti=
ti
es": [ "letsencrypt.org" ], "terms-of-service": "https://letsencrypt.org/d=
ocuments/LE-SA-v1.2-November-15-2017.pdf", "website": "https://letsencrypt=
.org" }, "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz=
",
 "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert";, "new-re=
g": "https://acme-v01.api.letsencrypt.org/acme/new-reg";, "revoke-cert": "h=
ttps://acme-v01.api.letsencrypt.org/acme/revoke-cert" }] (658 bytes)
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-reg: new-reg
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [{ "id": 50555563, "key": { "kty": "RSA", "n=
": "wBJ3zfJEHrJ4Di4PUzmfzmEW8J6oaK90oNXn0hXKnyQ7X1gx_rbq7aUpm2hxqyCOTzfZrP=
9wfsgINWlJwtm6HhInuO2XHGPkgQP-KVi4yL3CX989v8o3PbdmsXrQNLb9HR5Cx1Z55cE8kesG=
XV
ZA9of6IP9ZOv-FDBg4cYV40yKNl9xPWT4-tpe-WW2iqLYI9a_DUL_Np7_bCs6ZjU7oxLqeWOgh=
nwxJVXVZ9VMe6LKyv3s3pAyTbTMIaNzn8dncxUK-qJrbVG6W2VENmF0JaaF8kxxJrJkaNbaSAW=
cV79Qd0igic-YMba3Fvu0T0XKtoO15v5KehZn1oPcwJSttgOD6nAAoORAd5j_lldD4WGg8GKr7=
EU
3gXk6pM8t1YKCAs91GxXYSQ_07OSGV5MNY0OLIg31vt0Z8oYwrWV1T1TPcJHNlKyZvDQxCuKQA=
xBbkhX7Y-dRH96EPI9rXxNfcnGzgJM9DkJM9dLlsHyCntt6ZEBTUmy_5f1_tOa_A9wFcfo7vGO=
wfmox5KJZSsDzKKV8VaGN51UZcvCOvSqQn4o1NRALWkKGbvYEtiE6E5zrVbNoSc_YDRRj9kTXx=
1P
LPHx3C5p9YCgTL2KSuS9dokdesixd415IxoNQg6Xb79wgDLoP3_hYT24I8U25kM0h1OQwki9xG=
yhzKL_zQcoVjrDc", "e": "AQAB" }, "contact": [], "agreement": "https://lets=
encrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf", "initialIp": "88.9=
9.
190.88", "createdAt": "2019-01-30T19:40:36.912066432Z", "status": "valid" =
}] (968 bytes)
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-authz: req-auth=
: git.dl6tom.de
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [{ "identifier": { "type": "dns", "value": "=
git.dl6tom.de" }, "status": "pending", "expires": "2019-02-06T19:40:37Z", =
"challenges": [ { "type": "http-01", "status": "pending", "uri": "https://=
ac
me-v01.api.letsencrypt.org/acme/challenge/IIaO4MKgcyXYlnOSX_Dm3L7uMmNJZ1hP=
nbMjsnsn-tg/12062194525", "token": "4BI7woLNoup99HAhDVZkqzTTEZRcX2ndqh8Mzc=
ndFXk" }, { "type": "dns-01", "status": "pending", "uri": "https://acme-v0=
1.
api.letsencrypt.org/acme/challenge/IIaO4MKgcyXYlnOSX_Dm3L7uMmNJZ1hPnbMjsns=
n-tg/12062194526", "token": "t5vXWDb_oZDWYR-EpfFkdwrT0Iwf0qFoaeAbcsG0IRc" =
}, { "type": "tls-alpn-01", "status": "pending", "uri": "https://acme-v01.=
ap
i.letsencrypt.org/acme/challenge/IIaO4MKgcyXYlnOSX_Dm3L7uMmNJZ1hPnbMjsnsn-=
tg/12062194527", "token": "OsLgX7m8cmXmVVEMWIOjMlkqA0mERjZ4NLo4GXIFKQQ" } =
], "combinations": [ [ 1 ], [ 0 ], [ 2 ] ] }] (995 bytes)
acme-client: /var/www/acme/4BI7woLNoup99HAhDVZkqzTTEZRcX2ndqh8MzcndFXk: cr=
eated
acme-client: https://acme-v01.api.letsencrypt.org/acme/challenge/IIaO4MKgc=
yXYlnOSX_Dm3L7uMmNJZ1hPnbMjsnsn-tg/12062194525: challenge
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [{ "type": "http-01", "status": "pending", "=
uri": "https://acme-v01.api.letsencrypt.org/acme/challenge/IIaO4MKgcyXYlnO=
SX_Dm3L7uMmNJZ1hPnbMjsnsn-tg/12062194525", "token": "4BI7woLNoup99HAhDVZkq=
zT
TEZRcX2ndqh8MzcndFXk", "keyAuthorization": "4BI7woLNoup99HAhDVZkqzTTEZRcX2=
ndqh8MzcndFXk.yKtkztq1yFjFghUeQoJNzj_rG9tuTtshWl3UWy8nbJQ" }] (337 bytes)
acme-client: https://acme-v01.api.letsencrypt.org/acme/challenge/IIaO4MKgc=
yXYlnOSX_Dm3L7uMmNJZ1hPnbMjsnsn-tg/12062194525: status
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: https://acme-v01.api.letsencrypt.org/acme/challenge/IIaO4MKgc=
yXYlnOSX_Dm3L7uMmNJZ1hPnbMjsnsn-tg/12062194525: status
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: https://acme-v01.api.letsencrypt.org/acme/challenge/IIaO4MKgc=
yXYlnOSX_Dm3L7uMmNJZ1hPnbMjsnsn-tg/12062194525: status
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: https://acme-v01.api.letsencrypt.org/acme/new-cert: certifica=
te
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: acme-v01.api.letsencrypt.org: cached
acme-client: transfer buffer: [0??Q0??9????????m??ER????w?'?8???0 ? *?H?? =
?? ??0J1 0 ??U????US1?0???U? ? Let's Encrypt1#0!??U????Let's Encrypt Autho=
rity X30?? 190130184054Z? 190430184054Z0?1?0???U??? git.dl6tom.de0??"0 ? *=
?H?? ??????????0?? ?????????C?j??f???[??si???????X??XA?\?? ?P?????%Z?????L=
*?q??s\???e??g???????p?{??K?????<*??.?g>|#.??????#0?$/]???3kQcv?In??1?????=
? ????????nJ?_???;??2?W?????!???????M6n????Ca? .i?? Ft???k?M?y ??t??x??] ?=
4?g~^;???b??? ????EBq?|*??#??h=3D????.?]s???BkD?n????^?{??/??0??n5??????>E=
r<X???W?4 ?J??;????? ??,; b?Y??}??m??????y?S?????=3DOVJ?e???]'??????M?????=
??n*???O?????????2[?<??Q]?0Q??M?{5Fz ?9?????`!??Vh?c???"???lB??????????~rn=
J??L?*?a??![4???q?#???]}?nF/R?%?r??t~%?7([???5?'&??3#l????)???u???3?&???wl=
J??????uF9???[???5?j??????????a0??]0???U???????????0???U?%??0???+?????????=
+???????0 ??U???????0?0???U????????Y ?\?%?"9???}?4???0???U?#??0????Jjc?}??=
??9??Ee?????0o??+????????c0a0.??+?????0??"http://ocsp.int-x3.letsencrypt.o=
rg0/??+?????0??#http://cert.int-x3.letsencrypt.org/0???U????0?? git.dl6tom=
.de0L??U? ?E0C0???g? ???07? +??????????0(0&??+?????????http://cps.letsencr=
ypt.org0???? +?????y????????????v??iK?&??@ ????;??>??t????(??????????h?GO?=
?????G0E?!???x?u7? h? z?+???G{4??3?s??Qd?S?? Q*?7?????fAp???????<???i??{?-=
+?d?u?c????;?,? r?'Wk3??aw??u?8??hTK?????h?GR%?????F0D? v??/????????????+]=
????????7???!??
!???)??;?z???;??3?f}Q????O????<?0 ? *?H?? ?? ???????d_>L' ?2?a~Y???,??9?#?=
"?????*?>?+}?J ?`????????+??~~?S{c_??'??j7?q?L?%??e??X?.??dbB\1d/????Zd???=
????tg ???? (??8???h4???Q??1VS?Y1?mNA[<?/_??&=3D??v?pQ|?x???W ???n???}?@d?=
??:?6??U?????`?????t1?f??\3?N???[B??'?:Y???ju??????-? ????????`???~a?7?? ?=
?WL?u??jh????a] (1621 bytes)
acme-client: http://cert.int-x3.letsencrypt.org/: full chain
acme-client: cert.int-x3.letsencrypt.org: DNS: 104.86.32.126
acme-client: transfer buffer: [0???0??z??????? ?AB???S?sj ????0 ? *?H?? ??=
 ??0?1$0"??U? ??Digital Signature Trust Co.1?0???U????DST Root CA X30?? 16=
0317164046Z? 210317164046Z0J1 0 ??U????US1?0???U? ? Let's Encrypt1#0!??U??=
??Let's Encrypt Authority X30??"0 ? *?H?? ??????????0?? ??????? ?Z?.G?r]7?=
?hc0??5&?%???5?p?/??KA????5?X??*?h? ??u????bq?y?`???????xgq?i????????`<H?~=
?Mw?$?G?Z????7????{????J??A?6????m<?h?#*B? ?tg?????Ra???e???????V?????????=
????k ??}?+?e???6u?k?J???Ix/??O* %)??t??1??18????3?C????0??y1?=3D-6????3j?=
91???? ?d?3???)?? ??}??????????}0??y0???U???????0???????0???U???????????0?=
??+????????s0q02??+?????0??&http://isrg.trustid.ocsp.identrust.com0;??+???=
??0??/http://apps.identrust.com/roots/dstrootcax3.p7c0???U?#??0???????{,q?=
??K?u???`???0T??U? ?M0K0???g? ???0?? +??????????000.??+????????"http://cps=
.root-x1.letsencrypt.org0<??U???50301?/?-?+http://crl.identrust.com/DSTROO=
TCAX3CRL.crl0???U???????Jjc?}????9??Ee?????0 ? *?H?? ?? ????????3???cX8???=
? U?vV?pH?iG'{?$???Z?J?)7$tQ?bh???pg????N(Q?????????Z??????j?j?>W#????b???=
?????? H????eb??T??*? ?????????2???w??ye?+?(?:?R??R ._????3?wl?@?2???\A?tl=
[] _3?M??8?/{,b????o%?/???F=3D?~??z???zm??%???????/X??/,h&?K???? ????CJ?DN=
osz(???n{L}?????D????4[?B] (1174 bytes)
acme-client: /etc/ssl/git.dl6tom.de.crt: created
acme-client: /etc/ssl/git.dl6tom.de.fullchain.pem: created

diff --git netproc.c netproc.c
index e5845401862..12a1a1bb81a 100644
=2D-- netproc.c
+++ netproc.c
@@ -759,19 +759,26 @@ netproc(int kfd, int afd, int Cfd, int cfd, int dfd,=
 int rfd,
         * every five seconds.
         */

-       for (i =3D 0; i < altsz; i++) {
-               if (chngs[i].status =3D=3D 1)
-                       continue;
+       for (;;) {
+               for (i =3D 0; i < altsz; i++) {
+                       if (chngs[i].status =3D=3D 1)
+                               continue;

-               if (chngs[i].retry++ >=3D RETRY_MAX) {
-                       warnx("%s: too many tries", chngs[i].uri);
-                       goto out;
-               }
+                       if (chngs[i].retry++ >=3D RETRY_MAX) {
+                               warnx("%s: too many tries", chngs[i].uri);
+                               goto out;
+                       }

-               /* Sleep before every attempt. */
-               sleep(RETRY_DELAY);
-               if (!dochngcheck(&c, &chngs[i]))
-                       goto out;
+                       /* Sleep before every attempt. */
+                       sleep(RETRY_DELAY);
+                       if (!dochngcheck(&c, &chngs[i]))
+                               goto out;
+               }
+               for (i =3D 0; i < altsz; i++)
+                       if (chngs[i].status < 1)
+                               break;
+               if (i =3D=3D altsz)
+                       break;
        }

        /*

Reply via email to