Need help figuring out how to query

Hi,
I’m in the process of adding ACME v2 support to an embedded client on an ESP32. If I get through it, I will offer the ACME client as a separate download (more reusable than my full project).

Currently I can query the server directory but then my next request always gets an error. I’d like to know how to address the problem, I don’t see any tools for that.

Kindly point me to a way to figure out what’s wrong.

Danny

^[[0;32mI (4609) Acme: NetworkConnected^[[0m^M^M
^[[0;32mI (4609) Network: MQTT connected^[[0m^M^M
^[[0;32mI (4609) Acme: PerformWebQuery(https://acme-staging-v02.api.letsencrypt.org/directory, POST null, type null)^[[0m^M^M
^[[0;32mI (4669) Acme: PerformWebQuery: client_set_header(User-Agent=EspAlarm ACME client/0.1)^[[0m^M^M
^[[0;32mI (4669) Acme: PerformWebQuery: client_set_header(Content-Type=application/json)^[[0m^M^M
[…]
^[[0;32mI (7759) Acme: QueryAcmeDirectory: parsing JSON {^M^M
“h8NHcNnsPUc”: “Adding random entries to the directory”,^M^M
“keyChange”: “https://acme-staging-v02.api.letsencrypt.org/acme/key-change”,^M^M
“meta”: {^M^M
“caaIdentities”: [^M^M
letsencrypt.org”^M^M
],^M^M
“termsOfService”: “https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf”,^M^M
“website”: “https://letsencrypt.org/docs/staging-environment/”^M^M
},^M^M
“newAccount”: “https://acme-staging-v02.api.letsencrypt.org/acme/new-acct”,^M^M
“newNonce”: “https://acme-staging-v02.api.letsencrypt.org/acme/new-nonce”,^M^M
“newOrder”: “https://acme-staging-v02.api.letsencrypt.org/acme/new-order”,^M^M
“revokeCert”: “https://acme-staging-v02.api.letsencrypt.org/acme/revoke-cert”^M^M
}^[[0m^M^M
[…]
^[[0;32mI (10099) Acme: RequestNewAccount(mailto:d@telenet.be) msg {^M^M
“resource”: “new-reg”,^M^M
“termsOfServiceAgreed”: true,^M^M
“contact”: [^M^M
mailto:d@telenet.be”^M^M
]^M^M
}^[[0m^M^M
^[[0;32mI (10119) Acme: MakeJWK: export ok^[[0m^M^M
^[[0;32mI (10119) Acme: MakeJWK -> {“kty”: “RSA”, “n”: “Adw04RT5c900SE0QIScCmPUdO1Qlbks4FegsVf7bwTKa0TDHpmHnl_6RQ-e_2-q5nSbAOVnyxfrWtc7g818cMuU”, “e”: “AQAB”}^[[0m^M^M
^[[0;32mI (10139) Acme: MakeMessageJWK(https://acme-staging-v02.api.letsencrypt.org/acme/new-acct,{^M^M
“resource”: “new-reg”,^M^M
“termsOfServiceAgreed”: true,^M^M
“contact”: [^M^M
mailto:d@telenet.be”^M^M
]^M^M
},{“kty”: “RSA”, “n”: “Adw04RT5c900SE0QIScCmPUdO1Qlbks4FegsVf7bwTKa0TDHpmHnl_6RQ-e_2-q5nSbAOVnyxfrWtc7g818cMuU”, “e”: “AQAB”})^[[0m^M^M
^[[0;32mI (10169) Acme: PR {“url”: https://acme-staging-v02.api.letsencrypt.org/acme/new-acct, “jwk”: “{“kty”: “RSA”, “n”: “Adw04RT5c900SE0QIScCmPUdO1Qlbks4FegsVf7bwTKa0TDHpmHnl_6RQ-e_2-q5nSbAOVnyxfrWtc7g818cMuU”, “e”: “AQAB”}”, “alg”: “RS256”, “nonce”: “o07bPSO9m4Gu-4KwBQtMb8dK5V-vAUOxR7FHMxh8fjM”}^[[0m^M^M
^[[0;32mI (10199) Acme: RequestNewAccount -> {^M^M
“protected”: “eyJ1cmwiOiBodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1hY2N0LCAiandrIjogInsia3R5IjogIlJTQSIsICJuIjogIkFkdzA0UlQ1YzkwMFNFMFFJU2NDbVBVZE8xUWxia3M0RmVnc1ZmN2J3VEthMFRESHBtSG5sXzZSUS1lXzItcTVuU2JBT1ZueXhmcld0YzdnODE4Y011VSIsICJlIjogIkFRQUIifSIsICJhbGciOiAiUlMyNTYiLCAibm9uY2UiOiAibzA3YlBTTzltNEd1LTRLd0JRdE1iOGRLNVYtdkFVT3hSN0ZITXhoOGZqTSJ9”,^M^M
“payload”: “ewogICJyZXNvdXJjZSI6ICJuZXctcmVnIiwKICAidGVybXNPZlNlcnZpY2VBZ3JlZWQiOiB0cnVlLAogICJjb250YWN0IjogWwogICAgIm1haWx0bzpkYW5ueWJhY2t4QHRlbGVuZXQuYmUiCiAgXQp9”,^M^M
“signature”: “eyJ1cmwiOiBodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1hY2N0LCAiandrIjogInsia3R5IjogIlJTQSIsICJuIjogIkFkdzA0UlQ1YzkwMFNFMFFJU2NDbVBVZE8xUWxia3M0RmVnc1ZmN2J3VEthMFRESHBtSG5sXzZSUS1lXzItcTVuU2JBT1ZueXhmcld0YzdnODE4Y011VSIsICJlIjogIkFRQUIifSIsICJhbGciOiAiUlMyNTYiLCAibm9uY2UiOiAibzA3YlBTTzltNEd1LTRLd0JRdE1iOGRLNVYtdkFVT3hSN0ZITXhoOGZqTSJ9LmV3b2dJQ0p5WlhOdmRYSmpaU0k2SUNKdVpYY3RjbVZuSWl3S0lDQWlkR1Z5YlhOUFpsTmxjblpwWTJWQlozSmxaV1FpT2lCMGNuVmxMQW9nSUNKamIyNTBZV04wSWpvZ1d3b2dJQ0FnSW0xaGFXeDBienBrWVc1dWVXSmhZMnQ0UUhSbGJHVnVaWFF1WW1VaUNpQWdYUXA5”^M^M
}^[[0m^M^M
^[[0;32mI (10299) Acme: PerformWebQuery(https://acme-staging-v02.api.letsencrypt.org/acme/new-acct, POST {^M^M
“protected”: “eyJ1cmwiOiBodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1hY2N0LCAiandrIjogInsia3R5IjogIlJTQSIsICJuIjogIkFkdzA0UlQ1YzkwMFNFMFFJU2NDbVBVZE8xUWxia3M0RmVnc1ZmN2J3VEthMFRESHBtSG5sXzZSUS1lXzItcTVuU2JBT1ZueXhmcld0YzdnODE4Y011VSIsICJlIjogIkFRQUIifSIsICJhbGciOiAiUlMyNTYiLCAibm9uY2UiOiAibzA3YlBTTzltNEd1LTRLd0JRdE1iOGRLNVYtdkFVT3hSN0ZITXhoOGZqTSJ9”,^M^M
“payload”: “ewogICJyZXNvdXJjZSI6ICJuZXctcmVnIiwKICAidGVybXNPZlNlcnZpY2VBZ3JlZWQiOiB0cnVlLAogICJjb250YWN0IjogWwogICAgIm1haWx0bzpkYW5ueWJhY2t4QHRlbGVuZXQuYmUiCiAgXQp9”,^M^M
“signature”: “eyJ1cmwiOiBodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1hY2N0LCAiandrIjogInsia3R5IjogIlJTQSIsICJuIjogIkFkdzA0UlQ1YzkwMFNFMFFJU2NDbVBVZE8xUWxia3M0RmVnc1ZmN2J3VEthMFRESHBtSG5sXzZSUS1lXzItcTVuU2JBT1ZueXhmcld0YzdnODE4Y011VSIsICJlIjogIkFRQUIifSIsICJhbGciOiAiUlMyNTYiLCAibm9uY2UiOiAibzA3YlBTTzltNEd1LTRLd0JRdE1iOGRLNVYtdkFVT3hSN0ZITXhoOGZqTSJ9LmV3b2dJQ0p5WlhOdmRYSmpaU0k2SUNKdVpYY3RjbVZuSWl3S0lDQWlkR1Z5YlhOUFpsTmxjblpwWTJWQlozSmxaV1FpT2lCMGNuVmxMQW9nSUNKamIyNTBZV04wSWpvZ1d3b2dJQ0FnSW0xaGFXeDBienBrWVc1dWVXSmhZMnQ0UUhSbGJHVnVaWFF1WW1VaUNpQWdYUXA5”^M^M
}, type application/jose+json)^[[0m^M^M
^[[0;32mI (10409) Acme: PerformWebQuery: client_set_header(User-Agent=EspAlarm ACME client/0.1)^[[0m^M^M
^[[0;32mI (10419) Acme: PerformWebQuery: client_set_header(Content-Type=application/jose+json)^[[0m^M^M
[…]
^[[0;32mI (11579) Peers: Adding peer controller (weather node) “prototype” 192.168.0.199 … 1 known peers^[[0m^M^M
^[[0;32mI (11579) Peers: Setting alarm to [night], info from prototype^[[0m^M^M
^[[0;32mI (11619) Oled: Alarm status night^[[0m^M^M
^[[0;32mI (11729) Acme: PerformWebQuery -> {^M^M
“type”: “urn:ietf:params:acme:error:malformed”,^M^M
“detail”: “Method not allowed”,^M^M
“status”: 405^M^M
}^[[0m^M^M

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.