openssl verify -CAfileコマンドの使い方

  • このエントリーをはてなブックマークに追加

次のコマンドで証明書が認証局(CA)で署名された証明書であることを確認する。「openssl verify -CAfile」コマンドの使い方は次の通りである。
このコマンドは、サーバー証明書が認証局(CA)によって署名されているかどうかを確認する。
「CA bundle file」には、ルート証明書or証明書チェーン(ルート証明書+中間証明書+サーバー証明書)を指定する。「CA bundle file」には必ずルート証明書あるいはオレオレ証明書が含まれる必要がある。
「bundle file」という用語自体は、単に複数のファイルを1つにまとめたファイルのことを意味する。証明書の場合は証明書チェーンを意味する。
「server certificate file」には、サーバー証明書or中間証明書orルート証明書を指定する。


openssl verify -CAfile <CA bundle file> <server certificate file>


サーバー証明書、中間証明書、ルート証明書、証明書チェーン(ルート証明書+中間証明書+サーバー証明書)をhttpsのwebサイトからダウンロードしてきて、次のようにコマンドを実行すると証明書が認証局(CA)で署名されたことを確認できる。
サーバー証明書→中間証明書→ルート証明書
のように、最後はルート証明書で終わる。これが証明書チェーンである
サーバー証明書→中間証明書(サーバー証明書は中間認証局が署名している。)
中間証明書→ルート証明書(中間証明書はルート認証局が署名している。)
ルート証明書→ルート証明書(ルート証明書はルート認証局が署名している自己署名証明書である。)

中間証明書は中間認証局の署名とルート認証局の署名の2つの署名がしてある。
しかし、中間証明書の検証にはルート証明書を指定したら「OK」となるから、中間証明書の自己署名は検証していないみたいだな。


openssl verify -CAfile 証明書チェーン サーバー証明書
openssl verify -CAfile ルート証明書 中間証明書
openssl verify -CAfile ルート証明書 ルート証明書

次のようにサーバー証明書→中間証明書を確認しようとした場合、中間証明書がルート認証局で署名されたことが確認できないため失敗する。


openssl verify -CAfile 中間証明書 サーバー証明書

オレオレ証明書(自己署名証明書)の場合は認証局(CA)にもオレオレ証明書(自己署名証明書)を指定する。


openssl verify -CAfile 自己署名証明書 自己署名証明書

下記の環境でopensslコマンドを実行した。linuxでも同じコマンドで動くと思うけど未確認である。
環境
Windows10
使用したGit Bashのバージョンは「git version 2.40.0.windows.1」である。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*