LinuCレベル2 Webサーバーとプロキシサーバー 問30
Webサーバーとプロキシサーバー/nginxの設定と管理nginxでHTTPSを提供するserverブロックに、認証局から受け取ったサーバー証明書と中間CA証明書を設定する。クライアントに中間CA証明書もあわせて提示するための方法として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「Webサーバーとプロキシサーバー」に対応。実際の試験問題ではありません)
- A中間CA証明書をssl_trusted_certificateで指定し、ssl_certificateにはサーバー証明書だけを指定する
- Bサーバー証明書の後ろに中間CA証明書を連結したファイルを作り、それをssl_certificateで指定する
- C中間CA証明書をssl_client_certificateで指定し、ssl_certificateにはサーバー証明書だけを指定する
- D秘密鍵の後ろに中間CA証明書を連結したファイルを作り、それをssl_certificate_keyで指定する
正解:B
解説
nginxには中間CA証明書だけを指定するディレクティブが無く、ssl_certificateで指定するファイルに、サーバー証明書、中間CA証明書の順で連結して入れます。順序が逆だと、秘密鍵と証明書が一致しないとしてnginxが起動や再読み込みに失敗します。ssl_certificate_keyには秘密鍵だけを指定します。連結したファイルは cat server.crt intermediate.crt > bundle.crt のように作れます。
選択肢ごとの解説
- A誤り。ssl_trusted_certificate はクライアント証明書やOCSP応答の検証に使う証明書を指定するもので、その内容はクライアントへ送られません。
- B正しい。ssl_certificate のファイルにサーバー証明書、中間CA証明書の順で連結して入れると、両方がクライアントへ提示されます。
- C誤り。ssl_client_certificate は、クライアント証明書による認証で使うCA証明書を指定するディレクティブです。
- D誤り。ssl_certificate_key には秘密鍵を指定するもので、中間CA証明書を連結してもクライアントへは提示されません。