openxpki Plugin
Purpose
The openxpki plugin for libstrongswan allows direct access to
the OpenXPKI MySQL/MariaDB database which is used by the
pki --ocsp command to retrieve the online
certificate status and return it in an OCSP response.
The plugin is disabled by default and can be enabled with the
./configure option
--enable-openxpki
Also required is support for MySQL/MariaDB
--enable-mysql
which builds and loads the mysql plugin.
Implementation
The openxpki plugin directly accesses the certificate database table:
+--------------------------+------------------------------+------+-----+---------+
| Field | Type | Null | Key | Default |
+--------------------------+------------------------------+------+-----+---------+
| pki_realm | varchar(255) | YES | MUL | NULL |
| issuer_dn | varchar(1000) | YES | | NULL |
| cert_key | decimal(49,0) | NO | PRI | NULL |
| issuer_identifier | varchar(64) | NO | PRI | NULL |
| identifier | varchar(64) | YES | UNI | NULL |
| subject | varchar(1000) | YES | MUL | NULL |
| status | enum('ISSUED','HOLD' | YES | MUL | UNKNOWN |
| | 'CRL_ISSUANCE_PENDING', | | | |
| | 'REVOKED','UNKNOWN') | | | |
| subject_key_identifier | varchar(255) | YES | | NULL |
| authority_key_identifier | varchar(255) | YES | | NULL |
| notbefore | int(10) unsigned | YES | MUL | NULL |
| notafter | int(10) unsigned | YES | MUL | NULL |
| revocation_time | int(10) unsigned | YES | MUL | NULL |
| invalidity_time | int(10) unsigned | YES | MUL | NULL |
| reason_code | varchar(50) | YES | MUL | NULL |
| hold_instruction_code | varchar(50) | YES | MUL | NULL |
| revocation_id | int(11) | YES | UNI | NULL |
| req_key | bigint(20) unsigned | YES | MUL | NULL |
| data | longtext | YES | | NULL |
+--------------------------+------------------------------+------+-----+---------+
Configuration
The sql plugin is configured using the following options in the
charon.plugins.openxpki
section of strongswan.conf:
| Key | Default | Description |
|---|---|---|
database |
OpenXPKI MySQL/MariaDB URI. If it contains a password, make sure to adjust the permissions of the config file accordingly |