Windows Server でサーバーとクライアントの証明書とそれぞれのキーを生成して ACM にアップロードする方法を教えてください。
最終更新日: 2020 年 4 月 10 日
Windows Server でサーバーとクライアントの証明書とそれぞれのキーを生成して、AWS Certificate Manager (ACM) にアップロードする方法を教えてください。
解決方法
サーバーとクライアントの証明書とそれぞれのキーを生成する
1. OpenVPN コミュニティのダウンロードページに移動します。
2. 実行中の Windows OS バージョンの Windows インストーラ (.exe) ファイルを選択します。その後、[実行] をクリックします。
3. OpenVPN セットアップウィザードを完了します。
[次へ] を選択します。
ライセンス契約を確認し、[同意する] を選択します。
[コンポーネントを選択] で、[EasyRSA 2 証明書管理スクリプト] を選択します。
[次へ] を選択し、次に、[インストール] をクリックします。
4. OpenVPN ソフトウェアをインストールしたら、コマンドプロンプトを開き、[easy-rsa] フォルダに移動します。
cd \Program Files\OpenVPN\easy-rsa
5. OpenVPN 設定を開始します。
init-config
6. テキストエディタで vars.bat ファイルを開きます。
notepad vars.bat
KEY_Size=2048 を設定します。次に、KEY_COUNTRY、KEY_PROVINCE、KEY_CITY、KEY_ORG、KEY_EMAIL の値を設定します。これらのパラメータは、どれも空白にしてはいけません。
テキストエディタを保存して閉じます。
7. 次のコマンドを実行して、認証機関 (CA) の証明書に記載されている上記の変数を設定し、パブリックキーインフラストラクチャ (PKI) を初期化して、CA 認定を構築します。
vars
clean-all
build-ca
プロンプトで、すべてのフィールドをデフォルト値のままにします。必要に応じて、[共通名] をサーバーのドメイン名に変更できます。
8. 次のコマンドを実行して、サーバーの証明書とプライベートキーを生成します。
build-key-server server
プロンプトで、server.example.com 形式を使用してサーバーのドメイン名に [共通名] を変更します。残りのフィールドはすべてデフォルト値のままにします。
9. 次のコマンドを実行して、クライアントの証明書とプライベートキーを生成します。
build-key client1
プロンプトで、client1.example.com の形式を使用して [共通名] をクライアントのドメイン名に変更します。残りのフィールドはすべてデフォルト値のままにします。
10. (省略可能) 必要に応じて、追加のクライアント証明書とキーを作成します。
build-key client2
プロンプトで、client2.example.com の形式を使用して [共通名] をクライアントのドメイン名に変更します。残りのフィールドはすべてデフォルト値のままにします。
重要: 上記の形式通りに共通名を設定しない場合、証明書を ACM にインポートするときにドメイン名は使用できません。その結果、証明書は、AWS クライアント VPN エンドポイントの作成時にサーバー証明書またはクライアント証明書を指定するためのオプションとして利用できません。
サーバーとクライアントの証明書およびキーを ACM にインポートする
注意: サーバー証明書とクライアント証明書、およびそれぞれのキーは、C:\Program Files\OpenVPN\easy-rsa\keys で使用できます。
1. server.crt、server.key、client1.crt、client1.key、および ca.crt ファイルを開きます。
2. [ACM コンソール] を開き、[証明書をインポート] を選択します。
3. [証明書をインポート] ページで、コンテンツをコピーして貼り付けます。
server.crt ファイルから [証明書の本文] にコピーして貼り付けます。
server.key ファイルから [証明書のプライベートキー] にコピーして貼り付けます。
ca.crt ファイルから [証明書チェーン] にコピーして貼り付けます。
4. [インポート] を選択して、サーバー証明書をインポートします。
5. [証明書をインポート] をもう一度選択し、コンテンツをコピーして貼り付けます。
client1.crt ファイルから [証明書の本文] にコピーして貼り付けます。
client1.key ファイルから [証明書のプライベートキー] にコピーして貼り付けます。
ca.crt ファイルから [証明書チェーン] にコピーして貼り付けます。
6. [インポート] を選択して、クライアント証明書をインポートします。
または、AWS コマンドラインインターフェイス (AWS CLI) を使用して、サーバーとクライアントの証明書とそのキーを ACM にインポートできます。
cd C:\Program Files\OpenVPN\easy-rsa\keys
aws acm import-certificate --certificate file://"C:\Program Files\OpenVPN\easy-rsa\keys\server.crt" --private-key file://"C:\Program Files\OpenVPN\easy-rsa\keys\server.key" --certificate-chain file://"C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt"
aws acm import-certificate --certificate file://"C:\Program Files\OpenVPN\easy-rsa\keys\client1.crt" --private-key file://"C:\Program Files\OpenVPN\easy-rsa\keys\client1.key" --certificate-chain file://"C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt"
サーバーとクライアントの証明書が正常に作成され、インポートされたことを確認する
1. [ACM コンソール] を開きます。
2. 証明書リストで、サーバー証明書とクライアント証明書の [ステータス列] に [発行済み] と表示されていることを確認します。
関連情報
相互認証 (AWS クライアント VPN 用)