手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 7 SSL 証明書 – 自己署名 CA と内部向け TLS の基本

CentOS 7 で内部向けの SSL / TLS 証明書を扱うためのメモです。公開サイト向けの証明書というより、検証環境、管理系 Web UI、内部 API、LDAP over TLS などで使う自己署名 CA とサーバー証明書の作成を整理します。

CentOS 7 自体は古い環境ですが、既存環境では内部 PKI の考え方を理解しておく価値があります。重要なのは、証明書を単なるファイルとして置くことではなく、CA、秘密鍵、サーバー証明書、CRL、DH パラメータを役割ごとに分けて管理することです。

コマンドはコピペしやすい形を優先しています。ただし、長大な既存設定ファイルを部分的に変更する箇所では、既存値との重複を避けるため、バックアップを取ったうえで設定断片を確認して反映します。

この手順は CentOS 7 設定マニュアル の一部として整理しています。

参考書籍
参考書籍

暗号技術入門 第3版 秘密の国のアリス

公開鍵暗号、電子署名、証明書など、TLS や内部 PKI の前提になる暗号技術を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

前提

  • CentOS 7 上で easy-rsa を使用する。
  • 内部利用を想定した自己署名 CA を作成する。
  • サーバー証明書には SAN を指定する。
  • 秘密鍵は必要なサービスからだけ読めるように配置する。

easy-rsa のインストール

yum install easy-rsa

PKI 作業ディレクトリの準備

easy-rsa のテンプレートを作業用ディレクトリへコピーし、以後はそのディレクトリで操作します。

cp -r /usr/share/easy-rsa/3.0.3 /etc/easy-rsa
cd /etc/easy-rsa

CA の作成

内部証明書の起点になる CA を作成します。CA の秘密鍵は最も重要なファイルなので、常用サーバー上に置きっぱなしにするかどうかは環境の運用方針で判断します。

./easyrsa init-pki
./easyrsa build-ca

サーバー証明書の作成

CSR の作成

サーバー証明書では CN だけではなく SAN を指定します。ワイルドカードを使う場合も、どの内部ドメインに対して有効にするのかを明示します。

./easyrsa --subject-alt-name='DNS:*.mydomain.com' gen-req server nopass

証明書への署名

作成した CSR に対して CA で署名します。内部向けであっても、どの名前に対して発行した証明書なのかを確認してから署名します。

./easyrsa --subject-alt-name='DNS:*.mydomain.com' sign-req server server

CRL の有効期限

証明書失効リストを使う場合は、CRL の有効期限も確認します。短すぎると更新忘れで検証エラーになり、長すぎると失効情報としての意味が弱くなります。

cp -a /etc/easy-rsa/vars /etc/easy-rsa/vars.bak 2>/dev/null || true
cp /usr/share/doc/easy-rsa-3.0.3/vars.example /etc/easy-rsa/vars

cat <<'EOF' >> /etc/easy-rsa/vars
set_var EASYRSA_CRL_DAYS 3650
EOF

CRL と DH パラメータの作成

必要に応じて CRL と DH パラメータを作成します。古い TLS 設定を扱う場合は DH パラメータの配置が必要になることがあります。

./easyrsa build-client-full dummy nopass
./easyrsa gen-dh

配置と権限

サーバー証明書、秘密鍵、CA 証明書は、用途ごとに配置先と権限を分けます。秘密鍵は読み取り対象を絞り、アプリケーションやサービスが不要に CA 秘密鍵へ触れない構成にします。

mkdir -p /var/lib/pki
cp pki/issued/server.crt /var/lib/pki/server.crt
cp pki/private/server.key /var/lib/pki/server.key
cp pki/ca.crt /var/lib/pki/ca.crt
chmod 400 /var/lib/pki/server.key
chmod 444 /var/lib/pki/server.crt /var/lib/pki/ca.crt

運用上の見方

自己署名証明書は、インターネット公開サービスの信頼を得るための仕組みではありません。内部ネットワークで、どの CA を信頼するかを自分で管理できる場合に意味があります。

一方で、内部向けだからといって証明書管理を雑にすると、期限切れ、鍵の流出、名前不一致、CRL 期限切れのような障害につながります。証明書は暗号技術の部品であると同時に、運用設計の部品として扱う必要があります。

この手順は CentOS 7 設定マニュアル の一部として整理しています。

CentOS 7 SSL 証明書 – 自己署名 CA と内部向け TLS の基本

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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

トップへ戻る