FlorianUekermann / rustls-acme

Apache License 2.0
136 stars 27 forks source link

Error handling incoming event variant 'processing' #36

Closed Arqu closed 1 year ago

Arqu commented 1 year ago

Running into issues getting a certificate to validate because I keep receiving processing events which presumably should map to pending.

Sample

Running `target/debug/examples/high_level_tokio -d [some.real.domain]`
2023-03-28T11:32:00.196Z INFO [rustls_acme::caches::no] no cert cache configured, could not load certificate
2023-03-28T11:32:00.196Z INFO [rustls_acme::caches::no] no account cache configured, could not load account
2023-03-28T11:32:00.196Z INFO [rustls_acme::caches::no] no account cache configured, could not store account
2023-03-28T11:32:00.196Z INFO [rustls_acme::incoming] event: AccountCacheStore
2023-03-28T11:32:01.449Z INFO [rustls_acme::state] trigger challenge for [some.real.domain]
2023-03-28T11:32:02.050Z INFO [rustls_acme::incoming] received TLS-ALPN-01 validation request
2023-03-28T11:32:02.332Z INFO [rustls_acme::incoming] received TLS-ALPN-01 validation request
2023-03-28T11:32:03.206Z INFO [rustls_acme::state] authorization for [some.real.domain] still pending
2023-03-28T11:32:03.595Z INFO [rustls_acme::incoming] received TLS-ALPN-01 validation request
2023-03-28T11:32:03.772Z INFO [rustls_acme::incoming] received TLS-ALPN-01 validation request
2023-03-28T11:32:03.777Z INFO [rustls_acme::incoming] received TLS-ALPN-01 validation request
2023-03-28T11:32:05.129Z INFO [rustls_acme::incoming] received TLS-ALPN-01 validation request
2023-03-28T11:32:05.906Z INFO [rustls_acme::state] completed all authorizations
2023-03-28T11:32:05.906Z INFO [rustls_acme::state] sending csr
2023-03-28T11:32:06.264Z ERROR [rustls_acme::incoming] event: Order(Acme(Json(Error("unknown variant `processing`, expected one of `pending`, `ready`, `valid`, `invalid`", line: 2, column: 24))))
2023-03-28T11:32:08.154Z INFO [rustls_acme::state] sending csr
2023-03-28T11:32:08.511Z ERROR [rustls_acme::incoming] event: Order(Acme(Json(Error("unknown variant `processing`, expected one of `pending`, `ready`, `valid`, `invalid`", line: 2, column: 24))))
2023-03-28T11:32:11.405Z INFO [rustls_acme::state] sending csr
2023-03-28T11:32:11.766Z ERROR [rustls_acme::incoming] event: Order(Acme(Json(Error("unknown variant `processing`, expected one of `pending`, `ready`, `valid`, `invalid`", line: 2, column: 24))))

Presumably https://github.com/FlorianUekermann/rustls-acme/blob/984055cb3f32b0b1c7fa1b4657b6b8c127c4e0a8/src/acme.rs#L216-L228 needs to be extended.

Substituted domain name for [some.real.domain] in the logs

FlorianUekermann commented 1 year ago

Thanks for reporting.

Are you using let's encrypt, or some other CA? I have not seen this before, so if you have any hints for reproducing the issue let me know. I'm not on a network where I can test this atm, but will take a look asap.

Arqu commented 1 year ago

Thanks for the quick turnaround. The above output specifically is from examples/high_level_tokio.rs directly. Run on a machine with a static public IP, open ports and mapped DNS entry. The same happens for the integrated version in our codebase. And yes it should be against let's encrypt unless I'm missing something.

FlorianUekermann commented 1 year ago

I released 0.5.3, which should fix this issue. It seems like Let's Encrypt actually changed behavior (or maybe the processing state wasn't realistically observable due to load changes).

Arqu commented 1 year ago

Works like a charm, thank you for the very quick fix!