こんにちは!イーゴリです。
前回の記事では、自己証明書を発行し、AWS Client VPNを構築しましたが、サーバーの証明書はデフォルトの期限が2年しかありませんので、この記事では、OpenVPN easy-rsaで証明書の有効期限を100年にする方法をご紹介致します。
注意点:
- 有効期限の長いクライアント証明書を使う場合は、紛失時に失効する運用を想定しましょう。
- 証明書の生成時に利用した暗号化アルゴリズムが、長い期間の経過により技術陳腐化したり脆弱性が見つかる可能性があります。
[ec2-user@ip-10-123-10-12 ~]$ cd ~ [ec2-user@ip-10-123-10-12 ~]$ yum git [ec2-user@ip-10-123-10-12 ~]$ sudo yum update -y ~~ログを省略~~ Complete! [ec2-user@ip-10-123-10-12 ~]$ git version git version 2.32.0
OpenVPN easy-rsaをインストールします。
[ec2-user@ip-10-123-10-12 ~]$ git clone https://github.com/OpenVPN/easy-rsa.git Cloning into 'easy-rsa'... remote: Enumerating objects: 3296, done. remote: Counting objects: 100% (1155/1155), done. remote: Compressing objects: 100% (592/592), done. remote: Total 3296 (delta 572), reused 1102 (delta 534), pack-reused 2141 Receiving objects: 100% (3296/3296), 25.46 MiB | 12.21 MiB/s, done. Resolving deltas: 100% (1514/1514), done.
[ec2-user@ip-10-123-10-12 ~]$ cd easy-rsa/easyrsa3/ [ec2-user@ip-10-123-10-12 easyrsa3]$ cp vars.example vars
各証明書の有効期限を100年に変更し、pkiのディレクトリに移動します。
[ec2-user@ip-10-123-10-12 easyrsa3]$ vi vars set_var EASYRSA_CA_EXPIRE 36500 set_var EASYRSA_CERT_EXPIRE 36500 set_var EASYRSA_CRL_DAYS 36500 [ec2-user@ip-10-123-10-12 easyrsa3]$ mv vars pki/ #pkiディレクトリがない場合、不要
※サーバー証明書/クライアント証明書のみ(CA証明書の期限はデフォルトのまま→10年)期限を伸ばしたい場合、「EASYRSA_CERT_EXPIRE」のみを変更します。
新しい PKI 環境を初期化します。
[ec2-user@ip-10-123-10-12 easyrsa3]$ ./easyrsa init-pki * Notice: init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: * /home/ec2-user/easy-rsa/easyrsa3/pki IMPORTANT: Easy-RSA 'vars' file has now been moved to your PKI above.
新しい認証機関 (CA) を構築します。
[ec2-user@ip-10-123-10-12 easyrsa3]$ ./easyrsa build-ca nopass * Notice: Using Easy-RSA configuration from: /home/ec2-user/easy-rsa/easyrsa3/pki/vars * Notice: Using SSL: openssl OpenSSL 1.0.2k-fips 26 Jan 2017 ~~ログを省略~~ Common Name (eg: your user, host, or server name) [Easy-RSA CA]:test-ca * Notice: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/ec2-user/easy-rsa/easyrsa3/pki/ca.crt
[/home/ec2-user/easy-rsa/easyrsa3/pki/ca.crt]がCAのルート証明書です。
下記のコマンドで自分自身(Subject)及び認証局(Issuer)を確認することができます。期限は2122年(100年間)になっていますね。
[ec2-user@ip-10-123-10-12 ~]$ openssl x509 -text -noout -in pki/ca.crt Certificate: Data: Version: 3 (0x2) Serial Number: 87:13:cc:77:81:3c:27:e4 Signature Algorithm: sha256WithRSAEncryption Issuer: CN=test-ca Validity Not Before: May 17 08:54:35 2022 GMT Not After : Apr 23 08:54:35 2122 GMT Subject: CN=test-ca 〜省略〜
サーバーの証明書とキーを生成します。
[ec2-user@ip-10-123-10-12 easyrsa3]$ ./easyrsa build-server-full server nopass 〜省略〜 Certificate is to be certified until Apr 23 08:55:58 2122 GMT (36500 days) 〜省略〜
証明書の確認:
[ec2-user@ip-10-123-10-12 easyrsa3]$ openssl x509 -text -noout -in pki/issued/server.crt Certificate: Data: Version: 3 (0x2) Serial Number: 57:6d:56:3c:10:34:49:bf:a0:0e:34:12:04:6b:b0:41 Signature Algorithm: sha256WithRSAEncryption Issuer: CN=test-ca Validity Not Before: May 17 08:55:58 2022 GMT Not After : Apr 23 08:55:58 2122 GMT Subject: CN=server 〜省略〜
クライアント証明書及び鍵を発行する必要がある場合、同じように発行します。
[ec2-user@ip-10-123-10-12 easyrsa3]$ ./easyrsa build-client-full client123.domain.tld nopass 〜省略〜 Certificate is to be certified until Apr 23 08:56:10 2122 GMT (36500 days) 〜省略〜
証明書の確認:
[ec2-user@ip-10-123-10-12 easyrsa3]$ openssl x509 -text -noout -in pki/issued/client123.domain.tld.crt Certificate: Data: Version: 3 (0x2) Serial Number: ba:9f:51:b2:3c:29:ef:d1:e5:27:4d:2c:a1:1c:8f:39 Signature Algorithm: sha256WithRSAEncryption Issuer: CN=test-ca Validity Not Before: May 17 08:56:10 2022 GMT Not After : Apr 23 08:56:10 2122 GMT Subject: CN=client123.domain.tld 〜省略〜
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽