A SSL definition sets the parameters need to accept or receive encrypted SSL or TLS connections. Generally this includes a local certificate and private key to use with the connection. It may also include a certificate authority definition to validate the peer’s certificate against.

The structure of the specification itself is a hash map type with multiple possible keys below it.

Certificate

The the local certificate. This can either be the full text contents of the certificate in PEM format or the binary contents in DER format. In contexts that permit external loading, it may also be the text of a file name to load containing either PEM or DER data.

Key

The the local private key. This can either be the full text contents of the key in PEM format or the binary contents in DER format. In contexts that permit external loading, it may also be the text of a file name to load containing either PEM or DER data.

Authority/#0

An array of certificates that compose the certificate authority to validate against. Each certificate can either be the full text contents of the certificate in PEM format or the binary contents in DER format. In contexts that permit external loading, it may also be the text of a file name to load containing either PEM or DER data.

NoLocal

A boolean setting that explicitly disables the local certificate and key.

RequireValid

A boolean setting that enables validation against the certificate authority of the peer’s certificate. When set, the peer must posses a certificate that verifies against the authority or the connection is rejected.

MinimumVersion

A integer specifying the minimum TLS version accepted. For example, setting this to two requires TLS 1.2 or higher. Setting it to -1 accepts any TLS version.