io7m | single-page | multi-page | Certusine User Manual
1. Introduction
Previous
Front Matter
Up
3. Configuration
Next

# 2. Installation

- 2.1. Overview
- 2.2. Maven Central
- 2.3. OCI Images
  - 2.3.1. Quay.io
- 2.4. Platform-Specific Issues
  - 2.4.1. SELinux
- 2.5. Migrating From 2.*.* -> 3.*.*
  - 2.5.1. SQLite Store
- 2.6. Migrating From 3.*.* -> 4.*.*
  - 2.6.1. Configuration Format

## 2.1. Overview

1
The certusine package is available from the following sources:

### 2.1.2. Sources

- Maven Central
- Quay.io

3
Regardless of the distribution method, the certusine package will contain a command named certusine that acts as the main entrypoint to all the package's functionality. The certusine command expects an environment variable named CERTUSINE_HOME to be defined that points to the installation directory. See the documentation for the installation methods below for details.

## 2.2. Maven Central

1
A distribution package can be found at Maven Central.
2
The certusine command requires that a Java 21+ compatible JVM be accessible via /usr/bin/env java.
3
Verify the integrity of the distribution zip file:

### 2.2.4. Verify

    $ gpg --verify com.io7m.certusine.cmdline-4.0.0-SNAPSHOT-distribution.zip.asc
    gpg: assuming signed data in 'com.io7m.certusine.cmdline-4.0.0-SNAPSHOT-distribution.zip.asc'
    gpg: Signature made Tue 28 Jun 2022 15:01:56 GMT
    gpg:                using RSA key 3CCE59428B30462D10459909C5607DA146E128B8
    gpg:                issuer "contact@io7m.com"
    gpg: using pgp trust model
    gpg: Good signature from "io7m.com (2022 maven-rsa-key) <contact@io7m.com>" [unknown]

5
Unzip the zip file, and set CERTUSINE_HOME appropriately:

### 2.2.6. Extract

    $ unzip com.io7m.certusine.cmdline-4.0.0-SNAPSHOT-distribution.zip
    $ export CERTUSINE_HOME=$(realpath certusine)
    $ ./certusine/bin/certusine
    info: Usage: certusine [options] [command] [command options]
    ...

## 2.3. OCI Images

## 2.3.1. Quay.io

1
OCI images are available from Quay.io for use with podman or docker.

### 2.3.1.2. Podman/Docker

    $ podman pull quay.io/io7mcom/certusine:4.0.0-SNAPSHOT
    $ podman run quay.io/io7mcom/certusine:4.0.0-SNAPSHOT
    certusine: usage: certusine [command] [arguments ...]
    ...

## 2.4. Platform-Specific Issues

## 2.4.1. SELinux

1
The certusine package uses SQLite internally. The certusine package is written in Java and includes native SQLite libraries compiled for a wide range of platforms. At run-time, the native library for the current platform is extracted to a temporary directory. By default, the standard temporary directory specified by the java.io.tmpdir system property is used (/tmp on most Unix-like systems).
2
On systems using SELinux, applications are not allowed to execute code from binaries or libraries that are in a directory that has the tmp_t SELinux type. It is practically guaranteed that any system-wide temporary directory will be configured to have this type. Therefore, in order to run certusine on these systems, it is necessary to specify a directory using the org.sqlite.tmpdir system property. As an example, the OCI image configures this property to use /certusine/var to store the temporary native libraries.

## 2.5. Migrating From 2.*.* -> 3.*.*

## 2.5.1. SQLite Store

1
Versions of the certusine package prior to 3.0.0 used the MVStore database to store internal certificate state. In version 3.0.0, the certusine package switched to using SQLite.
2
Please either delete the existing store before running 3.0.0 on a system that previously used 2.*.*, or specify a new file name for the store in the configuration file. Certificates will be automatically recreated and placed into the new store on application startup.

## 2.6. Migrating From 3.*.* -> 4.*.*

## 2.6.1. Configuration Format

1
The configuration file schema changed from urn:com.io7m.certusine:configuration:1 to urn:com.io7m.certusine:configuration:2 to support the new DropUnreferencedCertificates feature.
1. Introduction
Previous
Front Matter
Up
3. Configuration
Next
io7m | single-page | multi-page | Certusine User Manual