おはようございます!マネジメントオフィスいまむらの今村敦剛です。
この度、IDCフロンティアのIaaS型パブリッククラウドサービスを使い、OpenVPNサーバを構築しました。その構築方法を記録する第8回目です。今回は、VPNクライアントの鍵・証明書を作成します。
この連載の全体的な構成
この連載は、全10回を予定しています。今回は第8回目「VPNクライアントの鍵・証明書作成」です。
連載記事一覧
- 全体構想
- IaaS設定 - 仮想マシン作成
- IaaS設定 - IaaSネットワーク設定
- IaaS設定 - 操作環境整備
- IaaS設定 - DDNS設定
- VPNサーバ設定 - インストール
- VPNサーバ設定 - 鍵・証明書作成
- VPNサーバ設定 - server.conf作成
- VPNクライアント設定 - 鍵・証明書作成
- VPNクライアント設定 - client.ovpn作成
- VPNクライアント設定 - windows自動起動設定
クライアントに必要な鍵・証明書
OpenVPNで通信をするには、通信相手が正しいことを確認するために、いくつかの鍵・証明書の作成が必要です(イメージは下記の図のとおり)。第6回の記事では、これらの鍵・証明書のうち、認証局とサーバに必要な鍵・証明書を作成しました。今回はクライアント証明書とクライアント秘密鍵の作成について説明をします。
クライアント証明書とクライアント秘密鍵の作成
クライアント証明書とクライアント秘密鍵の作成も、IaaS側の仮想サーバ(今回の事例ではCentOS)で実行します。
ますは認証局のディレクトリに移動します。(以下のディレクトリ名の3.0.8は、easy-rsaのバージョンによっては違う数値になります。必ずご自身の環境を見て、適切なディレクトリに移動してください)
command
cd /usr/share/easy-rsa/3.0.8
このディレクトリで、以下のコマンドを実行すると、クライアント証明書とクライアント秘密鍵ができます。ただしコマンド実行前に注意していただきたいのは、以下のコマンドの"user1"と書いた部分です。これは、任意のクライアント名ですので、何でもよいのですが、サーバに接続する端末が複数台あるような場合は、きちんと管理できるように連番をつけるのがよいでしょう。(例えばuser1, user2, user3 ... のような感じで)
command
./easyrsa build-client-full user1 nopass
ちなみにこのコマンドのパラメータのひとつにno passと記述しています。このno passを記述しておくと、VPN接続時にパスワードなしで接続できます。セキュリティレベルを高めたい場合は、運用上少し手間にはなりますが、パスワードの設定もできます。(ぼく個人としては、パスワードは設定しませんでした)
パスワードを設定したい場合は、no passのパラメータなしでコマンドを実行すると、パスワードを訊いてきます。
これはクライアント証明書とクライアント秘密鍵が、以下のディレクトリにできたはずです。できているかどうかを確認してくださいね。
- クライアントの証明書:/usr/share/easy-rsa/3.0.8/pki/issued/user1.crt
- クライアントの秘密鍵:/usr/share/easy-rsa/3.0.8/pki/private/user1.key