Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題160(最終回)

問題160 SSL証明書の調査

ググったらopensslというコマンドを使うということはわかったが使い方がなんだかよくわからずダメだった。最後の問題だったが解けなかったのはちょっと残念だ。

解答例は

openssl s_client -connect example.com:443 < /dev/null 2>/dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' | openssl x509 -text | grep 'Not Before' -A 1

となる。

s_client

This implements a generic SSL/TLS client which can establish a transparent connection to a remote server speaking SSL/TLS. It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL ssl library.

とあるようにs_clientでウェブサイトにsslで接続できるようになるらしい。-connectオプションは見つからなかった。/dev/nullを使っているのは標準入力の開閉を素早くやってopensslの待機状態を終了させるためだ。そのあとsedで必要個所を抜き出して、またopensslで処理をする。今度はx509という引数を与えているため、base64のテキストを適切な形で扱える。あとはgrepでほしい情報を抜き出して終わりだ。

 

半年以内どころか9か月近くかかってしまったがどうにか終わらせることができた。少しはシェルと仲良くなれた気がする。ところでそろそろ就活の準備を本格的にやり始めないといけないので、ブログの更新は当分しなくなりそうだ。博士学生の就活事情は結構厳しいのでせめて早めに動いて情報集めでもしようかと思う。すでにインターンにも参加してみたがなかなか自分が働く理由を見いだせず(働きたくないとかそういう消極的な次元の話をしているのではない)、ただでさえ厳しい就活がさらに厳しくなりそうだ。