0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

私的サーバー構築日誌:オレオレ認証局が認証する証明書

Posted at

能書き

私的サーバー構築日誌:仕切り直しからの自宅サーバー構築、前回の続きです。

証明書の話は以前もやりまして、その焼き直しですが。そのまま再掲でも詰まらないので、関連コマンドをDockerコンテナの中に封じ込めます。その辺は前回同様ですな。

目標

  • 証明書(サーバー鍵)を作成します。
  • easy-rsaを使用して構築したオレオレ認証局で、証明書を認証します。
  • 前回構築したDockerコンテナ内で操作します。

参考文献

認証局のDockerコンテナ

前回構築した通りなら、操作ユーザーはcertになります。

CA_USER=cert
sudo su $CA_USER

Dockerコンテナを起動し、コンテナ内に入ります。

cd
docker compose up -d
docker compose exec -e CA_USER=$USER ca /bin/bash
コンテナ内
su $CA_USER

前回構築した通りなら、認証局の名前はdemoCAになります。

コンテナ内
CA_NAME=demoCA

認証局のディレクトリに移動します。

コンテナ内
cd /mnt/$CA_NAME

サーバー鍵

有効期限

これから作る証明書の有効期限を100年にしておきます。忘れた頃に期限が切れるとパニクりますので。

前回の続きでしたら、CAの有効期限は設定しましたが、証明書の有効期限は設定していません。

コンテナ内
grep EASYRSA_CERT_EXPIRE pki/vars

この場合は下記のコマンドを実行します。EASYRSA_CERT_EXPIREの設定が済んでいたら下記は不要です。

期間はお好みで。今回は100年にしました。

コンテナ内
echo 'set_var EASYRSA_CERT_EXPIRE "36524"' >>pki/vars

鍵生成

EasyRSA の新しいバージョンでは、秘密鍵やCSR(Certificate Signing Request、証明書署名要求)を作らなくてよいらしい。コマンド一発で全部やってくれちゃいます。

サーバー名がexample.homeの場合、下記コマンドを実行します。
途中で認証局 demoCA のパスフレーズを要求されますので、それを入力します。

コンテナ内
SV_NAME=example.home
コンテナ内
./easyrsa build-server-full $SV_NAME nopass

生成された各ファイルは、pkiディレクトリ内の各サブディレクトリに格納されます。

  • 秘密鍵: pki/private
  • 証明書要求: pki/reqs
  • 証明書: pki/issued

鍵確認

生成した鍵を確認しましょう。

コンテナ内
openssl x509 -text -in pki/issued/$SV_NAME.crt -text | grep -E "Issuer:|Subject:"
openssl x509 -dates -noout -in pki/issued/$SV_NAME.crt

今回はこんな結果になる筈です。有効期限は100年後になっています。

コンテナ内
$ openssl x509 -text -in pki/issued/$SV_NAME.crt -text | grep -E "Issuer:|Subject:"
        Issuer: CN = demoCA
        Subject: CN = example.home
$ openssl x509 -dates -noout -in pki/issued/$SV_NAME.crt
notBefore=Oct 17 09:07:27 2023 GMT
notAfter=Oct 17 09:07:27 2123 GMT

コンテナ停止

鍵を生成できたら、Dockerコンテナは停止しておきましょう。

コンテナ内
exit
exit
ホスト側
docker compose down

仕舞い

鍵を作って署名するのは簡単でした。

本当は、この鍵を仕込んで何かのサーバーが暗号化されるのを確認したかったのですが、それはまた今度。サーバーを何も立てていないので。うーん残念。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?