OpenXPKIでプライベート認証局を構築したい!

Dockerで構築したい!

面倒を避けるためにDockerで構築しました。
openxpki-dockerのREADME.mdの手順の通りにやったはずですが、それでもエラーがでて困り果てていました。

というのも”Docker Desktop for Windows”(というかWindows)ではシンボリックリンクが壊れるようです。なのでconfigリポジトリ中の”config.d/realm/democa/”に”config.d/realm/realm.tpl/”内の全てのファイルやディレクトリをコピーする必要があるのです。
ところが、私は間違えて”config.d/realm/”に”config.d/realm/realm.tpl/*”をコピーしていたのでエラーになっていたのです。

したがって、上記を含めてREADME.mdの正しい手順の通り実行すれば、以下のDockerfileもdocker-compose.yamlも必要ないはずです。

手順0. openxpki-dockerをダウンロード

# 正直次のdockerfileとcomposeファイルがあれば必要ないはずですが一応
git clone https://github.com/openxpki/openxpki-docker.git
cd ./openxpki-docker/
git checkout v3.8

# Windowsコマンドは分からないので…
# cp contrib/wait_on_init.yaml  openxpki-config/config.d/system/local.yaml

手順1. 専用のDockerfileを作成

私の環境ではファイルの名前は”openxpki.dockerfile”としましたが、ご自由に。

FROM whiterabbitsecurity/openxpki3

RUN /bin/bash -c "cd /root/ \
    && apt update -y \
    && apt install git -y \
    && git clone https://github.com/openxpki/openxpki-config.git --single-branch --branch=community \
    && cd ./openxpki-config/ \
    && git checkout v3.24 \
    && rm -rf /etc/openxpki/* \
    && rm ./contrib/sql/schema-mysql.sql ./contrib/sql/schema-oracle.sql ./contrib/sql/schema-psql.sql ./contrib/sql/schema-sqlite.sql \
    && mv -f ./* /etc/openxpki/ \
    && /bin/bash"

手順2. docker-compose.ymlを修正

version: "3"

services:
  db:
#    restart: always
    image: mariadb:10
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - openxpkidb:/var/lib/mysql
      - openxpkidbsocket:/var/run/mysqld/
      # - openxpki-config/contrib/sql/schema-mysql.sql:/docker-entrypoint-initdb.d/schema-mysql.sql
      - openxpki-sql:/docker-entrypoint-initdb.d/
    environment:
      MYSQL_DATABASE: openxpki
      MYSQL_USER: openxpki
      MYSQL_PASSWORD: openxpki 
      MYSQL_ROOT_PASSWORD: topsecret
    depends_on:
      make_openxpki:
        condition: service_completed_successfully 
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 8s
  
  make_openxpki:
    # image: whiterabbitsecurity/openxpki3
    image: ori/openxpki
    working_dir: /root/
    command: /bin/bash
    volumes:
      - openxpki-config:/etc/openxpki/
      - openxpki-sql:/etc/openxpki/contrib/sql/

  openxpki-server:
#    restart: always
    # image: whiterabbitsecurity/openxpki3
    image: ori/openxpki
    command: /usr/bin/openxpkictl start --no-detach
    # command: /bin/bash /etc/openxpki/contrib/sampleconfig.sh && /usr/bin/openxpkictl start --no-detach
    volumes:
      - openxpki-config:/etc/openxpki
      - openxpkilog:/var/log/openxpki
      - openxpkisocket:/var/openxpki/
      - openxpkidbsocket:/var/run/mysqld/
      # this will not work on all OS
      - "/etc/timezone:/etc/timezone:ro"
      - "/etc/localtime:/etc/localtime:ro"
    depends_on:
        db:
          condition: service_healthy

  openxpki-client:
#    restart: always
    # image: whiterabbitsecurity/openxpki3
    image: ori/openxpki
    command: /usr/bin/start-apache
    ports:
      - "8080:80/tcp"
      - "8443:443/tcp"
    volumes:
      - openxpki-config:/etc/openxpki
      - openxpkilog:/var/log/openxpki
      - openxpkisocket:/var/openxpki/
      - openxpkidbsocket:/var/run/mysqld/
    depends_on:
        - openxpki-server

volumes:
  openxpkidb:
  openxpkisocket:
  openxpkidbsocket:
  openxpkilog:
  openxpki-config:
  openxpki-sql:

手順3. OpenXPKIを起動

docker build -f openxpki.dockerfile -t ori/openxpki .
docker compose up -d

手順4. サイトにアクセスしてみる

起動が完了したら次のURLへGo!サイトのURLは以下の通り。
“https://localhost:8443/openxpki/#/openxpki/home”

ユーザ情報(ログイン/パスワード)は次のいづれかから。それぞれ権限が違うようだが詳細は不明。これらのアカウントを利用する場合は”Authentication method“欄で”Test Accounts“を選択しなければならないので注意。

  • rose / openxpki(roll:RA Operator)
  • rob / openxpki(roll:RA Operator)
  • alice / openxpki(roll:Users)
  • bob / openxpki(roll:Users)
  • caop / openxpki(CA Operator)
  • raop / openxpki(???)

コメントを残す