curlでSSL証明書の有効期限や発行者、コモンネームを確認する方法
目次
スポンサードリンク
curlコマンドはサーバーとの間でデータ転送するためのツールです。この記事では、curlコマンドを使ってWebサーバーに配置したSSL証明書の発行者情報や有効期限を確認する方法を紹介します。
curlコマンドの基本構文
curlコマンドの基本的な構文は以下です。コマンドの後にオプションと通信するサーバーのURLを入力します。curlコマンドは様々なプロトコルに対応したデータ転送ツールですが、この記事ではWebサーバーと通信した結果について紹介します。
curl [オプション] [URL]
SSL証明書の情報を取得する方法
curlコマンドは -vオプション をつけて実行するとWebサーバーから取得した情報を詳細に表示してくれます。
下記はこのブログにアクセスしたみた結果です。HTTPリクエストヘッダーやレスポンスヘッダー、取得したHTMLソースなどが表示されています。Server certificate から続く5行がSSL証明書の情報です。証明書のコモンネーム(CN:証明書が発行されたドメイン名)や発行者(issuer:証明書を発行した機関)、証明書の有効期限など、証明書の情報を確認することができます。
[root@hostname tmp]# curl -v https://uchy.me/blog/
* About to connect() to uchy.me port 443 (#0)
* Trying 49.212.235.185...
* Connected to uchy.me (49.212.235.185) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=uchy.me
* start date: Jun 27 19:34:56 2024 GMT
* expire date: Sep 25 19:34:55 2024 GMT
* common name: uchy.me
* issuer: CN=R11,O=Let's Encrypt,C=US
> GET /blog/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: uchy.me
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 14 Aug 2024 10:43:52 GMT
< Content-Type: text/html
< Content-Length: 21525
< Connection: keep-alive
< Last-Modified: Tue, 13 Aug 2024 10:25:25 GMT
< ETag: "5415-61f8e07168f40"
< Accept-Ranges: bytes
<
<!DOCTYPE html>
<html lang="ja">
※以降、WebページのHTMLソースが続きます
証明書情報のみを抽出する方法
grepコマンドと組み合わせれば、証明書情報のみ抽出することができます。下記例では、curlで取得した結果を、grepコマンドでフィルタリングしています。
[root@hostname tmp]# curl -v https://uchy.me/blog 2>&1 | grep -E "subject|issuer|start date|expire date|common name"
* subject: CN=uchy.me
* start date: Jun 27 19:34:56 2024 GMT
* expire date: Sep 25 19:34:55 2024 GMT
* common name: uchy.me
* issuer: CN=R11,O=Let's Encrypt,C=US
関連記事
curlコマンドの–verboseオプションの見方を解説
curlコマンドが対応しているプロトコル一覧
Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)