過去問ドリル

LinuCレベル2 Webサーバーとプロキシサーバー 問33

Webサーバーとプロキシサーバー/OpenSSLとHTTPSの設定

Apacheのmod_sslでクライアント証明書を検証するため、SSLVerifyClient require とともに SSLCACertificatePath でディレクトリを指定し、PEM形式のCA証明書ファイルを複数置いた。しかし、置いたCA証明書が検証に使われない。必要な作業として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「Webサーバーとプロキシサーバー」に対応。実際の試験問題ではありません)

正解:A

解説

SSLCACertificatePathで指定したディレクトリ内の証明書は、ファイル名ではなく、証明書のサブジェクトから計算したハッシュ値の名前(hash.0 等)で探されます。そのため、証明書を置くだけでなく、openssl rehash や c_rehash でハッシュ値の名前のシンボリックリンクを作る必要があります。証明書を追加・削除したときも、リンクを作り直します。CA証明書が少なければ、1つのファイルにまとめてSSLCACertificateFileで指定する方法もあります。

選択肢ごとの解説

  • A正しい。ディレクトリ内の証明書はハッシュ値の名前で探されるため、openssl rehash等でシンボリックリンクを作ります。
  • B誤り。SSLCACertificatePathのディレクトリに置く証明書はPEM形式である必要があり、DER形式に変換すると読めなくなります。
  • C誤り。拡張子で読み込み対象が決まるわけではなく、.keyは秘密鍵に使われる拡張子です。ハッシュ値の名前のリンクが必要です。
  • D誤り。SSLCertificateFileはサーバー証明書(と中間CA証明書)を指定するもので、クライアント証明書の検証に使うCAの指定ではありません。
LinuCレベル2の問題を演習モードで解く