VPN通信に必要な「証明書」と「秘密鍵」を作成します。
まず、一号機、二号機のそれぞれで証明書と秘密鍵を格納するディレクトリを作成しておきます。
# mkdir -p /etc/openvpn/keys
証明書と秘密鍵は一号機で作成します。作成する証明書と秘密鍵は以下の通りです。
ファイル名 | 用途 | 格納先サーバ |
---|---|---|
ca.crt | CA証明書 | VPNサーバ/VPNクライアント |
ca.key | CAキー | VPNサーバ/VPNクライアント |
ta.key | TLS認証鍵 | VPNサーバ/VPNクライアント |
server.crt | VPNサーバ証明書 | VPNサーバ |
server.key | VPNサーバ秘密鍵 | VPNサーバ |
dh2048.pem | DHパラメーター | VPNサーバ |
client.crt | VPNクライアント証明書 | VPNクライアント |
client.key | VPNクライアント秘密鍵 | VPNクライアント |
では、CA証明書から作成していきましょう。まず、ディレクトリを移動します。
cd /etc/openvpn/easy-rsa/2.0
「vars」ファイルを修正します。修正するのは、64〜69行目にあるサーバ情報の部分です。こちらは自身の環境に合わせて適宜入力してください。
# vi vars <省略> export KEY_COUNTRY="JP" #国名 export KEY_PROVINCE="Tokyo" #都道府県 export KEY_CITY="Sumida-Ku" #町 export KEY_ORG="bk-proxy" #システム名 export KEY_EMAIL=xxx@xxxx.xxx #メールアドレス export KEY_OU=”ThirdWare Inc.“ #組織名 <省略>
続いて、以下のコマンドを順番に実行していきます。
# source ./vars # ./clean-all # ./build-ca
# source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys # ./clean-all # ./build-ca <表示省略> #
./build-caのコマンド実行後に幾つかの設問がありますが、そのまま「Enter」で進めて問題はありません。
TLS鍵を作成します。
# openvpn --genkey --secret /etc/openvpn/easy-rsa/2.0/keys/ta.key
サーバ用証明書と秘密鍵を作成します。
# cd /etc/openvpn/easy-rsa/2.0 # ./build-key-server server
先ほどと同様に、./build-key-server serverコマンドの実行後に幾つかの設問がありますが、途中まで「Enter」で進めて問題ありません。最後に2つの設問では、「y」を入力します。
<省略> Certificate is to be certified until Mar 4 07:00:20 2026 GMT (3650 days) Sign the certificate? [y/n]:y #yと入力 1 out of 1 certificate requests certified, commit? [y/n]y #yと入力 Write out database with 1 new entries Data Base Updated #
DHパラメーターを作成します。
# openssl dhparam -out /etc/openvpn/keys/dh2048.pem 2048
DHパラメーターは、作成に少し時間がかかります。コマンドプロンプトが返ってくるまで数十秒待ちましょう。
クライアント用の証明書と秘密鍵を作成します。
# cd /etc/openvpn/easy-rsa/2.0 # ./build-key client
サーバ用証明書の作成時と同様に、./build-key clientコマンドの設問も、途中まで「Enter」で進め、最後に2つの設問で「y」を入力します。
<省略> Certificate is to be certified until Mar 4 07:04:58 2026 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated #
以上で証明書と秘密鍵を作成できました。これらを適切なディレクトリへ配置します。
一号機で実行します。
# cd /etc/openvpn/easy-rsa/2.0/keys # cp ca.crt ca.key server.crt server.key ta.key /etc/openvpn/keys/
作成した証明書と秘密鍵を、二号機へscpコマンドでコピーします。
# cd /etc/openvpn/easy-rsa/2.0/keys # scp ca.crt ta.key client.crt client.key root@<二号機のIPアドレス>:/etc/openvpn/keys/
上記ではrootユーザーを使っていますが、自身の環境に合わせて読み替えて実行してください。
なお、クラウド環境ではrootでのログインを禁止していることがあります。この場合は、ログイン可能なユーザーのホームディレクトリなどに一度ファイルを置いて、最終的に「/etc/openvpn/keys/」へ配置するようにします。
参考として、Amazon Web Services(AWS)環境での方法を説明します。コピー先のOSとしてRed Hat Enterprise Linux 7を想定しています。ec2-userが存在しない場合は、ログイン可能なユーザーのhome領域にコピーしてください。
# cd /etc/openvpn/easy-rsa/2.0/keys # scp -i <ログイン用の鍵ファイル> ca.crt ta.key client.crt client.key ec2-user@<AWS環境のグローバルIPアドレス>:/home/ec2-user
# cd /home/ec2-user # cp ca.crt client.crt client.key ta.key /etc/openvpn/keys/
Copyright © ITmedia, Inc. All Rights Reserved.