为SNI rust Web服务器实施多个TLS证书和私钥的正确方法是什么?

时间:2019-08-15 20:51:20

标签: ssl rust openssl tls1.2 sni

使用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,这解释了很多。

1 个答案:

答案 0 :(得分:0)

此处是完美的示例:https://github.com/nikelmwann/garbageproxy/blob/578e92d56fc410a58f0b93195aef52a47cfbe3fb/src/tls.rs#L55遍历N个服务器并添加每个证书和密钥