以前のeasy-rsa(バージョン2)と大きく異なるのは以下の点です。
実行コマンドは easyrsa のみとなり、続く引数で実行する処理を切り替えるようになりました。
コマンド実行前に vars を呼び出す必要はなくなりました。easyrsaと同じディレクトリにvarsというファイルを配置し、その中で設定値を指定しておけば、自動的に読み込まれます(ただ、後述する「X509 DNモード」の新設により、以前とは異なりvarsファイルは作成しなくてもよいケースが多くなりました)。
秘密鍵や証明書を作成する際に含める情報を制御するための「X509 DNモード」と呼ばれるパラメータが追加されました。デフォルトは「cn_only」となっており、秘密鍵や証明書の作成にはCN(共通名)の情報だけが必要になりました(組織名や都道府県名などを設定する必要がなくなりました)。今まで同様にすべてのデータを含められるようにするには、このモードを「org」に変更します。
easy-rsaの最新版はGitHubから入手できます。使用する環境に合わせたパッケージをダウンロードしてください。今回の例ではLinux環境への導入手順を説明します。
ダウンロードしたファイルを展開しておきましょう。
[root@localhost ~]# tar xzf EasyRSA-3.0.0-rc1.tgz |
[root@localhost ~]# cd EasyRSA-3.0.0-rc1 |
[root@localhost EasyRSA-3.0.0-rc1]# ls |
COPYING ChangeLog Licensing README.quickstart.md doc easyrsa openssl-1.0.cnf vars.example x509-types |
init-pkiコマンドで認証局を初期化します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa init-pki |
init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /root/EasyRSA-3.0.0-rc1/pki |
これは認証局設置時にのみ実行します。
このコマンドを実行すると、easyrsaと同じディレクトリにpkiディレクトリが生成されます。認証局によって生成されるデータはここに保存されます。
build-caコマンドで認証局を作成します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa build-ca |
Generating a 2048 bit RSA private key .....................................................................+++ .....+++ writing new private key to '/root/EasyRSA-3.0.0-rc1/pki/private/ca.key' Enter PEM pass phrase: [パスフレーズを入力] Verifying - Enter PEM pass phrase: [パスフレーズを入力] ----- 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) [Easy-RSA CA]: ←任意のサーバー名入力(例:hogehoge.com) CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /root/EasyRSA-3.0.0-rc1/pki/ca.crt |
デフォルトのX509 DNモードが「cn_only」のため、共通名(Common Name)のみが問い合わせられます。デフォルト値でよければそのまま[Enter]キーを押していただいてもかまいません。
gen-dhコマンドでDHパラメータを生成します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa gen-dh |
Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ............................................................... ......................................................+........ .........................................................+..... ............................................................... ............................................................... ............................................................... ....................................................+.......... ..........................................+.................... ..............+........+....................................... ............................................................... ............................................................... ............................................................... ..............................................++*++* DH parameters of size 2048 created at /root/EasyRSA-3.0.0-rc1/pki/dh.pem |
以前のバージョンのbuild-key-serverコマンドと同様に、秘密鍵の作成から証明書の署名までまとめて行うには、build-server-fullコマンドを使用します。
デフォルトの動作では、パスフレーズの入力が求められ、そのパスフレーズによって秘密鍵が暗号化されます。パスフレーズを不要にしたい場合はnopassオプションを追加します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa build-server-full server1 nopass |
Generating a 2048 bit RSA private key .....................................+++ .............+++ writing new private key to '/root/EasyRSA-3.0.0-rc1/pki/private/server1.key' ----- Using configuration from /root/EasyRSA-3.0.0-rc1/openssl-1.0.cnf Enter pass phrase for /root/EasyRSA-3.0.0-rc1/pki/private/ca.key: [CAの署名用パスフレーズを入力] Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :PRINTABLE:'server1' Certificate is to be certified until Jan 21 05:57:57 2024 GMT (3650 days) Write out database with 1 new entries Data Base Updated |
以前のバージョンのbuild-keyコマンドと同様に、秘密鍵の作成から証明書の署名までまとめて行うには、build-client-fullコマンドを使用します。
サーバーの場合と同様、デフォルトの動作では、パスフレーズの入力が求められ、そのパスフレーズによって秘密鍵が暗号化されます。パスフレーズを不要にしたい場合はnopassオプションを追加します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa build-client-full client1 nopass |
Generating a 2048 bit RSA private key ...............................+++ ............................................................... ............................................................... ..+++ writing new private key to '/root/EasyRSA-3.0.0-rc1/pki/private/client1.key' ----- Using configuration from /root/EasyRSA-3.0.0-rc1/openssl-1.0.cnf Enter pass phrase for /root/EasyRSA-3.0.0-rc1/pki/private/ca.key: [CAの署名用パスフレーズを入力] Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :PRINTABLE:'client1' Certificate is to be certified until Jan 21 06:04:42 2024 GMT (3650 days) Write out database with 1 new entries Data Base Updated |
各コマンドによって生成されたファイルは、pkiディレクトリ内の各サブディレクトリに格納されています。
private : 秘密鍵
reqs : 証明書要求
issued : 証明書
この他に使用できるコマンドやオプションについては、Readmeファイルやヘルプを参照してください。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa |
または
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa help [コマンド名] |
でヘルプが参照できます。