SAN / UCC SSL証明書のすべてのドメインをリストする方法はありますか(理想的にはlinux / os xのコマンドラインを使用)?
ブラウザがデータを抽出できるため、データを抽出する方法が必要です。残念ながら、リストは表示できますが、カットアンドペーストできません。
SAN / UCC SSL証明書のすべてのドメインをリストする方法はありますか(理想的にはlinux / os xのコマンドラインを使用)?
ブラウザがデータを抽出できるため、データを抽出する方法が必要です。残念ながら、リストは表示できますが、カットアンドペーストできません。
回答:
openssl x509 -text < foo.crt
トリックを行う必要があります。
openssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
SAN を見たいだけなら、それgrep DNS:
は明らかな解決策です。
さらに処理するためのよりクリーンなリストが必要な場合は、このPerl正規表現を使用して名前だけを抽出できます。 @names=/\sDNS:([^\s,]+)/g
例えば:
true | openssl s_client -connect example.com:443 2>/dev/null \
| openssl x509 -noout -text \
| perl -l -0777 -ne '@names=/\bDNS:([^\s,]+)/g; print join("\n", sort @names);'
これはこれを出力します:
example.com
example.edu
example.net
example.org
www.example.com
www.example.edu
www.example.net
www.example.org
だからあなたはそれをwhile read name; do echo "processing $name ..."; done
等にパイプすることができます
または、1行のコンマ区切りリストの場合はjoin("\n",
、join(",",
(-0777
perl のスイッチは、行ごとではなく入力全体を一度に読み取ります)
openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text