Ende.connectTls

function ยท requires --allow-net

function Ende.connectTls(options: ConnectTlsOptions | (ConnectTlsOptions & TlsCertifiedKeyPem)): Promise<TlsConn>

Establishes a secure connection over TLS (transport layer security) using an optional list of CA certs, hostname (default is "127.0.0.1") and port.

The CA cert list is optional and if not included Mozilla's root certificates will be used (see also https://github.com/ctz/webpki-roots for specifics).

Mutual TLS (mTLS or client certificates) are supported by providing a key and cert in the options as PEM-encoded strings.

const caCert = await Ende.readTextFile("./certs/my_custom_root_CA.pem");
const conn1 = await Ende.connectTls({ port: 80 });
const conn2 = await Ende.connectTls({ caCerts: [caCert], hostname: "192.0.2.1", port: 80 });
const conn3 = await Ende.connectTls({ hostname: "[2001:db8::1]", port: 80 });
const conn4 = await Ende.connectTls({ caCerts: [caCert], hostname: "golang.org", port: 80});

const key = "----BEGIN PRIVATE KEY----...";
const cert = "----BEGIN CERTIFICATE----...";
const conn5 = await Ende.connectTls({ port: 80, key, cert });

Requires allow-net permission.