Amazon-VPC

ソフトウェアVPN接続の証明書更新やってみた。

クライアント証明書の更新手順など

前提

※あくまで設定値は検証環境のものです。
次の記事で作成した環境が存在する。
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エンドポイントに適用しているサーバー証明書を更新します。
image.png

次の箇所にそれぞれ、keyファイル、ca.crt及びcrtファイルは全文をコピーアンドペーストして再インポートを実行します。
image.png
これでACMにサーバ証明書をインポートすることができました。
ソフトウェアVPN接続の証明書更新は全て終了です。

お疲れ様でした!
では!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA