OpenXPKI

セットアップ環境は、Linux Debian Busterとする。
公式のドキュメントによると、提供されているパッケージは、Debianが対象となっているためである。
Githubリポジトリをみると、Vagrant環境でsuseもあるようだ。

ここでは、Debianに一からセットアップしていく方法でやってみる。

ゲストOS作成

公式のVagrantファイルは使わずに、一つずつ設定していく方法でやってみる。
Virtualbox環境を想定しています、cpuやメモリなど設定は環境に合わせて修正する。

$ mkdir -p openxpki-test data
$ cat <<EOF  > Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "debian/buster64"
  config.vm.synced_folder "./data", "/vagrant_data"
  config.vm.network :private_network, ip:"192.168.33.51"

  config.vm.provider "virtualbox" do |vb|
    # Customize the amount of memory on the VM:
    vb.memory = "4096"
    vb.name = "debian-openxpki"
    vb.cpus = 2
  end

  config.vm.provision "shell", inline: <<-SHELL
    apt-get update
  SHELL
end
EOF

Debianのゲストマシンを起動する。

$ vagrant up

無事起動したらログインする。

$ vagrant ssh

簡単のためrootの設定をしておきます。

vagrant@buster:~$ sudo passwd root
新しいパスワード:
新しいパスワードを再入力してください:
passwd: パスワードは正しく更新されました

rootにスイッチします。

$ su -
root@buster:~#

各種パッケージインストール

openxpkiのパッケージをインストールする。
ここからは、公式のドキュメントの通り進める。

リポジトリのキーをインストールする。

# wget https://packages.openxpki.org/v3/debian/Release.key -O - | apt-key add -

openxpkiのリポジトリを定義する。

# echo "deb http://packages.openxpki.org/v3/debian/ buster release" > /etc/apt/sources.list.d/openxpki.list
# apt update

証明書等の管理にデータベースを使うので、mysqlをインストールする。

# apt install default-mysql-server libdbd-mysql-perl

WebサーバとFastCGIモジュールをインストールする。

# apt install apache2 libapache2-mod-fcgid

apache2でモジュールをenabledにする。

# a2enmod fcgid
module fcgid already enabled

openxpkiをインストールする。

# apt install libopenxpki-perl openxpki-cgi-session-driver openxpki-i18n

openxpkiのバージョンを確認する。

# openxpkiadm version
Version (core): 3.4.0

apache2を再起動します。

# systemctl restart apache2

データベース設定

mysqlをセットアップ。

# mysql_secure_installation 

データベースを作成する。

# cat <<EOF > init.sql
CREATE DATABASE openxpki CHARSET utf8;
CREATE USER 'openxpki'@'localhost' IDENTIFIED BY 'openxpki';
GRANT ALL ON openxpki.* TO 'openxpki'@'localhost';
flush privileges;
EOF
# mysql -uroot -p < init.sql 

スキーマを設定する。

# zcat /usr/share/doc/libopenxpki-perl/examples/schema-mysql.sql.gz | \
     mysql -u root --password --database  openxpki

OpenXPKIの設定

OpenXPKIに関する設定ファイルは、/etc/openxpkiにある。
データベース設定は、config.d/systemにある。
デフォルトでは、以下のようになっており、データベース環境に合わせて修正する。

# cat config.d/system/database.yaml 
main:
    debug: 0
    type: MySQL
    name: openxpki
    host: localhost
    port: 3306
    user: openxpki
    passwd: openxpki

    # extra options passed to the driver as parameter
    #driver:
    #    LongReadLen: 10000000

    # How often to try to connect to the database on startup if not avail -
    # default is to fail immediately. This is mainly useful if database and
    # OpenXPKI are started by the same init process and the DB might take
    # some time to come up
    #wait_on_init:
    #    retry_count: 10
    #    retry_interval: 30

# To log to a different database create a section "log" by copying and adjusting
# the upper block, e.g.:
#
# log:
#     debug: 0
#     ...

# Set environment values, e.g. locales for Oracle
# this was inside the db section prior v2.2 which does not work as expected
# environment:
#    key: value

レルム設定(認証局)

OpenXPKIは、複数の認証局(レルムと呼んでいる)をハンドルすることがでる。
/etc/openxpki/config.d/realmの各フォルダがレルムの設定となっているようだ。
デフォルトでは、democaをいうデモ用のレルムテンプレートがある。
この設定をコピーして、独自の認証局を作成することができる。各設定は、複製したレルムに合わせて修正する(crypto.yamlなど他)。

デモCAを設定するには、以下のコマンドを実行する。

# zcat /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh.gz | bash

これで、ルート証明がデータベースにインポートされた状態になる。

# openxpkiadm alias --realm democa
=== functional token ===
scep (scep):
  Alias     : scep-1
  Identifier: PmWla5PoaksWTJSVuQDjUipXhLE
  NotBefore : 2020-06-27 07:15:18
  NotAfter  : 2021-06-27 07:15:18

vault (datasafe):
  Alias     : vault-1
  Identifier: Qz775yjQAzWCtXC95r4TiYDXs74
  NotBefore : 2020-06-27 07:15:17
  NotAfter  : 2030-06-30 07:15:17

ca-signer (certsign):
  Alias     : ca-signer-1
  Identifier: ysU5TsOlAvUgUM71PiXFc59WshA
  NotBefore : 2020-06-27 07:15:16
  NotAfter  : 2025-06-29 07:15:16

=== root ca ===
current root ca:
  Alias     : root-1
  Identifier: aRE77TXyon2ylC0sWE8H1NzvWU0
  NotBefore : 2020-06-27 07:15:16
  NotAfter  : 2030-06-30 07:15:16

upcoming root ca:
  not set

インポートに失敗する場合は、以下のテーブルからレコードを削除すれば良いはず。
証明書インポートで更新されるのは以下の2テーブルであるため。

MariaDB [openxpki]> delete from aliases;
Query OK, 4 rows affected (0.003 sec)

MariaDB [openxpki]> delete from certificate;
Query OK, 4 rows affected (0.002 sec)

OpenXPKIの開始

openxpkictlでアプリケーションサーバを起動する。

# openxpkictl start

http://localhost/openxpki へアクセスするとWebUIが表示される。
openxpkiがデフォルトで有効化するapache2のconfでは、httpアクセスはhttpsにリダイレクトされる。VirtualHostでドメインを指定しているので、環境に合わせて修正する。

テスト目的でとりあえずページを表示したい場合は、以下でsites-enabledを解除しておく。

a2dissite openxpki
systemctl restart apache2

WebUI日本語化

一部英表記のままの箇所もありますが、概ね日本語対応されている。
(日本のユーザの方がコミットしてくれている)

# sed -i -e "s/# \(ja_JP.*\)/\1/" /etc/locale.gen
# locale-gen
# vi /etc/openxpki/webui/default.conf
...

locale_directory: /usr/share/locale
default_language: ja_JP   # ja_JPにする
..

ソースの理解

ソースを読むには以下の知識があるとスムーズに進む。

参考リンク


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
目次
ダブルクリックで閉じるTOP | 閉じる
GO TO TOP