1
0
mirror of https://github.com/actix/examples synced 2025-04-08 19:03:19 +02:00

Simplify acme-letsencrypt example

This commit is contained in:
Olivier Guittonneau 2025-04-03 17:59:14 +02:00
parent c3bd9d9620
commit a554e6467e
No known key found for this signature in database
GPG Key ID: 7328EDEC98A034EA
3 changed files with 4 additions and 7 deletions

1
Cargo.lock generated
View File

@ -8410,7 +8410,6 @@ dependencies = [
"eyre",
"log",
"rustls 0.23.25",
"rustls-pemfile 2.2.0",
"tokio",
]

View File

@ -12,5 +12,4 @@ env_logger.workspace = true
eyre.workspace = true
log.workspace = true
rustls.workspace = true
rustls-pemfile.workspace = true
tokio = { workspace = true, features = ["fs"] }

View File

@ -4,7 +4,7 @@ use acme::{Certificate, Directory, DirectoryUrl, create_p256_key};
use actix_files::Files;
use actix_web::{App, HttpRequest, HttpServer, Responder, rt, web};
use eyre::eyre;
use rustls::pki_types::{PrivateKeyDer, PrivatePkcs8KeyDer};
use rustls::pki_types::{CertificateDer, PrivateKeyDer, PrivatePkcs8KeyDer, pem::PemObject};
use tokio::fs;
const CHALLENGE_DIR: &str = "./acme-challenges";
@ -188,10 +188,9 @@ fn load_rustls_config(cert: Certificate) -> eyre::Result<rustls::ServerConfig> {
let private_key = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(cert.private_key_der()?));
// convert ACME-obtained certificate chain
let cert_chain =
rustls_pemfile::certs(&mut std::io::BufReader::new(cert.certificate().as_bytes()))
.collect::<Result<Vec<_>, _>>()
.unwrap();
let cert_chain = CertificateDer::pem_slice_iter(cert.certificate().as_bytes())
.flatten()
.collect();
Ok(config.with_single_cert(cert_chain, private_key)?)
}