Fix agent test.
This commit is contained in:
committed by
Martin Algesten
parent
5ae55ad5f2
commit
f22e67be4c
@@ -44,6 +44,7 @@ log = "0.4"
|
|||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
env_logger = "0.9"
|
env_logger = "0.9"
|
||||||
rustls = { version = "0.20", features = ["dangerous_configuration"] }
|
rustls = { version = "0.20", features = ["dangerous_configuration"] }
|
||||||
|
rustls-pemfile = { version = "0.2" }
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "smoke-test"
|
name = "smoke-test"
|
||||||
|
|||||||
16
src/agent.rs
16
src/agent.rs
@@ -474,9 +474,21 @@ impl AgentBuilder {
|
|||||||
/// # fn main() -> Result<(), ureq::Error> {
|
/// # fn main() -> Result<(), ureq::Error> {
|
||||||
/// # ureq::is_test(true);
|
/// # ureq::is_test(true);
|
||||||
/// use std::sync::Arc;
|
/// use std::sync::Arc;
|
||||||
/// let tls_config = Arc::new(rustls::ClientConfig::new());
|
/// let mut root_store = rustls::RootCertStore::empty();
|
||||||
|
/// root_store.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.0.iter().map(|ta| {
|
||||||
|
/// rustls::OwnedTrustAnchor::from_subject_spki_name_constraints(
|
||||||
|
/// ta.subject,
|
||||||
|
/// ta.spki,
|
||||||
|
/// ta.name_constraints,
|
||||||
|
/// )
|
||||||
|
/// }));
|
||||||
|
///
|
||||||
|
/// let tls_config = rustls::ClientConfig::builder()
|
||||||
|
/// .with_safe_defaults()
|
||||||
|
/// .with_root_certificates(root_store)
|
||||||
|
/// .with_no_client_auth();
|
||||||
/// let agent = ureq::builder()
|
/// let agent = ureq::builder()
|
||||||
/// .tls_config(tls_config.clone())
|
/// .tls_config(Arc::new(tls_config))
|
||||||
/// .build();
|
/// .build();
|
||||||
/// # Ok(())
|
/// # Ok(())
|
||||||
/// # }
|
/// # }
|
||||||
|
|||||||
@@ -92,17 +92,28 @@ m0Wqhhi8/24Sy934t5Txgkfoltg8ahkx934WjP6WWRnSAu+cf+vW
|
|||||||
#[cfg(feature = "tls")]
|
#[cfg(feature = "tls")]
|
||||||
#[test]
|
#[test]
|
||||||
fn tls_client_certificate() {
|
fn tls_client_certificate() {
|
||||||
let mut tls_config = rustls::ClientConfig::new();
|
let certs = rustls_pemfile::certs(&mut BADSSL_CLIENT_CERT_PEM.as_bytes())
|
||||||
|
.unwrap()
|
||||||
let certs = rustls_pemfile::certs(&mut BADSSL_CLIENT_CERT_PEM.as_bytes()).unwrap();
|
.into_iter()
|
||||||
let key = rustls_pemfile::rsa_private_keys(&mut BADSSL_CLIENT_CERT_PEM.as_bytes())
|
.map(rustls::Certificate)
|
||||||
.unwrap()[0]
|
.collect();
|
||||||
|
let key = rustls_pemfile::rsa_private_keys(&mut BADSSL_CLIENT_CERT_PEM.as_bytes()).unwrap()[0]
|
||||||
.clone();
|
.clone();
|
||||||
|
|
||||||
tls_config.set_single_client_cert(certs, key).unwrap();
|
let mut root_store = rustls::RootCertStore::empty();
|
||||||
tls_config
|
root_store.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.0.iter().map(|ta| {
|
||||||
.root_store
|
rustls::OwnedTrustAnchor::from_subject_spki_name_constraints(
|
||||||
.add_server_trust_anchors(&webpki_roots::TLS_SERVER_ROOTS);
|
ta.subject,
|
||||||
|
ta.spki,
|
||||||
|
ta.name_constraints,
|
||||||
|
)
|
||||||
|
}));
|
||||||
|
|
||||||
|
let tls_config = rustls::ClientConfig::builder()
|
||||||
|
.with_safe_defaults()
|
||||||
|
.with_root_certificates(root_store)
|
||||||
|
.with_single_cert(certs, rustls::PrivateKey(key))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let agent = ureq::builder()
|
let agent = ureq::builder()
|
||||||
.tls_config(std::sync::Arc::new(tls_config))
|
.tls_config(std::sync::Arc::new(tls_config))
|
||||||
|
|||||||
Reference in New Issue
Block a user