प्रमाणपत्र पीसी द्वारा पर भरोसा किया जाता है लेकिन एंड्रॉइड द्वारा नहीं


82

आज सुबह से, मेरे प्रमाणपत्र पर अब Android पर भरोसा नहीं किया गया है और फिर मेरा आवेदन अब कनेक्ट नहीं हो सकता है:

 Catch exception while startHandshake: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
 return an invalid session with invalid cipher suite of SSL_NULL_WITH_NULL_NULL
 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
    at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:591)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:807)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:781)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:770)

अगर मैं Google Chrome (पीसी पर) में कोशिश करता हूं तो कोई समस्या नहीं है और प्रमाण पत्र पर भरोसा है लेकिन अगर मैं एंड्रॉइड पर क्रोम ब्राउज़र में कोशिश करता हूं तो यह बताता है कि प्रमाण पत्र विश्वसनीय नहीं है। मैं क्या कर सकता हूँ?


आप सुरक्षित सर्वर (Https) के साथ संचार कर रहे हैं?
मोहसिन नईम

हां वास्तव में, बस लिंक का प्रयास करें, आप प्रमाणपत्र देखेंगे
एलेक्सिस

जवाबों:


93

आप अपनी प्रमाणित फ़ाइल में एक मध्यवर्ती प्रमाणपत्र याद कर रहे होंगे। यदि आप पहले से ही किसी अन्य वेबसाइट पर गए हैं, जिसमें समान प्रमाणपत्र विक्रेता है, तो आपके ब्राउज़र में मध्यवर्ती प्रमाणपत्र याद किया जाता है। यह आपकी वेबसाइट पर आने वाले प्रत्येक आगंतुक के साथ ऐसा नहीं होगा या इससे भी बेहतर नहीं होगा। एसएसएल कनेक्शन में एक लापता इंटरमीडिएट प्रमाण पत्र को हल करने के लिए, आपको अपनी खुद की प्रमाण पत्र फ़ाइल में मध्यवर्ती प्रमाण पत्र जोड़ना होगा।

GoDaddy के मध्यवर्ती प्रमाणपत्रों के बारे में कुछ जानकारी है (लेकिन सबसे अच्छा स्रोत हमेशा आपका प्रमाणपत्र प्रदाता है): http://support.godaddy.com/help/article/868/what-is-an-intermediate-certkut

मैंने एक बार एक मध्यवर्ती प्रमाण पत्र (कमोडो के साथ भी) का यह मुद्दा रखा था और मुझे अपने स्वयं के प्रमाणित फ़ाइल को मध्यवर्ती सीए के साथ काम करने के लिए संयोजित करना था। एक बार कोई त्रुटि नहीं हुई।

Godaddy द्वारा प्रति वेबसर्वर की स्थापना निर्देश: http://support.godaddy.com/help/article/5346/installing-an-ssl-server-instructions?locale=en

और यहाँ कॉमोडो द्वारा सबसे आम इंस्टॉलेशन गाइड की एक सूची दी गई है: https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/1145/0/how-do-i-make- मेरी खुद-बंडल-फ़ाइल-से-CRT-फ़ाइलें

आपके द्वारा उपयोग किए जा रहे वेबसर्वर के आधार पर, आपको सभी प्रमाणपत्र (डोमेन प्रमाणपत्र, इंटरमीडिएट और रूट) निर्दिष्ट करने या उन्हें क्रम में एक (उदाहरण के लिए नेग्नेक्स) में संयोजित करने की आवश्यकता होगी:

  1. डोमेन प्रमाण पत्र
  2. मध्यवर्ती प्रमाण पत्र
  3. रूट प्रमाण पत्र

SSH टर्मिनल में ऐसा करने का एक आसान तरीका टाइप करके है:

cat domainfile intermediatefile rootfile > targetfile

प्रमाणपत्र परीक्षण उपकरण

यदि आप आगे की समस्याओं का सामना करते हैं या यह सुनिश्चित करते हैं कि प्रमाणपत्र सही है, तो कृपया अपने एसएसएल प्रमाणपत्र को सत्यापित करने के लिए एक ऑनलाइन टूल का प्रयास करें। उदाहरण के लिए: नेटवर्किंग4all.com/en/ssl+certports/quickscan

Android 2.2 और उससे कम के लिए SNI समर्थन

कृपया ध्यान दें कि एंड्रॉइड 2.2 (और शायद अधिक पुराना) एसएनआई का समर्थन नहीं करता है, जो विभिन्न होस्टनामों के लिए एक एकल आईपी पते पर मुद्दों के बिना काम करने के लिए कई एसएसएल प्रमाणपत्रों की अनुमति देता है। उस जानकारी को उपलब्ध कराने के लिए @technyquist का धन्यवाद। कृपया इस मुद्दे पर अधिक जानकारी के लिए एसएनआई के बारे में इस एसओ प्रश्न की समीक्षा करें


+1, इसने 2.3.X डिवाइसों के साथ मेरे इश्यू के लिए काम किया क्योंकि उन्हें लगता है कि जंजीर सत्यापन के आदेश के साथ एक मुद्दा है (मैं बहुत अच्छा है, जब यह सीट्स की बात आती है) और सही क्रम के साथ इस नए बंडल के साथ (संयोजन के माध्यम से) @Luceos ने सुझाव दिया) एक आकर्षण की तरह काम किया। साभार
अरमांडो

आपका स्वागत है, हम नियमित रूप से इसका उपयोग भी करते हैं। खासकर क्योंकि यह केवल एक मध्यवर्ती प्रमाण पत्र से अधिक मान्य है। खुश हूं कि मुझे मदद मिल सकती है।
लॉजोस

कोमोडो के लिए लिंक मर चुका है
gfaceless

1
स्पष्टीकरण के लिए धन्यवाद। मेरे पास थावे प्रमाणपत्र है और मुझे उनकी वेबसाइट पर लॉगिन करना होगा, "व्यू ऑर्डर सूचना" पर क्लिक करें। भेजे गए ईमेल में एक लिंक होता है जहां मध्यवर्ती प्रमाणपत्र "अतिरिक्त प्रमाणपत्र" में डाउनलोड किया जा सकता है।
गुइल्यूम रेनॉल्ट

1
इसने मेरे OpenMediaVault NAS और मेरे फोन मार्शमैलो को चलाने के लिए काम किया। सर्वर पर प्रमाण पत्र को संपादित किया, मध्यवर्ती सीट्स को जोड़ा, इसे बचाया, और वेब इंटरफ़ेस को फिर से शुरू किया, और मेरे फोन पर क्रोम "जारीकर्ता पर भरोसा नहीं" से मोटा और प्रमाण के साथ खुश हो गया। धन्यवाद!
Doktor J

19

आपको एक crt बंडल बनाना होगा तब यह ठीक होगा। आपको तीन crt फाइलें प्राप्त होंगी। उन सभी का उपयोग करें! यदि आपने केवल domain.crt का उपयोग किया है तो Android पर चेतावनी होगी लेकिन पीसी पर नहीं।

मैं नगनेक्स पर हूं। मैंने domain_name.crt खोला और फिर positivesslca2.crt खोला, सभी का चयन करें और domain_name.inrt के अंत में कॉपी करें। फिर AddTrustExternalCARoot.crt खोलें, फिर से domain_name.crt के अंत में कॉपी करें। फिर domain_name.crt स्थापित करें

अच्छा काम करता है।


यह मेरे द्वारा खोजे जा रहे समाधान की तरह दिखता है, लेकिन यह अभी भी मेरे लिए काम नहीं करता है। मैं एक गॉडडी सर्टिफिकेट के साथ नगनेक्स पर हूं। godaddy में 3 सिरे होते हैं: domain.crt, मध्यवर्ती .rt, और bundle.crt। क्या आप जानते हैं कि आपके उत्तर के अनुसार सही क्रम कौन सा है? अर्थात डोमेन> मध्यवर्ती> बंडल या डोमेन> बंडल> मध्यवर्ती? किसी कारण से न तो मेरे लिए काम करता है।
--पिर

जाहिरा तौर पर bundle.crt [मध्यवर्ती है। रूट + रूट ।rt] संक्षिप्त है ताकि सही क्रम प्रतीत हो। लेकिन मैं अभी भी यह काम करने के लिए नहीं मिल सकता है। कोई विचार? धन्यवाद।
इपिर

आपको रूट की आवश्यकता नहीं है, जो पहले से ही ओएस में बंडल है। आपको बस मध्यवर्ती श्रृंखला की आवश्यकता है। आदेश आपका + मध्यवर्ती होना चाहिए।
dalore

9

इसे यहाँ जोड़ना क्योंकि यह किसी की मदद कर सकता है। मुझे पॉपअप और अमान्य प्रमाणपत्र त्रुटि दिखाते हुए Android के साथ समस्या हो रही थी।

हमारे पास कोमोडो एक्सटेंडेड वैलिडेशन सर्टिफिकेट है और हमें जिप फाइल मिली है जिसमें 4 फाइलें हैं:

  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSAExtendedValidationSecureServerCA.crt
  • www_mydomain_com.crt

मैंने उन सभी को एक साथ एक पंक्ति में सम्‍मिलित किया:

cat www_mydomain_com.crt COMODORSAExtendedValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >www.mydomain.com.ev-ssl-bundle.crt

फिर मैंने उस बंडल फाइल को अपने ssl_certificate_keyनगीने में इस्तेमाल किया । यही है, अब काम करता है।

इस gist से प्रेरित: https://gist.github.com/ipedrazas/6d6c31144636d586dcc3


1
मैंने अन्य सभी सुझाए गए चरणों की कोशिश की है। इसने मेरे लिए काम किया। धन्यवाद!
ericbae

1
अच्छा काम, पागल की तरह गुगली करना और इसने इसे ठीक कर दिया।
ओलाफुर ट्रिवग्वासन

धन्यवाद, और अगर किसी और का नाम नेचरैप का उपयोग कर रहे हैं, तो सुनिश्चित करें कि यह इस प्रारूप में है: cat *yourdomainname*.crt *yourdomainname*.ca-bundle > cert_chain.crt
हैरी

1

कोमोडो पॉजिटिवएलएसएल के साथ हमें 4 फाइलें मिली हैं।

  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSADomainValidationSecureServerCA.crt
  • our_domain.crt

जब हमने कोमोडो साइट पर निर्देशों का पालन किया - तो हमें एक त्रुटि मिलेगी कि हमारे प्रमाण पत्र में एक मध्यवर्ती प्रमाणपत्र फ़ाइल गायब थी।

मूल रूप से वाक्य रचना है

cat our_domain.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt  AddTrustExternalCARoot.crt > domain-ssl_bundle.crt

1

मैंने हाल ही में इस मुद्दे को कमोडो सर्टिफिकेट के साथ खरीदा है जिसे मैंने ssls.com पर खरीदा है और मेरे पास 3 फाइलें हैं:

domain-name.ca-bundle domain-name.crt और domain-name.p7b

मुझे इसे Nginx पर सेट करना होगा और यह वह कमांड है जिसे मैंने चलाया:

cat domain-name.ca-bundle domain-name.crt > commodo-ssl-bundle.crt

मैंने तब Nginx config फाइल के अंदर कमोडो-ssl-bundle.crt का उपयोग किया और एक आकर्षण की तरह काम करता है।


1

मेरे पास एक ही मुद्दा था और मेरा मुद्दा सही तारीख और समय नहीं होने के कारण डिवाइस था। एक बार मैंने तय किया कि प्रमाण पत्र पर भरोसा किया जा रहा है।


1

मेरे पास एक ही त्रुटि थी क्योंकि मैंने www .my-domain.com के लिए लेट्स एनक्रिप्ट क्रिप्ट जारी नहीं किया था , केवल मेरे-domain.com के लिए

Www के लिए भी जारी करना और https://my-domain.com पर रीडायरेक्ट करने से पहले www .my-domain.com के प्रमाणपत्रों को लोड करने के लिए vhost को कॉन्फ़िगर किया।


0

मुझे अपाचे 2.2 के तहत इसी मुद्दे का सामना करना पड़ा, जब मैं SSLCertificateChainFileप्रत्येक मध्यवर्ती प्रमाणपत्र के लिए कई निर्देशों का उपयोग करने की कोशिश कर रहा था ; इसके बजाय मुझे एक ही फाइल में तीनों को सम्मिलित करने की आवश्यकता थी। GoDaddy से आकर उन्होंने मेरे लिए "बंडल" के रूप में ऐसा किया, यह अतिरिक्त कदम मेरे लिए नया था, लेकिन Apache प्रलेखन के फिर से पढ़ने से यह स्पष्ट हो गया।

वर्थ नोटिंग, यह निर्देश अपाचे 2.4.8 के रूप में चित्रित किया गया है क्योंकि आप अब वास्तविक प्रमाण पत्र के साथ सभी मध्यवर्ती को समेट सकते हैं।


0

मुझे आशा है कि मुझे बहुत देर नहीं हुई है, यहाँ इस समाधान ने मेरे लिए काम किया है, मैं COMODO SSL का उपयोग कर रहा हूं, उपरोक्त समाधान समय के साथ अमान्य लगते हैं, मेरी वेबसाइट lifetanstic.co.ke

कोमोडो समर्थन से संपर्क करने और एक सीए बंडल फ़ाइल प्राप्त करने के बजाय आप निम्नलिखित कार्य कर सकते हैं:

जब आप कोमोडो (मेल द्वारा) से अपना नया एसएसएल प्रमाणपत्र प्राप्त करते हैं, तो उनके पास एक ज़िप फ़ाइल जुड़ी होती है। आपको ज़िप-फ़ाइल को अनज़िप करना होगा और नोटपैड जैसे टेक्स्ट एडिटर में निम्नलिखित फाइलें खोलनी होंगी:

AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt

फिर प्रत्येक ".crt" फ़ाइल के पाठ को कॉपी करें और "सर्टिफ़िकेट अथॉरिटी बंडल (वैकल्पिक)" फ़ील्ड में प्रत्येक पाठ के ऊपर के ग्रंथों को चिपकाएँ।

उसके बाद बस "प्रमाणपत्र" फ़ील्ड में हमेशा की तरह SSL प्रमाणपत्र जोड़ें और "Autofil by प्रमाणपत्र" बटन पर क्लिक करें और "इंस्टॉल करें" पर क्लिक करें।


0

Godaddy certs के साथ आपको सबसे अधिक संभावना होगी domain.key, gd_bundle_something.crtऔर (यादृच्छिक अल्फ़ान्यूमेरिक स्ट्रिंग)4923hg4k23jh4.crt

आपको इसकी आवश्यकता होगी: cat gd_bundle_something.crt >> 4923hg4k23jh4.crt

और फिर, नगनेक्स पर, आप उपयोग करेंगे

ssl                  on;
ssl_certificate      /etc/ssl/certs/4923hg4k23jh4.crt;
ssl_certificate_key  /etc/ssl/certs/domain.key;

0

मुझे भी यही समस्या थी। सही .crt फ़ाइल बनाने का दूसरा तरीका इस प्रकार है:

कभी-कभी आपको एक .PEM फ़ाइल मिलती है जिसमें पूरी प्रमाणपत्र श्रृंखला होती है। फाइल कुछ इस तरह दिख सकती है…।

-----BEGIN RSA PRIVATE KEY-----
blablablabase64private...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
blablablabase64CRT1...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
blablablabase64CRT2...
-----END CERTIFICATE-----
...

यदि आप पूरे private keyअनुभाग को हटा देते हैं , तो आपके पास एक वैध जंजीर होगा


0

सुनिश्चित करें कि आप अपने मध्यवर्ती crt (.crt फ़ाइल को एक बंडल के साथ उपयोग करते हैं .. कुछ प्रदाता इसे बंडल या सीए प्रमाणपत्र भी कहते हैं)। तब आपके ssl.conf में,

SSLCertificateFile </path/for/actual/certificate>

SSLCACertificateFile </path/for/actual/intermediate_certificate>

फिर अपने वेबसर्वर को पुनः आरंभ करें: अपाचे उपयोग के लिए पूर्व:

sudo service httpd restart

-1

यह हो सकता है कि आप अपने डिवाइस पर प्रमाणपत्र को याद कर रहे हैं।

इस उत्तर को देखने का प्रयास करें : Android डिवाइस पर विश्वसनीय CA प्रमाणपत्र कैसे स्थापित करें? अपने डिवाइस पर CA स्थापित करने का तरीका देखने के लिए।


मेरा प्रमाण पत्र पॉजिटिवएलएल सीए / कोमोडो सीए लिमिटेड द्वारा जारी किया गया है और अपने फोन पर मेरे विश्वसनीय क्रेडेंशियल्स में मैं 3 कोमोडो सीए लिमिटेड (एएए प्रमाणन प्राधिकरण, कोमोडो प्रमाणन प्राधिकरण और कोमोडो ईसीसी प्रमाणन प्राधिकरण) देख सकता हूं
एलेक्स

-1

मुझे इसी तरह की समस्या थी और इसके बारे में एक विस्तृत लेख लिखा। अगर किसी को भी यही समस्या है, तो मेरे लेख को पढ़ने के लिए स्वतंत्र महसूस करें।

https://developer-blog.net/administration/ssl-zertifikat-installieren/

यह जर्मन भाषा में एक विस्तृत समस्या वर्णन है।

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