OpenVPN サーバーがクライアント証明書を読み取る場所を構成するにはどうすればよいでしょうか?

OpenVPN サーバーがクライアント証明書を読み取る場所を構成するにはどうすればよいでしょうか?

私たちは、OpenVPN サーバーを複数の自動スケール インスタンス (冗長性と自己修復のため) で実行しているため、スクリプト方式でプロビジョニングされます。これらの一時的なインスタンス間でクライアント証明書を管理するためのアプローチは非常に扱いにくく、現在は tarball をディレクトリに抽出する必要があります/etc/openvpn/easy-rsa/pki

クライアント証明書のみを共有ネットワーク ディレクトリに移動したいのですが、これらの pki サブディレクトリについて openvpn に通知する構成設定が何であるかがわかりません。(設定はca/cert/key/dhすべて階層の深いところ、つまり を指しているため/etc/openvpn/easy-rsa/pki/issued/server.crt、easy-rsa ディレクトリ構造に関する組み込みの想定はないと思われます。)

openvpn はこれらのファイルをどうやって見つけるのでしょうか?

答え1

こんにちは。ご質問ありがとうございます。

思ったより簡単です ;-)。すべてのクライアント証明書が必要なわけではありません。クライアント証明書はクライアントに必要です...

構成ファイルの横には、構成ファイルのセクションとして直接埋め込むことができる、生成され「リンクされた」ファイルが 3 ~ 4 個あります (サーバー / クライアントに必要なのはこれらだけです)。

  • TLS キー (オプションですが、使用しても問題ありません ;-) )

これは、クライアント固有のトラフィックを開始する前でも通信を保護するための共有キーです。このキーを知らないと、サーバーは通信を無視します。このファイルはサーバーとクライアントで同じです。

  • CA 証明機関は、リモート側の信頼を確認するために使用される証明書です。

    • サーバ: クライアント証明書を発行している機関の証明書。これがあなたが探しているものです。このファイルは、接続中に発行されたすべてのクライアント証明書を確認するために使用できます。この単一のファイルを使用して、同じ CA によって発行された現在の証明書と将来の証明書を確認できます (これが easy-rsa でカバーされているものです)

    • クライアント: このファイルは、サーバー証明書が信頼されているかどうかを確認するために使用されます。サーバー側と同じにすることができますが、技術的には、サーバー証明書はクライアントの証明書とは異なる CA によって発行される可能性があります。

通信のセキュリティ保護に使用される秘密鍵。このファイルは本人確認を行うファイルなので、安全に保管する必要があります。

  • 証明書

証明書 (X.509 構造の認証局に関連する追加情報で「ラップ」された公開キー)。このファイルは、通信の有効性 (署名に使用されたキーが本当に「その」信頼できるキーであるかどうか) を確認するためだけに使用されているため、公開することもできます。


easy-rsa について言及されているように、CA はクライアント側とサーバー側でおそらく同じです。共通の TLS キー、共通の CA ファイル、および対応する証明書を持つ独自のキーがあれば、動作させるために必要なものはすべて揃います。

ユーザーのキーと証明書を生成し、ユーザーに配信 (または少なくとも送信) したら、それらはもう必要なくなり、このユーザー キーと証明書はサーバーから削除することもできます...

「大規模」な認証局では、認証要求に公開鍵 (秘密鍵から派生した情報) が含まれており、署名付き証明書の作成に必要なすべての情報が含まれているため、ユーザー キーは発行サーバーにさえ認識されません。キーはクライアント側で生成され、プロセスによってクライアントから外部に送信されることはありません...

関連情報