Skip to main content

TLS Server

Creating a TLS server for outstation instances is exactly the same process as a TCP server, except that an extra TlsServerConfig is required. For more details about TLS support and the configuration options, check the TLS general information page.

Examples

Certificate chain configuration

let ca_chain_tls_config = TlsServerConfig::new(
"test.com",
&Path::new("./certs/ca_chain/ca_cert.pem"),
&Path::new("./certs/ca_chain/entity2_cert.pem"),
&Path::new("./certs/ca_chain/entity2_key.pem"),
None, // no password
MinTlsVersion::V1_2,
CertificateMode::AuthorityBased,
)?;
let tls_config = ca_chain_tls_config;

let mut server =
TcpServer::new_tls_server(LinkErrorMode::Close, "127.0.0.1:20001".parse()?, tls_config);

Self-signed certificate configuration

let self_signed_tls_config = TlsServerConfig::new(
"test.com",
&Path::new("./certs/self_signed/entity1_cert.pem"),
&Path::new("./certs/self_signed/entity2_cert.pem"),
&Path::new("./certs/self_signed/entity2_key.pem"),
None, // no password
MinTlsVersion::V1_2,
CertificateMode::SelfSigned,
)?;
let tls_config = self_signed_tls_config;

let mut server =
TcpServer::new_tls_server(LinkErrorMode::Close, "127.0.0.1:20001".parse()?, tls_config);