OCSP उत्तरदाता मौजूद नहीं है?


13

OCSP सत्यापन रूटीन सेट करने की कोशिश कर रहा हूँ, और इसलिए पहले पर्यावरण के साथ सहज होना चाहते हैं। ओपनएसएसएल के लिए उत्कृष्ट ट्यूटोरियल मिला : मैन्युअल रूप से एक OCSP के खिलाफ एक प्रमाण पत्र सत्यापित करें

कई सवाल उठते हैं, इसलिए कृपया मेरे साथ सहन करें।

उस ट्यूटोरियल के बाद से कुछ बदलाव हुए हैं, लेकिन मुझे लगता है कि जिस्ट है:

1) आप जिस सर्टिफिकेट को सत्यापित करना चाहते हैं, उसे रोके

openssl s_client -connect wikipedia.org:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' > wikipedia.pem

2) प्रमाण पत्र श्रृंखला का निर्माण, जैसे

openssl s_client -connect wikipedia.org:443 -showcerts 2>&1 < /dev/null > chain.pem

और फिर उचित रूप से संपादित करें। मैंने पाया कि उपरोक्त स्व-हस्ताक्षरित सीए प्रमाण पत्र, GlobalSignRootCA प्रदान नहीं करता है, इसलिए इसमें जोड़ा गया है।

3) सागर URI निर्धारित करें, जैसे

openssl x509 -noout -ocsp_uri -in wikipedia.pem 

जो लौटता है

http://ocsp2.globalsign.com/gsorganizationvalsha2g2

4) खुलता है ocsl ग्राहक ग्राहक, जैसे

openssl ocsp -issuer chain.pem -cert wikipedia.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2

जो लौटता है

[woody@oc2042275410 testCerts]$ openssl ocsp -issuer chain.pem -cert wikipedia.pem -url http ://ocsp2.globalsign.com/gsorganizationvalsha2g2
Error querying OCSP responsder
140062843348808:error:27076072:OCSP routines:PARSE_HTTP_LINE1:server response error:ocsp_ht.c:250:Code=403,Reason=Forbidden

(Responsder?)

मैंने पढ़ा कि यह एक वर्चुअलाइजेशन मुद्दे के कारण है, इसलिए

openssl ocsp -issuer chain.pem -cert wikipedia.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -header "HOST" "ocsp2.globalsign.com"

कौन सी पैदावार

Response Verify Failure
140400906352456:error:27069065:OCSP routines:OCSP_basic_verify:certificate verify error:ocsp_vfy.c:126:Verify error:unable to get local issuer certificate
wikipedia.pem: good
    This Update: Apr 28 23:10:10 2015 GMT
    Next Update: Apr 29 11:10:10 2015 GMT

इसलिए मुझे लगता है कि OCSP ने लौटा दिया कि प्रमाणपत्र अच्छा है, लेकिन इससे सवाल 1 होता है: त्रुटि 'स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ' क्यों?

ठीक है, Google के साथ फिर से कोशिश कर रहा है। समान दिनचर्या, कैप्चरिंग सर्टिफिकेट, OCSP URI के लिए जाँच:

openssl x509 -noout -ocsp_uri -in google.pem 

पैदावार

http://clients1.google.com/ocsp.

काफी उचित:

openssl ocsp -issuer gchain.pem -cert google.pem -url http://clients1.google.com/ocsp
Error querying OCSP responsder
140433209165640:error:27076072:OCSP routines:PARSE_HTTP_LINE1:server response error:ocsp_ht.c:250:Code=404,Reason=Not Found

नहीं मिला? यह आश्चर्यजनक लग रहा था। तारों के साथ जाँच:

> POST /ocsp HTTP/1.0
> Content-Type: application/ocsp-request
> Content-Length: 112

> 0n0l0E0C0A0...+..........j.....p.I.#z...(~d...U.. [.5...J:.......l..9.....{6.#0!0...+.....0......].O.9..}d`.L...
< ~HTTP/1.0 404 Not Found
< Content-Type: text/html; charset=UTF-8
< X-Content-Type-Options: nosniff
< Date: Tue, 28 Apr 2015 22:42:40 GMT
< Server: sffe
< Content-Length: 1429
< X-XSS-Protection: 1; mode=block
< Alternate-Protocol: 80:quic,p=1
< 
< <!DOCTYPE html>
< <html lang=en>
<   <meta charset=utf-8>
<   <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<   <title>Error 404 (Not Found)!!1</title>
<   <style>
<     *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/errors/logo_sm_2.png) no-repeat}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/errors/logo_sm_2_hr.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/errors/logo_sm_2_hr.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/errors/logo_sm_2_hr.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:55px;width:150px}
<   </style>
<   <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<   <p><b>404.</b> <ins>That...s an error.</ins>
<   <p>The requested URL <code>/ocsp</code> was not found on this server.  <ins>That...s all we know.</ins>

तो यह प्रश्न 2 है: क्या यह सही है, OCSP स्थानांतरित कर दिया गया था, और OCSP URI में मौजूद नहीं है? क्या यह शायद है कि सर्वर समान रूप से OCSP स्टेपलिंग में स्थानांतरित हो गया है, और OCSP सर्वर को अब महत्वपूर्ण नहीं मानता है?


क्या आपने ओपनसेल सीपों को जोड़ने का प्रयास किया?

-noverify पहले मामले में काम करता है, हालांकि यह प्रश्न 1 में त्रुटि की व्याख्या नहीं करता है, बस इसे हटा देता है। मुझे अभी भी समझ नहीं आया कि यह स्थानीय जारीकर्ता प्रमाण पत्र क्यों नहीं मिल सकता है।
रॉबर्ट वीवर

जवाबों:


6

1 के बारे में)

OCSP में एक "रिस्पांस साइनिंग की / सर्टिफिकेट पेयर" होता है, जिसका उपयोग प्रतिक्रिया को प्रमाणित करने के लिए किया जाता है। यह प्रमाणपत्र निम्नलिखित के जवाब में दिया गया है:

$ openssl ocsp -issuer chain.pem -cert wikipedia.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -header "HOST" "ocsp2.globalsign.com" -resp_text
-----BEGIN CERTIFICATE-----
[...]
UMiqxBNugzQ=
-----END CERTIFICATE-----

तो चलो signcert.pem पर सहेजें और देखें कि क्या हो रहा है:

$ openssl ocsp -issuer chain_wikipedia.pem -cert wikipedia.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -header "HOST" "ocsp2.globalsign.com" -resp_text | sed -n '/-----BEGIN/,/-----END/p' > signcert.pem
$ openssl verify signcert.pem
signcert.pem: C = BE, O = GlobalSign nv-sa, CN = GlobalSign OV CA - SHA256 - G2 OCSP responder - 2, serialNumber = 20150914163800
error 20 at 0 depth lookup:unable to get local issuer certificate

ठीक है ... लगता है कि हम मध्यवर्ती याद कर रहे हैं?

$ openssl x509 -noout -text -in signcert.pem  | grep -e 'Issuer:' -e '.crt'
Issuer: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2

ठीक है, कोई जारीकर्ता URI फ़ील्ड ... यह सिर्फ गंदा है। आइए इसे CA से लाएं और एक श्रृंखला बनाएं:

$ curl https://secure.globalsign.com/cacert/gsorganizationvalsha2g2r1.crt | openssl x509 -inform der -outform pem >> signcert.pem

ठीक है, यह w चाहिए ...:

$ openssl ocsp -VAfile signcert.pem -issuer chain_wikipedia.pem -cert wikipedia.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -header "HOST" "ocsp2.globalsign.com" -resp_text
[...]
-----BEGIN CERTIFICATE-----
[...]
/TiSgNCpgNg=
-----END CERTIFICATE-----
Response Verify Failure

... डब्ल्यूटीएफ ?! ओह, अलग हस्ताक्षर करने का प्रमाण पत्र ?!

$ cat >> signcert.pem
-----BEGIN CERTIFICATE-----
MIID9DCCAtygAwIBAgISESEjxqkycL2lZt0CfS9OgUN2MA0GCSqGSIb3DQEBCwUA
MGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTwwOgYD
VQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIENBIC0gU0hB
MjU2IC0gRzIwHhcNMTUwODIwMTgxOTQxWhcNMTUxMTIwMTgxOTQxWjB9MQswCQYD
VQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTE6MDgGA1UEAxMxR2xv
YmFsU2lnbiBPViBDQSAtIFNIQTI1NiAtIEcyIE9DU1AgcmVzcG9uZGVyIC0gMTEX
MBUGA1UEBRMOMjAxNTA4MjAyMDE4MDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQC+8xxGkIda/04pKK3AXuLz8S8EH4qouLbP/lrd+DFY1oI8fU4kosO+
WjvBPMeK1ZvvR6YjcNhIRsoYsDWdvhMv8/qvu1GQBrs1oC2910lg3fGIR48LR6TR
+XYC1jFv0IHaF5vp+e2nu3diJi7FKHMbP5jVdd1e6cuEcrq+pEW7WkPDQnhzh6U/
GGdhxbH8uk4KPH42Os0Rf6la99EyXzJZ8zccy0ySGnIOF5Km1efXg0qwx3PEk3MQ
fbFG3n4zE7lwBsrEgACI+V9K50tWfJIAm8Ll/xpGhvqF+6swCr0WExMcqaNpdVsf
hiHFD18k8v4R6t7ht+cWx1YvSSA+/hz3AgMBAAGjgYQwgYEwCQYDVR0TBAIwADAO
BgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYJKwYBBQUHMAEF
BAIFADAdBgNVHQ4EFgQU8haQnheoUW3t3+j0OaxZMUgEjIkwHwYDVR0jBBgwFoAU
lt5h8b0cFilTHMDMfTuDAEDmGnwwDQYJKoZIhvcNAQELBQADggEBAH0MXy5hmHXc
G88ntZ2YcM3C6AAVqpfZ2+KYwL06cjmAFvNx6nWUN2w5MD59fiQC3DENCvlEGe29
d9+zsPM4hwEVRGKBIDueXycI0BNRAViacaks4OqRcc8gi1SBE5j94yt1kfp6VBhc
yQBU4Cg5UBy4OA3SsnYdt/Ur1Xm+BDlpi5WWROM1O5UECquLU3/P1prxF78EkTdv
OSGtP1VLMS47hk5v+sUC3hnfwUyKnr2oiVV6CvxxLOipdeDGl68dVisauNf7Dp9H
YvO8OLkN9es+R2AV5iFIzLWHjsQxLOrY18bi6N0zMP7tuZIRSVpil+b49KJ8T/e1
/TiSgNCpgNg=
-----END CERTIFICATE-----
^D

उंगलियों को पार कर...

$ openssl ocsp -VAfile signcert.pem -issuer chain_wikipedia.pem -cert wikipedia.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -header "HOST" "ocsp2.globalsign.com"
Response verify OK
wikipedia.pem: good
        This Update: Sep 15 17:01:20 2015 GMT
        Next Update: Sep 16 05:01:20 2015 GMT

जी हाँ!

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