use std::io; use actix_web::{middleware, web, App, Error, HttpRequest, HttpResponse, HttpServer}; use openssl::ssl::{SslAcceptor, SslFiletype, SslMethod}; /// simple handle fn index(req: HttpRequest) -> Result { println!("{:?}", req); Ok(HttpResponse::Ok() .content_type("text/plain") .body("Welcome!")) } fn main() -> io::Result<()> { std::env::set_var("RUST_LOG", "actix_web=debug"); env_logger::init(); let sys = actix_rt::System::new("tls-example"); // load ssl keys let mut builder = SslAcceptor::mozilla_intermediate(SslMethod::tls()).unwrap(); builder .set_private_key_file("key.pem", SslFiletype::PEM) .unwrap(); builder.set_certificate_chain_file("cert.pem").unwrap(); HttpServer::new(|| { App::new() // enable logger .wrap(middleware::Logger::default()) // register simple handler, handle all methods .service(web::resource("/index.html").to(index)) // with path parameters .service(web::resource("/").route(web::get().to(|| { HttpResponse::Found() .header("LOCATION", "/index.html") .finish() }))) }) .bind_ssl("127.0.0.1:8443", builder)? .start(); println!("Started http server: 127.0.0.1:8443"); sys.run() }