Name:
SSL
Description:
Perform SSL (secure sockets layer) on a pi3 IO channel. An instance
of this IO class would normally be inserted between a TCPIP transport
IO object and a higher level logic component implementing a TCP
service to make the service secure, e.g. (HTTP-->HTTPS).
However this IO filter can be used on any IO chain, both for other transports (shared memory, named pipes) and other uses, FastCGI connections, FTP connections etc.
Typically an instance of this object is inserted into the IO chain using code like the following.
This SSL pi3 component is implemented using the OpenSSL library ( formerly known as Eric Youngs SSLeay library, thus -Substitute:
... IOObject TheTransportIO ...With:
... IOObject SSL IOObject="TheTransportIO" ...
"This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)."
Options:
Option | Default | Values | Short Description | Example(s) |
---|---|---|---|---|
IOObject | + | <pi3objectname> | A Pi3 object | IOObject="TCPIPIO" |
Type | Passive | Active|Passive | Specify IO layer type | Type="Passive" |
Version | 23 | 2, 3, 23 or 10 | Version of SSL/TLS to accept | Version=3 |
Verify | 0 | 0, 1 or 2 | Client certificate verification requirements | Verify=2 |
VerifyDepth | 8 | An integer value | Level to verify peer certificate | VerifyDepth=2 |
CACertificatePath | - | <pathname> | CA Path | CACertificatePath="./certs" |
CACertificateFile | - | <filename> | CA Certificate file to use | CACertificateFile="./ca.pem" |
PrivateKeyFile | +* | <filename> | A private key file | PrivateKeyFile="./key.pem" |
CertificateFile | +* | <filename> | Certificate file | CertificateFile="./cert.pem" |
Flag | - | "Bugs" | Flag | Flag="Bugs" |
DebugFile | - | "STDOUT", "STDERR" or <filename> | Specific an SSL debug file | DebugFile="./ssl.dbg" |
CipherList | - | List of acceptable ciphers | CipherList "!ADH:RC4+RSA:HIGH:MEDIUM:LOW:EXP:+SSLv2:+EXP" ("DEFAULT", "NULL-MD5" - Read the openssl documentation for details) |
Returns:
PIAPI_COMPLETED on success.
PIAPI_ERROR and PIAPI_ABORT respectively for generic and severe
error conditions.
Example:
<Object> Name SSL Class SSLClass IOObject TCPIPIOObject </Object>