SSL証明書の検証

目次

はじめに

Server-walkthroughSSL証明書を設定してみようでSSL証明書の必要性について軽く説明してきました。

今回は実際にTownでSSL証明書を扱う際に必要なSSL証明書の検証について説明し、実際に検証を行います。

なぜ検証を行うか

実際の仕事では自分たちでSSL証明書の作成をせずに、次の流れでSSL証明書を扱うことがあります。

お客様からSSL証明書をいただく(この工程の前に、Townで作成したCSRをお客様に渡す場合もあります)

SSL証明書(とCSR)の組み合わせ、有効期限、ドメインとWWWの確認

問題なければApacheやNginxに設定

一番最後のApacheやNginxにSSL証明書を適応してからでは、二度手間にもなりますし
httpsでの接続ができなくなってしまうので問題になります。

なので、事前に頂いたSSL証明書の組み合わせ等に問題がないか確認を行っています。

SSL証明書の検証

証明書ファイルの組み合わせの確認

次のリストに加えてドメイン名を含めて、検証を行います。
サーバーの秘密鍵を元にCSRが作成され、CSRと中間証明書を元にサーバーの証明書が発行されます。
そのため、組み合わせに問題がなければ、サーバーの秘密鍵とCSRとサーバーの証明書のハッシュ値が同じものに、中間証明書のsubject_hashとサーバーの証明書のissuer_hashが一致します。

つまり、以下の2つのリストのハッシュ値を調べる必要があります。

  • CSR
  • サーバー秘密鍵
  • サーバー証明書(公開鍵)
  • 中間証明書
  • サーバー証明書(公開鍵)

SSL証明書の有効期限の確認

サーバー証明書と中間証明書には有効期限が存在します。
有効期限が切れているとクライアント側のブラウザで警告が出たり、サーバーによっては暗号化通信ができなくなってしまうものもあります。
特に、認証局そのものの証明である中間証明書ではない、サーバー証明書の有効期限切れには気をつける必要があります。

ドメイン、WWW対応の確認

SSL証明書に登録されているドメインと使用予定のドメインが違うと問題が発生します。そのため、検証をします。
また、WWW対応しているかの確認が必要なことが多いので検証を行います。

opensslコマンドを使う

opensslコマンドを使うことで、以上のSSL証明書の検証を行う事ができます。
また、今回のSSL証明書の検証では関係ありませんが、opensslコマンドを使うことでCSRの作成やRSA秘密鍵の作成などを行うこともできます。

詳しくは以下のリンク先やgoogle検索で調べてみてください。

Qiita:opensslコマンドの使い方
らっちゃいブログ:いちいち調べてられない!よく使うopensslコマンドまとめた


課題

今回の課題に合わせて、ドメイン、CSR、秘密鍵、証明書、中間証明書のセットを5つ用意しました。(test1〜test5)
すべてのセットに上記の何らかの問題があります。なので、何が問題かopensslコマンドを使って調べてください。
ただし、検証を行う日付が2020年02月20日だとします。

TOWNの方はbacklogのファイル共有、CI 2ヶ月研修のssl検証用データを確認して下さい。(置き場がわからない場合には周りの人に聞いて下さい。)
申し訳無いですが、TOWN以外の方はここなどを利用して適宜用意して下さい。