I am running docker container which contains REST API
with tls enable, For which I am passing self signed .pem
certificate and I am using reqwest
crate to call the REST API. If tls is disable with container it works well. But when I run container with certificate, reqwest API call giving me error as mention below.Even after passing the same certificate from self-signed also giving me error.
error trying to connect: The certificate was not trusted."
reqwest = { version = "0.11.4", features = ["blocking", "json","native-tls"] }
async fn call_api<T: serde::Serialize>(
&self,
builder: ClientBuilder,
params: &T,
request_url: &str,
) -> Result<serde_json::Value> {
let mut headers = header::HeaderMap::new();
headers.insert(
header::AUTHORIZATION,
header::HeaderValue::from_str(self.token.as_str()).unwrap(),
);
headers.insert(
header::CONTENT_TYPE,
header::HeaderValue::from_static("application/json"),
);
// read a local binary pem encoded certificate
let pem = std::fs::read("./cert.pem").unwrap();
let cert = reqwest::Certificate::from_pem(&pem)?;
let client = builder
.add_root_certificate(cert)
.default_headers(headers)
.build()?;
let response_json: serde_json::Value = client
.get(request_url)
.json(params)
.send()
.await?
.json()
.await?;
Ok(response_json)
}