fix tls
This commit is contained in:
parent
631025efdb
commit
903bf23a4c
@ -97,7 +97,7 @@ impl FlowgateServer {
|
|||||||
let listener = TcpListener::bind(&config.read().await.https_host).await?;
|
let listener = TcpListener::bind(&config.read().await.https_host).await?;
|
||||||
let acceptor = TlsAcceptor::from(Arc::new(create_server_config(config.clone()).await));
|
let acceptor = TlsAcceptor::from(Arc::new(create_server_config(config.clone()).await));
|
||||||
|
|
||||||
info!("HTTPS server runned on {}", &config.read().await.http_host);
|
info!("HTTPS server runned on {}", &config.read().await.https_host);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let Ok((stream, addr)) = listener.accept().await else { break };
|
let Ok((stream, addr)) = listener.accept().await else { break };
|
||||||
@ -117,7 +117,7 @@ impl FlowgateServer {
|
|||||||
config,
|
config,
|
||||||
&mut stream,
|
&mut stream,
|
||||||
addr,
|
addr,
|
||||||
false
|
true
|
||||||
).await;
|
).await;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use std::sync::Arc;
|
use std::{sync::Arc, thread};
|
||||||
|
|
||||||
use rustls::{
|
use rustls::{
|
||||||
crypto::aws_lc_rs::sign::any_supported_type,
|
crypto::aws_lc_rs::sign::any_supported_type,
|
||||||
@ -50,7 +50,16 @@ impl ResolvesServerCertWildcard {
|
|||||||
impl ResolvesServerCert for ResolvesServerCertWildcard {
|
impl ResolvesServerCert for ResolvesServerCertWildcard {
|
||||||
fn resolve(&self, client_hello: ClientHello<'_>) -> Option<Arc<CertifiedKey>> {
|
fn resolve(&self, client_hello: ClientHello<'_>) -> Option<Arc<CertifiedKey>> {
|
||||||
if let Some(cert) = client_hello.server_name()
|
if let Some(cert) = client_hello.server_name()
|
||||||
.and_then(|name| self.handle.block_on(self.config.read()).get_site(name).cloned())
|
.and_then(|name| {
|
||||||
|
thread::spawn({
|
||||||
|
let handle = self.handle.clone();
|
||||||
|
let config = self.config.clone();
|
||||||
|
|
||||||
|
move || {
|
||||||
|
handle.block_on(config.read()).clone()
|
||||||
|
}
|
||||||
|
}).join().unwrap().get_site(name).cloned()
|
||||||
|
})
|
||||||
.and_then(|site| site.ssl) {
|
.and_then(|site| site.ssl) {
|
||||||
Some(Arc::new(cert.get_key()))
|
Some(Arc::new(cert.get_key()))
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user