チュートリアルには、 OpenVPNを設定する前に Easy-RSA を導入せよと書かれているため、両者はセットだと思われがちです。そうではありません。Easy-RSA は OpenSSL を動かす PKI 管理ユーティリティで、OpenVPN はトンネルです。前者は誰を信頼するかを決め、後者はパケットを運びます。

重要なのは、どちらのツールが優れているかという比較ではありません。組織の中で発行者を誰が持つかという点です。

Easy-RSA とは実際何か

このプロジェクトは自らを X.509 の PKI 管理ユーティリティと述べ、暗号処理は OpenSSL が担います。つまり鍵生成、証明書要求、署名ポリシー、失効を再現可能なディレクトリ構成にまとめるものです。既存のトンネルに暗号化レイヤーを足すものではなく、別の優秀なツールが作った同じ鍵より RSA を強くするものでもありません。やることは、ワークフローを監査可能にすることです。

それは確かな利点ですが、暗号上の利点ではなく運用上の利点です。

あるノート PC を登録の流れで追う

新しいノート PC は自分の鍵を生成して証明書要求を提出するので、 秘密鍵が端末の外に出ることはありません。発行者はその要求を、クライアント役割に合う拡張を選ぶ種別で署名します。Easy-RSA では ./easyrsa sign-req client laptop-a。

それでも運用者は、この人にアクセスを与えるかどうかを決めねばなりません。署名ツールがコモンネームから権限を推測することはありません。

署名済みの証明書は 対応する鍵を持つ端末に戻り、VPN の配備側がサーバー信頼、本人確認、ネットワークポリシー、アカウント要件を別途用意します。発行者の出力ディレクトリにあるファイルだけでは何も証明できません。完了したハンドシェイクだけがそれを示します。

同じノート PC を退出の流れで追う

発行者の選択が本当に表れるのは削除の場面です。使えるワークフローは証明書を特定し、失効を記録し、依存する側が拒否するために必要なものを生成します。Easy-RSA は ./easyrsa revoke laptop-a と ./easyrsa gen-crlを分けており、二つ目の手順が忘れられがちです。発行者で CRL を作っても、どの VPN 検証者にも届きません。

配布、再読み込み時の挙動、すでに確立したセッションがどうなるかは配備の判断であり、ツールの機能ではありません。

その隙間こそ、場当たり的な openssl コマンドの山ではなく定まったワークフローを使う実務的な理由です。発行者の運用で難しいのは最初の証明書ではありません。端末が入れ替わる中で、発行記録、バックアップ、更新、削除を整合させ続けることです。

発行者がすでにある場合

組織がすでに承認済みの証明書サービスを運用しているなら、そこを通して登録してください。チュートリアルに Easy-RSA のコマンドがあったという理由で二つ目の CA を立てると、信頼の配布作業、バックアップ作業、そして正しく失効させる対象がもう一つ増えます。

ローカルの発行者は CA を運用するという約束であり、設定手順書のチェックボックスではありません。

Easy-RSA が正解となる場合

自前の発行者が本当に必要な小規模な私的配備なら、Easy-RSA はすべての操作を手作業で組み立てずに、焦点の定まったワークフローを与えます。 本家 Easy-RSA ガイド は要求、署名、失効、CRL の手順を順に扱っています。CA の署名材料は指定された所有者の手元に置き、クライアントに必要なのは自分の資格情報と該当する公開の信頼であり、署名鍵の複製ではありません。

PIN ベースの OpenVPN 設計も正当な信頼の取り方であり、修理待ちの壊れた PKI ではありません。またアカウントのログインは、選んだプロトコルでサーバーを認証する必要性をなくすものではありません。

選ぶ前に四つの問いに答えてください:新しい身元を誰が承認するか、その秘密鍵はどこにあるか、証明書はどうやってクライアントに届くか、引退した身元はどうやって受け入れられなくなるか。

関連記事