European Grid Infrastructure(EGI)の一部としてのプロジェクトでは、nginxで実行されているサービスのSSLクライアント証明書の検証が必要です。 EGI内ではいくつかのルートCAが許可されているため、クライアント証明書の検証中にそれらをすべてチェックするためにnginxが必要です。 nginxのドキュメント ルート証明書を含むファイルを1つだけ指定できるssl_client_certificate
パラメータのみが見つかりました。
Nginxでクライアント証明書を検証するために複数のルートCAを指定する方法はありますか、それともApacheを使用する必要がありますか?
Nginxは複数のルート証明書をサポートしています。複数のルートCA証明書をssl_client_certificate
ディレクティブ。 docs が明示的に「証明書」(複数形)と言っていることに注意してください。
これは考慮事項です nginxがディレクトリでssl_client_certificateをサポートしない理由(Apacheと同様)
「証明書ファイル」と「証明書パス」の違いは、証明書の更新後に何かを実行するかどうかではありません(どちらの場合も、何かを更新する必要があります。CApathの場合は、シンボリックリンクを作成するために、単一のファイルまたはc_rehashスクリプトにcatする必要があります。 )。違いは、メモリ内の証明書とディスク上の証明書についてであり、後者は、各証明書チェックでのシステムコールとディスクアクセスを意味します。
Nginxは高負荷で動作するように設計されており、1秒あたりのリクエスト(およびハンドシェイク)が多いため、CAfileバリアントを使用します。また、nginx構成の再ロードはシームレスであるため、CApathバリアントが追加の値を追加することはほとんどありません。
マキシムドゥニン