CentOS7

easy-rsa 3で認証局を構築する

以前のバージョンとの違い

以前のeasy-rsa(バージョン2)と大きく異なるのは以下の点です。

実行コマンドは easyrsa のみとなり、続く引数で実行する処理を切り替えるようになりました。

コマンド実行前に vars を呼び出す必要はなくなりました。easyrsaと同じディレクトリにvarsというファイルを配置し、その中で設定値を指定しておけば、自動的に読み込まれます(ただ、後述する「X509 DNモード」の新設により、以前とは異なりvarsファイルは作成しなくてもよいケースが多くなりました)。

秘密鍵や証明書を作成する際に含める情報を制御するための「X509 DNモード」と呼ばれるパラメータが追加されました。デフォルトは「cn_only」となっており、秘密鍵や証明書の作成にはCN(共通名)の情報だけが必要になりました(組織名や都道府県名などを設定する必要がなくなりました)。今まで同様にすべてのデータを含められるようにするには、このモードを「org」に変更します。

easy-rsaのダウンロード

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]キーを押していただいてもかまいません。

DHパラメータの生成

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 [コマンド名]

でヘルプが参照できます。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-11 (土) 08:18:38