目次
クライアント証明書の更新手順など
前提
※あくまで設定値は検証環境のものです。
次の記事で作成した環境が存在する。
EC2をCAサーバ用として構築(EC2常設)
○ソフトウェアVPN接続やってみた。
○【AWS Client VPN】OpenVPN easy-rsaでサーバ証明書の有効期限を100年にする
なお、手順の中でTera Termを使用します。
クライアント証明書更新手順
前提条件のもと環境があると仮定して進めます。
ディレクトリを移動します。
cd easy-rsa/easyrsa3
既存クライアント証明書
例:client-test.key,client-test.crtがある場合
有効期限設定を確認
./easyrsa expire client-test
次が表示される。
$ ./easyrsa expire client-test
Using Easy-RSA 'vars' configuration:
* /home/ec2-user/easy-rsa/easyrsa3/vars
Please confirm you wish to expire the certificate
with the following subject:
subject=
commonName = client-test
serial-number = 337AD8F70EC63A07Bxxxxxxxxxxxxx
notAfter date = Jun 30 13:27:51 2124 GMT
Type the word 'yes' to continue, or any other input to abort.
Continue with expiry:
「yes」と入力して有効期限(日数)に同意します。
※現在の認証局は100年の有効期限となるようにEasy-RSAをあらかじめ設定したEC2で'vars'設定を行ったので、このように問いかけられています。
証明書署名要求を生成
./easyrsa gen-req client-test
次は表示例です。
$ ./easyrsa gen-req client-test nopass
Using Easy-RSA 'vars' configuration:
* /home/ec2-user/easy-rsa/easyrsa3/vars
WARNING!!!
An existing request file was found at
* /home/ec2-user/easy-rsa/easyrsa3/pki/reqs/client-test.req
Continuing with key generation will replace this request.
Type the word 'yes' to continue, or any other input to abort.
Confirm request overwrite:
「yes」で上書きを了承する。
続けて秘密鍵についても上書きの確認が表示されます。
表示例です。
WARNING!!!
An existing private key was found at
* /home/ec2-user/easy-rsa/easyrsa3/pki/private/client-test.key
Continuing with key generation will replace this key.
Type the word 'yes' to continue, or any other input to abort.
Confirm key overwrite:
「yes」で了承する。
続けて、プロンプトに従い、パスフレーズを入力します。
Generating a 2048 bit RSA private key
...........................................+++
....................................................................................................+++
writing new private key to '/home/ec2-user/easy-rsa/easyrsa3/pki/bd9dd13f/temp.2.1'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
続けてプロンプトにCommon Name(CN)を入力します。ここでCommon Name(CN)を変更することも可能です。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Common Name (eg: your user, host, or server name) [client-test]:client-test
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: /home/ec2-user/easy-rsa/easyrsa3/pki/reqs/client-test.req
* key: /home/ec2-user/easy-rsa/easyrsa3/pki/private/client-test.key
次にCSRを署名して新しい証明書を生成
蛇足:CSRは、デジタル証明書を取得するためのCAに対する申請書のような役割
./easyrsa sign-req client client-test
表示される例
$ ./easyrsa sign-req client client-test
Using Easy-RSA 'vars' configuration:
* /home/ec2-user/easy-rsa/easyrsa3/vars
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
You are about to sign the following certificate:
Requested CN: 'client-test'
Requested type: 'client'
Valid for: '36500' days
subject=
commonName = client-test
Type the word 'yes' to continue, or any other input to abort.
Confirm request details:
「yes」で続行します。
※ここで最終確認します。
yesで続行した場合次の表示が出ます。
Using configuration from /home/ec2-user/easy-rsa/easyrsa3/pki/18d7a4d3/temp.1.1
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'client-test'
Certificate is to be certified until Jun 30 14:42:42 2124 GMT (36500 days)
Write out database with 1 new entries
Data Base Updated
Notice
------
Certificate created at:
* /home/ec2-user/easy-rsa/easyrsa3/pki/issued/client-test.crt
ここからはローカルにcert,keyファイル及びエンドポイントの設定ファイルを揃えて、ovpnファイルを完成させておきます。
Tera TremのSSH SCPを使用する場合のファイルパスの例を記載します。
例:
/home/ec2-user/easy-rsa/easyrsa3/pki/issued/client-test.crt
/home/ec2-user/easy-rsa/easyrsa3/pki/private/client-test.key
サーバー証明書の更新手順
既存サーバー証明書
例:server-test.jp.key,server-test.jp.crtである場合
./easyrsa expire server-test.jp
クライアント証明書更新と同じようなプロンプトが表示されます。
$ ./easyrsa expire server-test.jp
Using Easy-RSA 'vars' configuration:
* /home/ec2-user/easy-rsa/easyrsa3/vars
Please confirm you wish to expire the certificate
with the following subject:
subject=
commonName = server-test.jp
serial-number = 668E6E32C4F8C3C46B5xxxxxxxxxxxxx
notAfter date = Jul 1 14:10:02 2124 GMT
Type the word 'yes' to continue, or any other input to abort.
Continue with expiry:
「yes」と入力して有効期限に同意します。
CSR(証明書署名要求)を生成
./easyrsa gen-req server-test.jp nopass
表示例です。
$ ./easyrsa gen-req server-test.jp nopass
Using Easy-RSA 'vars' configuration:
* /home/ec2-user/easy-rsa/easyrsa3/vars
WARNING!!!
An existing request file was found at
* /home/ec2-user/easy-rsa/easyrsa3/pki/reqs/server-test.jp.req
Continuing with key generation will replace this request.
Type the word 'yes' to continue, or any other input to abort.
Confirm request overwrite:
「yes」と入力して上書きを了承します。
続けて秘密鍵の上書きにも同意します。
WARNING!!!
An existing private key was found at
* /home/ec2-user/easy-rsa/easyrsa3/pki/private/server-test.jp.key
Continuing with key generation will replace this key.
Type the word 'yes' to continue, or any other input to abort.
Confirm key overwrite:
「yes」と入力します。
次にCommonNameを入力します。
Generating a 2048 bit RSA private key
...............................................................................................................+++
..................+++
writing new private key to '/home/ec2-user/easy-rsa/easyrsa3/pki/2777c1c6/temp.2.1'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [server-test.jp]:server-test.jp
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: /home/ec2-user/easy-rsa/easyrsa3/pki/reqs/server-test.jp.req
* key: /home/ec2-user/easy-rsa/easyrsa3/pki/private/server-test.jp.key
CSRに署名して新しい証明書を生成します。
./easyrsa sign-req server server-test.jp
最終確認が表示されます。
$ ./easyrsa sign-req server server-test.jp
Using Easy-RSA 'vars' configuration:
* /home/ec2-user/easy-rsa/easyrsa3/vars
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
You are about to sign the following certificate:
Requested CN: 'server-test.jp'
Requested type: 'server'
Valid for: '36500' days
subject=
commonName = server-test.jp
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /home/ec2-user/easy-rsa/easyrsa3/pki/456a753f/temp.1.1
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'server-test.jp'
Certificate is to be certified until Jul 1 15:19:10 2124 GMT (36500 days)
Write out database with 1 new entries
Data Base Updated
Notice
------
Certificate created at:
* /home/ec2-user/easy-rsa/easyrsa3/pki/issued/server-test.jp.crt
プロンプトで yes と入力して続行します。
これでサーバー証明書の更新作業は終了です。
ACMに新たなサーバー証明書をインポートし、クライアントVPNエンドポイントにサーバー証明書を適用していきます(証明書更新前の既存環境の証明書は、クライアント証明書をクライアントVPNエンドポイントに適用せず、サーバー証明書のみで構成しています。)。
任意のディレクトリにファイルをコピーし、インポートコマンドを実行していきます。
mkdir ~/custom_folder2/
cp pki/ca.crt ~/custom_folder2/
cp pki/issued/server-test.jp.crt ~/custom_folder2/
cp pki/private/server-test.jp.key ~/custom_folder2/
cd ~/custom_folder2/
Tera Termを使用してサーバー証明書を次のパスを例として再びローカルに移動させます。
/home/ec2-user/custom_folder2/server-test.jp.crt
/home/ec2-user/custom_folder2/server-test.jp.key
/home/ec2-user/custom_folder2/ca.crt
ACMにサーバー証明書をインポート
次にコンソールからACMの画面へ移動してインポートします。
現在使用しているサーバー証明書を選択し、再インポートを行うことで、クライアントVPNエンドポイントに適用しているサーバー証明書を更新します。
次の箇所にそれぞれ、keyファイル、ca.crt及びcrtファイルは全文をコピーアンドペーストして再インポートを実行します。
これでACMにサーバ証明書をインポートすることができました。
ソフトウェアVPN接続の証明書更新は全て終了です。
お疲れ様でした!
では!
1つずつ誠実に取り組み、技術を身に着けて発信も併せて行っていきます!