1
0
mirror of https://github.com/actix/examples synced 2025-04-17 06:17:56 +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", "eyre",
"log", "log",
"rustls 0.23.25", "rustls 0.23.25",
"rustls-pemfile 2.2.0",
"tokio", "tokio",
] ]

View File

@ -12,5 +12,4 @@ env_logger.workspace = true
eyre.workspace = true eyre.workspace = true
log.workspace = true log.workspace = true
rustls.workspace = true rustls.workspace = true
rustls-pemfile.workspace = true
tokio = { workspace = true, features = ["fs"] } 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_files::Files;
use actix_web::{App, HttpRequest, HttpServer, Responder, rt, web}; use actix_web::{App, HttpRequest, HttpServer, Responder, rt, web};
use eyre::eyre; use eyre::eyre;
use rustls::pki_types::{PrivateKeyDer, PrivatePkcs8KeyDer}; use rustls::pki_types::{CertificateDer, PrivateKeyDer, PrivatePkcs8KeyDer, pem::PemObject};
use tokio::fs; use tokio::fs;
const CHALLENGE_DIR: &str = "./acme-challenges"; 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()?)); let private_key = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(cert.private_key_der()?));
// convert ACME-obtained certificate chain // convert ACME-obtained certificate chain
let cert_chain = let cert_chain = CertificateDer::pem_slice_iter(cert.certificate().as_bytes())
rustls_pemfile::certs(&mut std::io::BufReader::new(cert.certificate().as_bytes())) .flatten()
.collect::<Result<Vec<_>, _>>() .collect();
.unwrap();
Ok(config.with_single_cert(cert_chain, private_key)?) Ok(config.with_single_cert(cert_chain, private_key)?)
} }