SSブログ

OpenSSLのコマンドで有効な暗号スイートを確認。 [Linux]

SSL/TLSのどの暗号スイートが有効か調べたかったんだけど、社内のシステムにつき
https://www.ssllabs.com/ssltest/index.html
のような外部サイトがつなげない。

そういう時にopensslコマンドを使えばいいんだけど、網羅的に使おうとすると面倒で…

https://qiita.com/ionis_h/items/277430a8807ee09c8b46

ここではRubyスクリプトを提示しているんだけど、Ruby入れるのがしんどいのでシェルスクリプトでやってみた。全然opensslコマンドを編集していないので冗長すぎるけど、必要ならばGrepとかしてほしい。

https://github.com/miffy/ssl_ciphers.sh/blob/main/ssl_ciphers.sh

#!/bin/bash

HOST="localhost:443"
echo $HOST
LF=$'\n'

# 暗号スイートを列挙し配列の中に入れる
OLD_IFS=$IFS
IFS=:
CIPHER_ARR=(`openssl ciphers`)
IFS=$OLD_IFS

# openssl s_clientコマンドで各暗号スイートの確認
for (( i=0; i < ${#CIPHER_ARR[@]}; i++ ))
do
    echo "<<< "${CIPHER_ARR[i]}" >>>"$LF
    openssl s_client -connect ${HOST} -cipher ${CIPHER_ARR[i]} < /dev/null
    echo $LF
done


どこから取ってきたのか忘れたけど、ワンライナーでもそこそこできる。

$ openssl ciphers -v | awk '{print "s_client -connect localhost:443 -cipher " $1}' | xargs -L 1 openssl 2> /dev/null | grep "Cipher is" | grep -v "NONE"


こんな感じなんだけど、つなげない暗号スイートの名前が出てこないので一覧にはできない。ただgrepしているところがピンポイントなので、かなり簡潔な物にはなる。使える暗号スイートを調べるだけならこれでOK。

というかTLS使うのまんどう臭い。でも、最近はGoogleのページ評価の関係でHTTPSを使うのがデフォルトになっているので、使わないわけにはいかなくなってきてはいる。

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0