1.0 能用
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
use rustls_pemfile::{certs, private_key};
|
||||
use std::io::BufReader;
|
||||
use std::sync::Arc;
|
||||
|
||||
pub fn build_tls_acceptor() -> Arc<rustls::ServerConfig> {
|
||||
let fullchain = include_bytes!(concat!(env!("OUT_DIR"), "/fullchain.pem"));
|
||||
let leaf_key = include_bytes!(concat!(env!("OUT_DIR"), "/leaf.key"));
|
||||
|
||||
let cert_chain = certs(&mut BufReader::new(&fullchain[..]))
|
||||
.collect::<Result<Vec<_>, _>>()
|
||||
.unwrap();
|
||||
let key = private_key(&mut BufReader::new(&leaf_key[..]))
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
|
||||
let mut config = rustls::ServerConfig::builder()
|
||||
.with_no_client_auth()
|
||||
.with_single_cert(cert_chain, key)
|
||||
.unwrap();
|
||||
|
||||
// 真实服务器(dailygn / 拼锁 API)只支持 HTTP/1.1(ALPN 实测不会选 h2),
|
||||
// 所以这里也只声明 http/1.1,让 App 用 HTTP/1.1 跟我们握手,避免跨协议转换。
|
||||
config.alpn_protocols = vec![b"http/1.1".to_vec()];
|
||||
|
||||
Arc::new(config)
|
||||
}
|
||||
Reference in New Issue
Block a user