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 |