Fixed ca cert issue on api

This commit is contained in:
2025-04-12 08:57:27 -04:00
parent 74fa7da751
commit 165b5e6e1e
16 changed files with 211 additions and 622 deletions

View File

@@ -16,7 +16,7 @@ RUN cargo build --release
# =========
FROM debian:bookworm-slim AS runtime
WORKDIR /api
RUN apt-get update && apt-get install -y openssl libpq-dev
RUN apt-get update && apt-get install -y openssl libpq-dev ca-certificates
USER root
COPY --from=builder /builder/target/release/api /usr/local/bin/api

View File

@@ -3,6 +3,7 @@ use std::time::Duration;
use actix_cors::Cors;
use actix_web::{App, HttpServer, middleware::Logger, web};
use dotenv::from_filename;
use reqwest::Certificate;
use crate::auth::hash;
use crate::users::{User, ADMIN_ROLE};
@@ -57,10 +58,14 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
}
}
let certificate_path = env::var("SSL_CA_PATH")?;
let certificate_data = std::fs::read(certificate_path)?;
let certificate = Certificate::from_pem(&certificate_data)?;
let client = reqwest::Client::builder()
.timeout(Duration::from_secs(10))
.no_proxy()
.danger_accept_invalid_certs(true)
.add_root_certificate(certificate)
.tls_built_in_root_certs(true)
.build()
.expect("Failed to create reqwest client");

View File

@@ -847,7 +847,7 @@ impl Metar {
}
async fn get_remote_metars(client: &Client, icaos: &[&str]) -> ApiResult<Vec<Metar>> {
let base_url = std::env::var("AVIATION_WEATHER_URL").expect("GOV_API_URL must be set");
let base_url = std::env::var("AVIATION_WEATHER_URL").expect("AVIATION_WEATHER_URL must be set");
// Query the remote API for the missing METAR data 10 at a time
let icao_chunks = icaos
.chunks(10)