सारांश
ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
जब मैं कोशिश करता हूं और HTTPS पर अपने स्थानीय वेब सर्वर से कनेक्ट होता है, तो क्रोम रिपोर्टिंग कर रहा है। मैं लगभग निश्चित हूं कि इस समस्या को मेरे हाल के विंडोज 10 उन्नयन के साथ करना है, लेकिन मुझे नहीं पता कि इसे कैसे ठीक किया जाए।
क्या काम किया?
यहाँ घटनाओं की श्रृंखला है, मेरे साथ विंडोज 8.1 प्रो शुरू में स्थापित है:
- निम्नलिखित आदेश का उपयोग करके एक विश्वसनीय रूट CA के रूप में उपयोग करने के लिए स्व-हस्ताक्षरित प्रमाणपत्र बनाया गया:
makecert.exe -pe -ss Root -sr LocalMachine -n "CN=local, OU=development" -r -a sha512 -e 01/01/2020
- विश्वसनीय रूट CA से एक एप्लिकेशन-विशिष्ट प्रमाणपत्र जेनरेट किया गया:
makecert.exe -pe -ss My -sr LocalMachine -n "CN=myapp.local, OU=Development" -is Root -ir LocalMachine -in local -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -a sha512 -e 01/01/2020 -sky -eku 1.3.6.1.5.5.7.3.1
- उस बिंदु के
HOSTS
लिए एक फ़ाइल प्रविष्टि जोड़ीmyapp.local
गई127.0.0.1
- IIS 8.5 अनुप्रयोग बनाया गया है जो
myapp.local
डोमेन से जुड़ा है और केवल HTTPS अनुरोधों के लिए सुनता है myapp.local
प्रमाणपत्र को वेब साइट पर असाइन किया गया
इस सेटअप के साथ, मुझे किसी भी प्रमाण पत्र या सुरक्षा चेतावनी के बिना क्रोम से अपनी स्थानीय वेब साइट तक पहुँचने में कोई परेशानी नहीं हुई। ब्राउज़र ने उम्मीद के मुताबिक, हरे पैडलॉक प्रदर्शित किए।
क्या काम नहीं करता
हाल ही में, मैंने विंडोज 10 में अपग्रेड किया था। मुझे उस समय पता नहीं था कि विंडोज 10 IIS 10 के साथ है, जो HTTP / 2 को सपोर्ट करता है। अब, जब मैं क्रोम के साथ अपनी स्थानीय वेब साइटों को आज़माता हूं और उन्हें एक्सेस करता हूं, तो मुझे एक ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
त्रुटि मिलती है । मुझे ध्यान देना चाहिए कि एज से भेजे गए समान अनुरोध में कोई त्रुटि नहीं होती है और कनेक्शन के लिए HTTP / 2 का उपयोग करता है। सरसरी तौर पर Google खोज ने कुछ भी आशाजनक नहीं दिखाया, सिवाय संकेत के कि समस्या यह हो सकती है कि HTTP / 2 या क्रोम इस बात को लेकर सख्त है कि यह एसएसएल प्रमाणपत्रों में क्या स्वीकार करेगा।
यह सोचकर कि यह विंडोज में सक्षम सिफर स्वीट्स के साथ एक मुद्दा हो सकता है (लेकिन ऐसी चीजों में विशेषज्ञ नहीं होने के नाते), मैंने IIS क्रिप्टो का नवीनतम संस्करण डाउनलोड किया । मैंने बेस्ट प्रैक्टिस बटन पर क्लिक किया, अप्लाई पर क्लिक किया और अपनी मशीन को रीस्टार्ट किया।
IIS क्रिप्टो इन सेटिंग्स को "सर्वोत्तम प्रथाओं" के रूप में रिपोर्ट करता है:
- सक्षम प्रोटोकॉल: टीएलएस 1.0, टीएलएस 1.1, टीएलएस 1.2
- सक्षम साइफर: ट्रिपल डेस 168, एईएस 128/128, एईएस 256/256
- सक्षम हैश: एमडी 5, एसएचए, एसएचए 256, एसएचए 384, एसएचए 512
- सक्षम प्रमुख एक्सचेंज: डिफी-हेलमैन, पीकेसीएस, ईसीडीएच
एसएसएल सिफर सुइट ऑर्डर:
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P284
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P284
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P284
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_BC_SHA
मैं यह भी जोड़ूंगा कि जो ब्राउज़र एप्लिकेशन मैं विकसित कर रहा हूं, उसे विंडोज एक्सपी से उपयोग करने की आवश्यकता नहीं है। मुझे पता है कि Windows XP के नए प्रोटोकॉल का समर्थन नहीं करने के बारे में कुछ समस्याएं हैं।
HTTPS बातचीत के बारे में विस्तृत जानकारी
मैंने HTTPS बातचीत को बाधित करने के लिए फिडलर का उपयोग करने का निर्णय लिया। यहां बताया गया है कि फ़िडलर ने अनुरोध के बारे में क्या बताया:
Version: 3.3 (TLS/1.2)
Random: 6B 47 6D 2B BC AE 00 F1 1D 41 57 7C 46 DB 35 19 D7 EF A9 2B B1 D0 81 1D 35 0D 75 7E 4C 05 14 B0
"Time": 2/1/1993 9:53:15 AM
SessionID: 98 2F 00 00 15 E7 C5 70 12 70 CD A8 D5 C7 D4 4D ED D8 1F 42 F9 A8 2C E6 67 13 AD C0 47 C1 EA 04
Extensions:
server_name myapp.local
extended_master_secret empty
SessionTicket empty
signature_algs sha512_rsa, sha512_ecdsa, sha384_rsa, sha384_ecdsa, sha256_rsa, sha256_ecdsa, sha224_rsa, sha224_ecdsa, sha1_rsa, sha1_ecdsa
status_request OCSP - Implicit Responder
NextProtocolNego empty
SignedCertTimestamp (RFC6962) empty
ALPN http/1.1, spdy/3.1, h2-14, h2
channel_id(GoogleDraft) empty
ec_point_formats uncompressed [0x0]
elliptic_curves secp256r1 [0x17], secp384r1 [0x18]
Ciphers:
[C02B] TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
[C02F] TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
[009E] TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
[CC14] TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
[CC13] TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[CC15] TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
[0039] TLS_DHE_RSA_WITH_AES_256_SHA
[C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
[0033] TLS_DHE_RSA_WITH_AES_128_SHA
[009C] TLS_RSA_WITH_AES_128_GCM_SHA256
[0035] TLS_RSA_AES_256_SHA
[002F] TLS_RSA_AES_128_SHA
[000A] SSL_RSA_WITH_3DES_EDE_SHA
[00FF] TLS_EMPTY_RENEGOTIATION_INFO_SCSV
Compression:
[00] NO_COMPRESSION
और प्रतिक्रिया:
Version: 3.3 (TLS/1.2)
SessionID: 98 2F 00 00 15 E7 C5 70 12 70 CD A8 D5 C7 D4 4D ED D8 1F 42 F9 A8 2C E6 67 13 AD C0 47 C1 EA 04
Random: 55 C6 8D BF 78 72 88 41 34 BD B4 B8 DA ED D3 C6 20 5C 46 D6 5A 81 BD 6B FC 36 23 0B 15 21 5C F6
Cipher: TLS_RSA_WITH_AES_128_GCM_SHA256 [0x009C]
CompressionSuite: NO_COMPRESSION [0x00]
Extensions:
ALPN h2
0x0017 empty
renegotiation_info 00
server_name empty
क्या काम कर रहा है?
हकान Lindqvist के जवाब के आधार पर, और बहुत विस्तृत और जाहिरा तौर पर अच्छी तरह से-से शोध जवाब यहाँ , मैं निम्नलिखित सेटिंग्स, जो क्रोम त्रुटि सफाया साथ आईआईएस क्रिप्टो पुन: कॉन्फ़िगर:
- सक्षम प्रोटोकॉल: टीएलएस 1.0, टीएलएस 2.0, टीएलएस 3.0
- सक्षम साइफर: एईएस 128/128, एईएस 256/256
- सक्षम हैश: SHA, SHA 256, SHA 384, SHA 512
- सक्षम प्रमुख एक्सचेंज: डिफी-हेलमैन, पीकेसीएस, ईसीडीएच
एसएसएल सिफर सुइट ऑर्डर:
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
makecert.exe
है कि पदावनत हो गया है। मैं इसे केवल इस तरह के विकास परिदृश्यों के लिए उपयोग करता हूं क्योंकि यह सबसे आसान विकल्प है जो [काम करता है]।