目次
はじめに
こんにちは、omkです。 ClientVPNで相互認証する際にeasy-rsaで認証局を建てて証明書を発行することがあると思います。 何年でも構いませんが出来るだけ証明書を更新しなくていいように設定しておくと楽です。プライベート認証局として内部で使う場合を前提にACMに登録して使うのでセキュリティ的にも大丈夫だという想定で進めます。当然ですが情報が漏れないようにご注意ください。
前提
CentOS7の環境で、こちらを参考に進めます。
https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/client-authentication.html#mutual
設定
git clone https://github.com/OpenVPN/easy-rsa.git
cd easy-rsa/easyrsa3
ここまではそのまま実行します。 easyrsa3配下の「openssl-easyrsa.cnf」が設定ファイルです。
less -N openssl-easyrsa.cnf
デフォルトだと28行目に
default_days = $ENV::EASYRSA_CERT_EXPIRE
とありました。EASYRSA_CERT_EXPIREという環境変数で指定するようです。 easy-rsaでは「vars」というファイルで変数を設定することができます。 easyrsa3配下の「vars.example」というファイルをコピーして編集していきます。
cp vars.example vars
vi vars
EASYRSA_CERT_EXPIREで検索すると129行目にありました。
#set_var EASYRSA_CERT_EXPIRE 825
825日になっています。 これを100年(36500日)にしてコメントアウトを外します。
set_var EASYRSA_CERT_EXPIRE 36500
ついでにCA自体の有効期限も100年にしておきます。EASYRSA_CERT_EXPIREの少し上にあります。
set_var EASYRSA_CA_EXPIRE 36500
以上で編集は完了です。エディタを保存して終了します。 最後にpkiを初期化します。
./easyrsa init-pki
以降で新規の証明書の有効期限を変えたい場合はvarsファイルを変更するだけで可能となります。初期化はしなくて構いません。
確認
では実際に証明書を発行してみて確認しましょう。まずCA証明書を発行します。
./easyrsa build-ca nopass
次にサーバ証明書を発行します。
./easyrsa build-server-full server nopass
次のように出ていたら成功です。36500日になっていることを確認しましょう。
Certificate is to be certified until Jul 13 02:37:43 2120 GMT (36500 days)
証明書からでも確認できます。
Validity
Not Before: Aug 6 02:37:43 2020 GMT
Not After : Jul 13 02:37:43 2120 GMT
クライアント証明書も同様に100年になっています。
まとめ
easy-rsaでサーバ証明書の有効期限を100年に設定できることを確認しました。 VPNエンドポイントの作り直しは面倒なので有効期限は長い方がいいですね。代わりに使わないクライアント証明書は失効させておきましょう。 https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/cvpn-working-certificates.html
以上です。
アーキテクト課のomkです。
AWSについて雑多に取り組んだ内容を発信しています!!