Skip to content

Commit ef114eb

Browse files
authored
Merge pull request #303 from Dstack-TEE/certbot-log
certbot: Add detailed acme error info
2 parents 2188086 + 53985ca commit ef114eb

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

certbot/src/acme_client.rs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use fs_err as fs;
77
use hickory_resolver::error::ResolveErrorKind;
88
use instant_acme::{
99
Account, AccountCredentials, AuthorizationStatus, ChallengeType, Identifier, NewAccount,
10-
NewOrder, Order, OrderStatus,
10+
NewOrder, Order, OrderStatus, Problem,
1111
};
1212
use rcgen::{CertificateParams, DistinguishedName, KeyPair};
1313
use serde::{Deserialize, Serialize};
@@ -457,7 +457,14 @@ impl AcmeClient {
457457
return extract_certificate(order).await;
458458
}
459459
// Something went wrong
460-
OrderStatus::Invalid => bail!("order is invalid"),
460+
OrderStatus::Invalid => {
461+
let error = find_error(&mut order).await.unwrap_or(Problem {
462+
r#type: None,
463+
detail: None,
464+
status: None,
465+
});
466+
bail!("order is invalid: {error}");
467+
}
461468
}
462469
}
463470
}
@@ -472,6 +479,20 @@ impl AcmeClient {
472479
}
473480
}
474481

482+
async fn find_error(order: &mut Order) -> Option<Problem> {
483+
if let Some(error) = order.state().error.as_ref() {
484+
return Some(error.clone());
485+
}
486+
for auth in order.authorizations().await.ok()? {
487+
for challenge in auth.challenges {
488+
if let Some(error) = challenge.error {
489+
return Some(error);
490+
}
491+
}
492+
}
493+
None
494+
}
495+
475496
fn make_csr(key: &str, names: &[String]) -> Result<Vec<u8>> {
476497
let mut params =
477498
CertificateParams::new(names).context("failed to create certificate params")?;

certbot/src/dns01_client/cloudflare.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ impl Dns01Api for CloudflareClient {
8383
"type": "TXT",
8484
"name": domain,
8585
"content": content,
86-
"ttl": 120
8786
}))
8887
.await?;
8988
Ok(response.result.id)
@@ -100,7 +99,6 @@ impl Dns01Api for CloudflareClient {
10099
.add_record(&json!({
101100
"type": "CAA",
102101
"name": domain,
103-
"ttl": 120,
104102
"data": {
105103
"flags": flags,
106104
"tag": tag,

0 commit comments

Comments
 (0)