Ubuntu 22.04 easy-rsaを使用したTLS証明書の作成

目次に戻る

概要

easy-rsaを使用して内部用の自己署名証明書を作成します。

インストール

myadmin@ubuntu:~$ sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install easy-rsa

設定

実行ファイルの配置

実行ファイルを配置します。下記の配置先は本稿の例となります。以前、easy-rsaのバージョンアップに追随できるように/usr/share/easy-rsaのシンボリックリンクを作成する方法をとっていましたが、varsが読み込まれない問題がありシンプルにコピーして使用しています。

myadmin@ubuntu:~$ cp -a /usr/share/easy-rsa ~/work/easy-rsa

vars

デフォルト値

コメント行を除き成形した設定ファイルは下記の通りです。

myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' work/easy-rsa/vars.example | expand | tr -s [:space:] | sed 's/^\s/    /g'
if [ -z "$EASYRSA_CALLER" ]; then
    echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
    echo "This is no longer necessary and is disallowed. See the section called" >&2
    echo "'How to use this file' near the top comments for more details." >&2
    return 1
fi

設定値

設定ファイルを作成します。varsが正しく読み込まれる状態であればここで設定した値がデフォルト値となります。証明書の有効期限(CERT_EXPIRE)を10年としています。

myadmin@ubuntu:~$ cat <<"EOF" > ~/work/easy-rsa/vars
if [ -z "$EASYRSA_CALLER" ]; then
    echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
    echo "This is no longer necessary and is disallowed. See the section called" >&2
    echo "'How to use this file' near the top comments for more details." >&2
    return 1
fi
set_var EASYRSA_REQ_COUNTRY "JP"
set_var EASYRSA_REQ_PROVINCE "Province"
set_var EASYRSA_REQ_CITY "City"
set_var EASYRSA_REQ_ORG "si1230.com"
set_var EASYRSA_REQ_EMAIL "myadmin@si1230.com"
set_var EASYRSA_REQ_OU "administrator"
set_var EASYRSA_CERT_EXPIRE 3650
set_var EASYRSA_CRL_DAYS 3650
set_var EASYRSA_DIGEST "sha512"
EOF

作業用ディレクトリに移動

easy-rsaコマンドは実行ファイルが存在するディレクトリ内で実行する必要があるため移動します。

myadmin@ubuntu:~$ cd ~/work/easy-rsa

PKIディレクトリの初期化

init-pkiコマンドで初期化されます。実行すると作成済みの証明書が全て削除されます。

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa init-pki

ルート証明書の作成

ルート証明書を作成します。

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa build-ca

Enter New CA Key Passphrase: password
Re-Enter New CA Key Passphrase: password

Common Name (eg: your user, host, or server name) [Easy-RSA CA]: si1230.com CA
myadmin@ubuntu:~$ openssl x509 -text -noout -in ~/work/easy-rsa/pki/ca.crt

サーバー証明書の作成例#1

#1はワイルドカード証明書を作成します。自己署名証明書は自由に発行が可能な為、ワイルドカード証明書を作成しておくと管理する証明書数を削減できます。

alt-nameは必須ではありませんが必要とするブラウザもあるため基本的に設定する前提が良いでしょう。証明書の有効期限は、Apple製品等の証明書の有効期限を厳密に確認するクライアント用にデフォルト値の10年から1年に変更しています。

build-server-fullコマンドはコモンネームで指定したFQDNがそのまま証明書のファイル名になります。ワイルドカード証明書では*.si1230.com.crtとなり扱いづらいため必要に応じてリネームしておきます。

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa --subject-alt-name="DNS:*.si1230.com" --days=365 build-server-full *.si1230.com nopass
Enter pass phrase for /home/myadmin/work/easy-rsa/pki/private/ca.key: password
myadmin@ubuntu:~$ openssl x509 -text -noout -in ~/work/easy-rsa/pki/issued/\*.si1230.com.crt

サーバー証明書の作成例#2

#2はLDAP(389 directory server)用のサーバー証明書を作成します。Apple製品のような特別な証明書要求がない限り、証明書の有効期限は余裕がある期間で良いでしょう(システムの想定運用期間に合わせて等)。

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa --subject-alt-name="DNS:ldap.si1230.com" build-server-full ldap.si1230.com nopass
Enter pass phrase for /home/myadmin/work/easy-rsa/pki/private/ca.key: password
myadmin@ubuntu:~$ openssl x509 -text -noout -in ~/work/easy-rsa/pki/issued/ldap.si1230.com.crt

証明書廃止リストの作成

証明書廃止リスト(CRL)は一度失効させた証明書が必要になる為、dummyのクライアント証明書を作成して失効させてからCRLを作成します。

dummy証明書の作成

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa build-client-full dummy nopass

Enter pass phrase for /home/myadmin/work/easy-rsa/pki/private/ca.key: password

dummy証明書の失効

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa revoke dummy

Type the word 'yes' to continue, or any other input to abort.
  Continue with revocation:  yes

Enter pass phrase for /home/myadmin/work/easy-rsa/pki/private/ca.key: password

証明書廃止リストの作成

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa gen-crl

Enter pass phrase for /home/myadmin/work/easy-rsa/pki/private/ca.key: password

DHパラメータ

DHパラメータを作成します。

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa gen-dh

クライアント証明書

クライアント証明書を作成します。

myadmin@ubuntu:~/work/easy-rsa$ ./easyrsa --subject-alt-name="DNS:client.si1230.com" build-client-full client.si1230.com nopass
Enter pass phrase for /home/myadmin/work/easy-rsa/pki/private/ca.key: password
myadmin@ubuntu:~$ openssl x509 -text -noout -in ~/work/easy-rsa/pki/issued/client.si1230.com

自己署名証明書の配置

自己署名証明書を任意のディレクトリに配置します。

これは設定ではなく管理の仕方によるものです。例えばシステム全体で共通の自己署名証明書を使用するのであれば、ルート証明書、ワイルドカード証明書を全てのサーバーの取り決めたディレクトリに配置しておくと証明書の指定が必要なアプリケーションの設定を共通化することができ、管理が楽になります。

myadmin@ubuntu:~$ sudo mkdir /etc/pki/mypki
myadmin@ubuntu:~$ ls -l /etc/pki/mypki
total 16
-rw-rw-r-- 1 myadmin myadmin 1212 May  9 04:17 ca.crt
-rw-rw-r-- 1 myadmin myadmin 4696 May 10 23:52 si1230.com.crt
-rw-rw-r-- 1 myadmin myadmin 1704 May 10 23:51 si1230.com.key

目次に戻る

Ubuntu 22.04 easy-rsaを使用したTLS証明書の作成

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る