能書き
自宅サーバー構築譚:基本構想に基づく自宅サーバー構築、前回の続き。
前回はオレオレ認証局を作成しましたが、今回は証明書を作成してこの認証局で認証してみます。
参考文献:easy-rsaで簡単に自宅CA構築+自己証明書発行 - paloma blog
参考文献:easy-rsaでプライベートCA(認証局)を作ってオレオレ証明書ではないローカル用TLS証明書の管理をする
サーバー鍵
有効期限
これから作る証明書の有効期限を100年にしておきます。忘れた頃に期限が切れるとパニクりますので。
参考文献:【AWS Client VPN】OpenVPN easy-rsaでサーバ証明書の有効期限を100年にする - (技)DENET 技術ブログ
前回の続きでしたら、CAの有効期限は設定しましたが、証明書の有効期限は設定していません。
cd /opt/CA/demoCA/
grep EASYRSA_CERT_EXPIRE vars
この場合は下記のコマンドを実行します。EASYRSA_CERT_EXPIRE
の設定が済んでいたら下記は不要です。
echo 'set_var EASYRSA_CERT_EXPIRE "36500"' >>vars
鍵生成
EasyRSA の新しいバージョンでは、秘密鍵やCSR(Certificate Signing Request、証明書署名要求)を作らなくてよいらしい。コマンド一発で全部やってくれちゃいます。
サーバー名がexample.home
の場合、下記コマンドを実行します。
途中で認証局 demoCA のパスフレーズを要求されますので、それを入力します。
cd /opt/CA/demoCA/
./easyrsa build-server-full example.home nopass
生成された各ファイルは、pkiディレクトリ内の各サブディレクトリに格納されます。
- 秘密鍵:
pki/private
- 証明書要求:
pki/reqs
- 証明書:
pki/issued
鍵確認
生成した鍵を確認。
# openssl x509 -text -in pki/issued/example.home.crt -text | grep -E "Issuer:|Subject:"
Issuer: CN = demoCA
Subject: CN = example.home
有効期限は100年後になっています。
# openssl x509 -dates -noout -in pki/issued/example.home.crt
notBefore=Dec 15 06:26:22 2022 GMT
notAfter=Nov 21 06:26:22 2122 GMT
仕舞い
鍵を作って署名するのは簡単でした。
本当は、この鍵を仕込んで何かのサーバーが暗号化されるのを確認したかったのですが、それはまた今度。サーバーを何も立てていないので。うーん残念。
とはいえ、これで暗号の為の鍵が出来ました。やったね