Si solo desea ver las SAN, grep DNS:
es la solución obvia.
Si desea tener una lista más limpia para procesar más, puede usar esta expresión regular de Perl para extraer solo los nombres: @names=/\sDNS:([^\s,]+)/g
Por ejemplo:
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);'
Lo que generaría esto:
example.com
example.edu
example.net
example.org
www.example.com
www.example.edu
www.example.net
www.example.org
Entonces podrías canalizar eso a while read name; do echo "processing $name ..."; done
etc.
O para una lista separada por comas en una línea, reemplace join("\n",
conjoin(",",
(El -0777
interruptor para perl hace que lea toda la entrada a la vez en lugar de línea por línea)
openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text