LinuCレベル3 303試験の例題と解説
325.2暗号化、署名および認証のX.509 証明書
LinuCレベル3 303試験の出題範囲から「325.2 暗号化、署名および認証のX.509 証明書」についての例題を解いてみます。
今回は、opensslついて取り上げます。opensslを用いたサーバ接続のテスト方法について理解しましょう。
例題
linuc.example.comの443ポートに接続してSSL/TLSが有効かを確認したい。
以下の選択肢から正しいopensslコマンドを選択してください。
- openssl s_server -connect linuc.example.com:443
- openssl verify -connect linuc.example.com:443
- openssl check -connect linuc.example.com:443
- openssl s_client -connect linuc.example.com:443
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「4. openssl s_client -connect linuc.example.com:443」です。
opensslはSSL/TLSプロトコルを利用するために必要な機能を実装した暗号化ツールキットです。暗号化することで送信先と安全にデータのやり取りを行うことができます。
コマンドによる主な使い方としては以下の通りです。
- 秘密鍵、公開鍵の作成
- SSL/TLS接続の確認
- 証明書署名要求(CSR)の作成
- 自己証明書作成
- 証明書の検証
本例題ではlinuc.example.comへのSSL/TLS接続確認を行います。
opensslコマンドを利用する場合、s_clientを利用します。
確認できる主な項目は以下の通りです。
- 発行先、発行元情報
- 有効期限
- SSL/TLS利用プロトコル、暗号スイート
- 公開鍵情報
- 証明書の検証可否
書式と主なオプションは以下の通りです。
<書式>
openssl s_client -connect <IPアドレス or ホスト名>:<ポート> [オプション]
<オプション>
-4または-6: IPv4またはv6のみで接続します。
-servername <ホスト名>: SNI(1つのIPアドレスで複数の証明書を利用)でサーバに接続する場合に利用します。
-cert <証明書ファイル>、-key <鍵ファイル>: クライアント証明書を利用する場合に利用します。
-showcerts: 中間証明書も含めて表示します。
-tls1: TLS1.0で接続します。
-tlsについては他のバージョンも指定が可能です。
(-ssl3, -tls1_1, -tls1_2, -tls1_3)
なおSSL3やTLS1.0、TLS1.1は脆弱性により安全なプロトコルとは言えず利用が非推奨となっています。そのためWebサーバを公開する際、古いプロトコルが無効になっているか、TLS1.2や1.3が利用できるかの確認が必要です。
例題の各選択肢について解説をします。
「1. openssl s_server -connect linuc.example.com:443」
不正解です。
openssl s_serverはSSL/TLSサーバを起動するためのコマンドです。クライアントとして接続は行いません。
s_serverの正しいコマンド例は以下の通りです。
openssl s_server -cert server.crt -key server.key
「2. openssl verify -connect linuc.example.com:443」
不正解です。
openssl verifyは証明書を検証するコマンドです。こちらも接続は行いません。
verifyの正しいコマンド例は以下の通りです。
openssl verify -CAfile ca.crt server.crt
「3. openssl check -connect linuc.example.com:443」
不正解です。
openssl checkというコマンドは存在しません。
「4. openssl s_client -connect linuc.example.com:443」
正解です。
openssl s_clientの使い方を理解し、安全な通信が行えるか確認できるようにしましょう。
例題作成者
株式会社デージーネット 経営企画室 加藤大嗣