| 181 | } |
| 182 | |
| 183 | fn load_rustls_config(cert: Certificate) -> eyre::Result<rustls::ServerConfig> { |
| 184 | // init server config builder with safe defaults |
| 185 | let config = rustls::ServerConfig::builder().with_no_client_auth(); |
| 186 | |
| 187 | // convert ACME-obtained private key |
| 188 | let private_key = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(cert.private_key_der()?)); |
| 189 | |
| 190 | // convert ACME-obtained certificate chain |
| 191 | let cert_chain = CertificateDer::pem_slice_iter(cert.certificate().as_bytes()) |
| 192 | .flatten() |
| 193 | .collect(); |
| 194 | |
| 195 | Ok(config.with_single_cert(cert_chain, private_key)?) |
| 196 | } |