UCC / SAN SSL प्रमाणपत्र पर डोमेन सूचीबद्ध करना


15

क्या सैन / यूसीसी एसएसएल प्रमाणपत्र पर सभी डोमेन को सूचीबद्ध करने का एक तरीका है (आदर्श रूप से लिनक्स / ओएस एक्स पर कमांड लाइन का उपयोग करके)?

स्पष्ट रूप से डेटा को निकालने का कोई तरीका होना चाहिए, क्योंकि ब्राउज़र इसे कर सकते हैं। दुर्भाग्य से, मैं सूची देख सकता हूं लेकिन इसे काट और पेस्ट नहीं कर सकता।

जवाबों:


25

openssl x509 -text < foo.crt चाल चलनी चाहिए।


3
पोस्टरिटी के लिए, यह पूरी कमांड है जिसका मैंने उपयोग किया था, क्योंकि मैं इसे एक अन्य सर्वर के लिए कर रहा था:openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text
जॉर्डन रीटर

3
डोमेनों की एक साफ़-सुथरी स्पेस सीमांकित सूची प्राप्त करने के लिए आप इसे grep और sed के माध्यम से पास कर सकते हैंopenssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
Geoffrey

कृपया नीचे स्क्रॉल करें: panticz.de का उत्तर बेहतर है ;-)
lucaferrario

10

आप इस आदेश के साथ डोमेन को सूचीबद्ध कर सकते हैं (लिनक्स पर परीक्षण किया गया है):

cat cert.pem | openssl x509 -text | grep DNS

यह एक स्वीकृत उत्तर की तुलना में बेहतर आउटपुट देता है।
18 दिसंबर को वातो

हां, यह इसके बजाय स्वीकृत उत्तर होना चाहिए।
काल

1

यदि आप केवल SAN को देखना चाहते हैं , grep DNS:तो स्पष्ट समाधान है।

यदि आप आगे की प्रक्रिया के लिए एक क्लीनर सूची रखना चाहते हैं, तो आप केवल नामों को निकालने के लिए इस पर्ल रेगेक्स का उपयोग कर सकते हैं: @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आदि।

या एक लाइन पर अल्पविराम से अलग की गई सूची के join("\n",साथ बदलेंjoin(",",

( -0777पर्ल के लिए स्विच यह लाइन द्वारा लाइन के बजाय एक बार में पूरे इनपुट को पढ़ता है)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.