:SSL証明書の情報を返しますGrepのPerlの正規表現とキャプチャグループ
openssl s_client -connect gcm-http.googleapis.com:443
。私はgrep -P
にしようとしていますが、1)適切な正規表現を見つけ出すことに問題があります.2)実際にGrepに戻す方法は2つあります。これまでのgrepコマンドでは、以下の正規表現は何も返しません。ここで
私はに対して動作していた情報です:
(More unrelated data - Truncated)
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.googleapis.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIE3TCCA8WgAwIBAgIISZPzqn6Rx/0wDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTcwNzI1MDgyOTQ0WhcNMTcxMDE3MDgyNzAw
WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzEZMBcGA1UEAwwQKi5n
b29nbGVhcGlzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL50
UZFxROM8NwIcSTC9V6XAJkoCcW+xuLtYFUbP+6zomzzxYXtTjh+s33XvtaHoNk1S
WxBqSX+0YsS1RHzwWT4KwJpkEyrqJ/WDtKs3hQY27Lng6IZmAYomoRXNZBWgXdQ0
sBddBU9/HtpKu0RpL6qM+7y7Xpp8KHilqPfjvtc8eljvOAdU3RA3w1p2JIov+F5n
sbD1bMqq3Xx6wbT7FLhzL8P/+g1NI0DC/fzSqW+pS/RLljQGLJrlvfmrV++i69Yg
pFRHPvTo85171cLjvHNv730SkM4W9SA7oHU+xzmANrT+p/ikcEJrcMnR9pKf08ON
pN9UgsEff7BZE0jvlu0CAwEAAaOCAaYwggGiMB0GA1UdJQQWMBQGCCsGAQUFBwMB
BggrBgEFBQcDAjB0BgNVHREEbTBrghAqLmdvb2dsZWFwaXMuY29tghUqLmNsaWVu
dHM2Lmdvb2dsZS5jb22CGCouY2xvdWRlbmRwb2ludHNhcGlzLmNvbYIWY2xvdWRl
bmRwb2ludHNhcGlzLmNvbYIOZ29vZ2xlYXBpcy5jb20waAYIKwYBBQUHAQEEXDBa
MCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2dsZS5jb20vR0lBRzIuY3J0MCsG
CCsGAQUFBzABhh9odHRwOi8vY2xpZW50czEuZ29vZ2xlLmNvbS9vY3NwMB0GA1Ud
DgQWBBRQbPBTOA3tVXQWc4iuJyyz5dGWMzAMBgNVHRMBAf8EAjAAMB8GA1UdIwQY
MBaAFErdBhYbvPZotXb1gba7Yhq6WoEvMCEGA1UdIAQaMBgwDAYKKwYBBAHWeQIF
ATAIBgZngQwBAgIwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3BraS5nb29nbGUu
Y29tL0dJQUcyLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAeClOfrviHl9sZAVSTfYB
5FuIDKeSJHibXtjHSNsUP+JaAB9x1ABDczyLYWD/4PaD2w8jRXPXcVcqUaQPqyjF
1um/H/+Eb8+qfwl+Q3RiBAgGgAPw+s6GZK/kGfF9CNPbwhPXizYS6BZZ880/x3ec
Em0F+i0NbHsufPg4ghtJr2gFC2NWHwhvZtezbQDR2z8ePu1r3hyFwgotefCFsQJv
zAbVOvXsqHZdom3BLVwkANeh5hRfeW04N48bRVMZo9A0cULTg5LM1AOXGeLbp86z
D3RHbwtbRBGp2HUjfpt8FqeMzd+DxGlQXEc7l8aFwOgIFvWRJv+SHCXVT3rRHGD+
wA==
-----END CERTIFICATE-----
....
(More unrelated data - Truncated)
は、私はこれらのregexsの両方を試してみた:
grep -P '((?:-+BEGIN CERTIFICATE-+\n)(.+\n)*(?:-+END CERTIFICATE-+))'
grep -P '(?:-+BEGIN CERTIFICATE-+\n)(.+\n)(?:-+END CERTIFICATE-+)'
は基本的に、私は、証明書自体を返すようにしたい、ではありません----BEGIN CERTIFICATE----
と-----END CERTIFICATE-----
私はおそらく正規表現を行うには良い方法があると知っていますが、私はそれを試してみました。(それは動作します)regexr.com
とregex101.com
はgrepはecho $1
戻っている何もしない、正常にキャプチャされた場合。
'grep -v-file'? – Cyrus
私はさらに明確にする必要があります。その 'openssl'コマンドを実行すると大量のデータが吐き出されます。データの「ブロック」の1つは証明書情報です。 'grep -v'を使うと証明書情報があれば動作しますが、残念ながらそこにはありません。より具体的に私の投稿を編集します。 – Patrick
問題は 'grep'は一度に1行しか見ないということです。キャプチャもしません。 – Schwern