openssl

opensslコマンドでSSLサイトのプロトコルを確認する方法

Linux系のOSでは標準で使用できるopensslコマンドですが、
実はSSL化されたサイトのハンドシェークプロトコルを調べられます。

覚えてしまえば便利なので、Webサイトの管理している人や
アプリケーション開発している人にもおすすめできる調査方法です。

 

プロトコルを調べる

プロトコル調査はs_clientオプション

opensslには沢山のオプションがありますが、
s_clientオプションを使うことでWebアクセスをする際の
SSLハンドシェークが実施可能です。
ハンドシェークさせることでサーバ側が使っているプロトコルや証明書の情報など、
サーバ証明書に関する情報が取得可能です。

このコマンド、実は自分でリクエストヘッダを書いて送信することができるので途中で止まります。
telnetみたいなイメージですね。
まぁ、プロトコルの調査には残りの機能が必要ないのでCtrl + Cで止めます。

この部分ですが、TLSv1.3って書いてありますね。
Googleは世界的な推奨値TLSv1.3だけを使うようにしているみたいですね。
右側にあるCipher is の部分は暗号化プロトコル(暗号スイート)の値が出力されます。
そのほかにも、証明書チェーンやその他証明書内の情報が書かれているので、
適用した証明書がおかしくないのかを確認するときにも使えますね。

SNIを利用しているサイトには

SNIサイトの調査はservernameオプション追加

SNIを使っている場合は、上記のように-servernameを付与して実施します。
例えばレンタルサーバなどを利用している場合は、SNIが有効になっている場合が多いので
オプションを指定することで確認することができるようになります。

-openssl
-,