手当たり次第に書くんだ

飽きっぽいのは本能

VyOS PKI / OpenVPN 証明書設計 – CA と証明書の責務を分ける

VyOS で OpenVPN を TLS で構成する場合、VPN 設定だけでなく、PKI、CA、証明書、秘密鍵、共有鍵をどう管理するかが重要になります。証明書まわりを曖昧にすると、VPN の設定が動いていても、更新や失効、再発行の運用が苦しくなります。

この記事では、VyOS 1.5 を前提に、PKI / OpenVPN 証明書設計を、CA と証明書の責務分界として整理します。実際の証明書本文や秘密鍵は公開記事に載せず、ここでは設定構造だけを例示します。

CA と証明書を分けて考える

CA は証明書を発行する側であり、ルーター自身の証明書とは役割が違います。OpenVPN の設定では、CA 証明書、ルーターの証明書、ルーターの秘密鍵、必要に応じて tls-auth / tls-crypt 用の共有鍵を扱います。

  • CA 証明書: 相手証明書を検証するための信頼点
  • ルーター証明書: 自分自身を相手に示すための証明書
  • 秘密鍵: ルーター証明書に対応する秘密情報
  • 共有鍵: OpenVPN の追加防御として使う鍵

VyOS に CA と証明書を登録する

VyOS では set pki caset pki certificate で CA と証明書を登録します。秘密鍵は公開してはいけないため、記事やドキュメントに実値を貼らない運用が前提です。

設定構造の例

set pki ca example-ca certificate '<CA_CERTIFICATE>'
set pki certificate router.example.internal certificate '<ROUTER_CERTIFICATE>'
set pki certificate router.example.internal private key '<ROUTER_PRIVATE_KEY>'

公開記事や手順書では、実際の証明書本文や秘密鍵ではなく、プレースホルダーで表現するのが安全です。実環境では、権限管理された場所から投入します。

OpenVPN の TLS 設定で参照する

OpenVPN 側では、登録した CA と証明書を参照します。TLS の role、最小バージョン、相手証明書の用途確認なども合わせて設定します。

set interfaces openvpn vtun1000 mode 'site-to-site'
set interfaces openvpn vtun1000 protocol 'udp'
set interfaces openvpn vtun1000 tls ca-certificate 'example-ca'
set interfaces openvpn vtun1000 tls certificate 'router.example.internal'
set interfaces openvpn vtun1000 tls role 'active'
set interfaces openvpn vtun1000 tls tls-version-min '1.3'
set interfaces openvpn vtun1000 openvpn-option 'remote-cert-tls server'

remote-cert-tls は、相手証明書の用途を確認するための設定です。単に証明書があるかではなく、相手をどう検証するかを意識します。

tls-auth 用の共有鍵

OpenVPN では、TLS に加えて tls-auth 用の共有鍵を使う構成があります。これは認証とは別に、OpenVPN の制御チャネルへの不要な到達を減らすための追加防御として扱えます。

set pki openvpn shared-secret ta key '<TLS_AUTH_KEY>'
set pki openvpn shared-secret ta version '1'
set interfaces openvpn vtun1000 tls auth-key 'ta'

共有鍵も秘密情報です。証明書や秘密鍵と同じく、公開記事や通常のメモへ実値を貼らないようにします。

失効と更新を設計に含める

証明書は作って終わりではありません。有効期限、再発行、失効、相手側への配布、設定反映のタイミングを考える必要があります。特に拠点間 VPN では、片側だけ更新して接続断になることを避けるため、更新手順を事前に決めておくことが重要です。

  • 証明書の有効期限を管理する
  • CA とルーター証明書を分けて保管する
  • 秘密鍵を公開記事や通常リポジトリに載せない
  • 更新時は両端の設定反映タイミングを決める
  • 失効が必要な場合に CRL をどう扱うかを決める

確認コマンド

show configuration commands | match 'pki'
show interfaces openvpn
show log | match openvpn

証明書設定は、接続できない時にログへ理由が出ることがあります。証明書名、CA の参照名、role、remote-cert-tls、共有鍵の不一致を順番に確認します。

まとめ

VyOS の PKI / OpenVPN 証明書設計では、CA、ルーター証明書、秘密鍵、共有鍵の責務を分けて扱うことが重要です。VPN の設定行だけを見るのではなく、証明書の発行、保管、更新、失効まで含めて設計します。

特に公開記事や手順書では、秘密鍵や共有鍵の実値を載せないことが前提です。設定構造は示しつつ、実値は安全な場所で管理する、という線引きが必要です。

関連する記事

次に進む

参考書籍

参考書籍
参考書籍
暗号技術入門 第3版

証明書、公開鍵暗号、認証の前提を体系的に確認したい場合の参考書籍です。

Amazon で見る

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

VyOS PKI / OpenVPN 証明書設計 – CA と証明書の責務を分ける

コメントを残す

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

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

トップへ戻る