使用native_tls,我看到:
let ssl = ssl().expect("Failed to load SSL keys");
let builder: native_tls::TlsAcceptorBuilder =
native_tls::backend::openssl::TlsAcceptorBuilderExt::from_openssl(ssl);
let tls_acceptor = builder.build().expect("Failed to build TLS acceptor");
我认为有:
https://en.wikipedia.org/wiki/Server_Name_Indication
和:
https://docs.rs/native-tls/0.2.3/native_tls/struct.TlsConnectorBuilder.html#method.use_sni
use_sni默认为true。
但是我仍在寻找正确的方法来为N个不同的域加载N个证书,并在同一443端口上从同一服务器运行所有证书。
是否可以通过N个证书反复调用TlsAcceptorBuilderExt::from_openssl(ssl)
?
Edit1:找到this,这解释了很多。
答案 0 :(得分:0)
此处是完美的示例:https://github.com/nikelmwann/garbageproxy/blob/578e92d56fc410a58f0b93195aef52a47cfbe3fb/src/tls.rs#L55遍历N个服务器并添加每个证书和密钥