Chrome को स्व-हस्ताक्षरित लोकलहोस्ट प्रमाणपत्र स्वीकार करना


1204

मैंने लोकलहोस्ट सीएन के लिए एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाया है। उम्मीद के मुताबिक शुरुआत में शिकायत करने के बाद फ़ायरफ़ॉक्स इस प्रमाणपत्र को स्वीकार कर लेता है। हालाँकि, क्रोम और IE, ट्रस्टेड रूट्स के तहत सिस्टम सर्टिफिकेट स्टोर में प्रमाणपत्र जोड़ने के बाद भी इसे स्वीकार करने से इनकार करते हैं। भले ही प्रमाणपत्र क्रोम के HTTPS पॉपअप में "प्रमाण पत्र की जानकारी देखें" पर क्लिक करने के बाद भी सही ढंग से स्थापित किया गया हो, फिर भी यह प्रमाण पत्र पर भरोसा नहीं किया जा सकता है।

प्रमाण पत्र स्वीकार करने और इसके बारे में शिकायत करना बंद करने के लिए मुझे क्या करना चाहिए?


13
जब आप कहते हैं कि फ़ायरफ़ॉक्स शुरू में इसके बारे में शिकायत करता है, तो क्या इसका मतलब यह है कि यह आपको एक प्रमाणपत्र अपवाद जोड़ने के लिए कहता है? यदि प्रमाणपत्र सही रूप से स्थापित है, तो ऐसा नहीं होना चाहिए। यह मुझे लगता है कि सभी तीन ब्राउज़र शिकायत कर रहे हैं, लेकिन फ़ायरफ़ॉक्स आपको इसकी शिकायत रद्द करने की अनुमति देता है। मैं इसे एक टिप्पणी के रूप में पोस्ट कर रहा हूं क्योंकि मेरे पास कोई विशिष्ट उत्तर नहीं है, लेकिन मैंने वास्तव में ऐसा किया है और यह तीनों ब्राउज़रों में ठीक काम करता है। मेरा सुझाव है कि आप कोशिश करें और इसे पहले IE पर काम कर लें, और फिर एक बार अन्य दो के बारे में खुश चिंता का विषय है। क्षमा करें, मैं और अधिक मदद नहीं कर सकता!
स्टारकिथेच

1
आपको एक अच्छी तरह से गठित प्रमाण पत्र बनाना होगा, जिसमें DNS नाम प्रस्तुत किए जाते हैं। ओपनएसएसएल उन्हें एक तरह से पेश नहीं करता है जो ब्राउज़र को आउट-ऑफ-द-बॉक्स संतुष्ट करता है। देखें openssl के साथ एक स्व-हस्ताक्षरित प्रमाणपत्र बनाने के लिए कैसे?
jww

4
फ़ायरफ़ॉक्स सिस्टम सर्टिफिकेट स्टोर का उपयोग नहीं करता है ।
जिज्ञासु

4
यदि आपके प्रमाणपत्र पर हस्ताक्षर SHA-1 का उपयोग करते हैं, तो Chrome के हाल के संस्करण (लगभग 57) भले ही आप अपने कस्टम प्रमाणपत्र को सफलतापूर्वक जोड़ने में सक्षम हों, चेतावनी प्रदर्शित करेंगे । बावजूद, डेवलपर टूल के "सुरक्षा" पैनल अधिक विशेष रूप से कहेंगे कि समस्या क्या है जैसे net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM:।
सेलेडमनेडी

2
मैंने विकास के उद्देश्यों के लिए Chrome का उपयोग करना बंद कर दिया है, क्योंकि यह डेवलपर के अनुकूल नहीं है। आमतौर पर एक व्यक्ति जो इस स्थिति में समाप्त होता है वह जानता है कि वे वैसे भी क्या कर रहे हैं। धन्यवाद, लेकिन धन्यवाद नहीं। मुझे क्रोम से काफी निराशा हुई है!
GTodorov

जवाबों:


64

2020-05-22 : केवल 6 शेल कमांड के साथ , आप इसे पूरा कर सकते हैं।

कृपया अपनी ब्राउज़र सुरक्षा सेटिंग्स को न बदलें।

निम्नलिखित कोड के साथ, आप (1) अपने खुद के सीए बन सकते हैं, (2) फिर एक सीए के रूप में अपने एसएसएल प्रमाणपत्र पर हस्ताक्षर करें। (3) फिर क्रोम / क्रोमियम में सीए सर्टिफिकेट (एसएसएल सर्टिफिकेट नहीं, जो आपके सर्वर पर जाता है) आयात करें। (हां, यह लिनक्स पर भी काम करता है।)

######################
# Become a Certificate Authority
######################

# Generate private key
openssl genrsa -des3 -out myCA.key 2048
# Generate root certificate
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 825 -out myCA.pem

######################
# Create CA-signed certs
######################

NAME=mydomain.com # Use your own domain name
# Generate a private key
openssl genrsa -out $NAME.key 2048
# Create a certificate-signing request
openssl req -new -key $NAME.key -out $NAME.csr
# Create a config file for the extensions
>$NAME.ext cat <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = $NAME # Be sure to include the domain name here because Common Name is not so commonly honoured by itself
DNS.2 = bar.$NAME # Optionally, add additional domains (I've added a subdomain here)
IP.1 = 192.168.0.13 # Optionally, add an IP address (if the connection which you have planned requires it)
EOF
# Create the signed certificate
openssl x509 -req -in $NAME.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \
-out $NAME.crt -days 825 -sha256 -extfile $NAME.ext

संक्षेप में दुहराना:

  1. सीए बनें
  2. अपनी CA कुंजी का उपयोग करके अपने प्रमाणपत्र पर हस्ताक्षर करें
  3. myCA.pemअपनी Chrome सेटिंग में प्राधिकरण के रूप में आयात करें (सेटिंग> प्रमाणपत्र प्रबंधित करें> प्राधिकरण> आयात करें)
  4. .crtअपने सर्वर में फ़ाइल का उपयोग करें

अतिरिक्त कदम (मैक के लिए, कम से कम):

  1. "फ़ाइल> आयात फ़ाइल" पर CA प्रमाणपत्र आयात करें, फिर इसे सूची में भी ढूंढें, इसे राइट क्लिक करें, "> ट्रस्ट" का विस्तार करें, और "हमेशा" चुनें
  2. extendedKeyUsage=serverAuth,clientAuthनीचे जोड़ें basicConstraints=CA:FALSE, और सुनिश्चित करें कि आपने "कॉमननेम" सेट किया है $NAMEजब यह सेटअप के लिए पूछ रहा है

आप अपना काम देख सकते हैं

openssl verify -CAfile myCA.pem -verify_hostname bar.mydomain.com mydomain.com.crt

2
@maverick ब्राउज़र और ऑपरेटिंग सिस्टम CA की सीमित संख्या के साथ जहाज करते हैं, जिस पर उन्हें भरोसा है। हालाँकि कोई भी सीए बन सकता है, किसी को भी अपने प्रमाणपत्रों पर भरोसा करने के लिए, उन्हें लोगों को मैन्युअल रूप से उन्हें एक विश्वसनीय सीए के रूप में जोड़ने की आवश्यकता होगी (जैसा कि हम क्रोम को बताते हैं कि जब हम मैन्युअल रूप से प्रमाण पत्र आयात करते हैं)।
जेल्कैकट

2
महान! मेरे जैसे मैक उपयोगकर्ताओं के लिए दो टिप्पणियां: अंतिम पंक्ति पर, superuser.com/questions/1492643/…-days 825 के -days 1825कारण उपयोग करें , और यह ध्यान देने योग्य है कि रूट चेन को कुंजी श्रृंखला एक्सेस में आयात करने के लिए, आपको न केवल "फ़ाइल" की आवश्यकता है > फ़ाइल आयात करें ", लेकिन फिर इसे सूची में खोजने के लिए, इसे राइट क्लिक करें,"> ट्रस्ट "का विस्तार करें, और" हमेशा "चुनें।
मचिएल्बडैंग

2
यदि आप एक की जरूरत है पीईएम फ़ाइल के बजाय एक CRT अपने स्थानीय देव सर्वर के लिए फ़ाइल चिंता मत करो, बस गठबंधन .crt और .CSR एक के रूप में फाइल और उन्हें बचाने .pem फ़ाइल, और आप जाने के लिए अच्छे हैं।
केरेम बद्दोअन

1
पिछले आईटी काम करता है! इस उत्तर के लिए ब्रावो। कृपया अपने क्रोम या फ़ायरफ़ॉक्स पर myCA.pem लोड करना न भूलें (सेटिंग्स> प्रमाणपत्र प्रबंधित करें> प्राधिकारी> आयात)
Fryser wow

3
मैंने अपने IP- आधारित LAN सर्वर के लिए DNS.1 को IP.1 में बदल दिया। यह काम करता हैं। धन्यवाद।
dw1

763

के लिए localhostकेवल:

बस इसे अपने क्रोम में चिपकाएँ:

chrome://flags/#allow-insecure-localhost

आपको हाइलाइट किए गए पाठ को यह कहते हुए देखना चाहिए: स्थानीयहोस्ट से लोड किए गए संसाधनों के लिए अमान्य प्रमाणपत्र की अनुमति दें

क्लिक करें Enable


3
चेतावनी को अक्षम करता है ... लेकिन कैश भी! Bugs.chromium.org/p/chromium/issues/detail?id=103875
ह्यूगो वुड

4
अगर आप
इनकॉगनिटो

5
यह - यदि आप कष्टप्रद लाल खड़े हो सकते हैं सुरक्षित नहीं संदेश। अन्यथा यह रहस्यमय रूप से खुलने की अवधि के घंटे है, फिर क्रोम में आंतरिक प्रमाणपत्र प्रबंधक से निपटने की कोशिश कर रहा है।
टिम्बो

10
मुझे नहीं पता कि इस उत्तर को क्यों वोट दिया गया है लेकिन अमान्य प्रमाणपत्र और स्व-हस्ताक्षरित प्रमाणपत्र के बीच अंतर है। सवाल स्व हस्ताक्षरित प्रमाण पत्र के बारे में है।
मेहदी

2
मेरे लिए बिल्कुल भी काम नहीं किया। मेरे लिए जो काम किया गया था वह विषय-सूची सहित एक स्व-हस्ताक्षरित प्रमाण पत्र तैयार करना था, जैसा कि इस उत्तर द्वारा समझाया गया है: stackoverflow.com/a/42917227/2873507
विक सेड्वेन्यू

507

यह मेरे लिए काम किया:

  1. Chrome का उपयोग करते हुए, HTTPS के माध्यम से अपने सर्वर पर एक पृष्ठ हिट करें और लाल चेतावनी पृष्ठ को जारी रखें (यह मानते हुए कि आपने यह पहले से नहीं किया है)।
  2. खोलो Chrome Settings > Show advanced settings > HTTPS/SSL > Manage Certificates
  3. उस Authoritiesटैब पर क्लिक करें और अपने प्रमाणपत्र को उस संगठन नाम के तहत स्क्रॉल करें, जिसे आपने प्रमाणपत्र दिया था।
  4. इसे चुनें, संपादित करें पर क्लिक करें ( नोट : क्रोम के हाल के संस्करणों में, बटन अब "एडिट" के बजाय "उन्नत" है), सभी बॉक्सों की जांच करें और ठीक पर क्लिक करें। आपको Chrome को पुनरारंभ करना पड़ सकता है।

अब आपको अपने पृष्ठों पर अच्छा ग्रीन लॉक मिलना चाहिए।

संपादित करें: मैंने इसे फिर से एक नई मशीन पर आज़माया और प्रमाण पत्र केवल लाल अप्रकाशित प्रमाणपत्र पृष्ठ से जारी रखने के द्वारा प्रबंधित प्रमाणपत्र विंडो पर दिखाई नहीं दिया। मुझे निम्नलिखित कार्य करने थे:

  1. बिना प्रमाणपत्र के पृष्ठ पर ( https://लाल रंग में पार किया गया है), लॉक> प्रमाणपत्र सूचना पर क्लिक करें। नोट: क्रोम के नए संस्करणों पर, आपको खोलना है Developer Tools > Security, और चयन करना है View certificate
  2. पर क्लिक करें Details tab > ExportPKCS #7, single certificateफ़ाइल प्रारूप के रूप में चुनें ।
  3. फिर प्रमाण पत्र पृष्ठ प्रबंधित करने के लिए मेरे मूल निर्देशों का पालन करें। Authorities tab > Importउस फ़ाइल पर क्लिक करें और उस फ़ाइल को चुनें, जिसे आपने प्रमाणपत्र निर्यात किया था, और फ़ाइल प्रकार के रूप में चुनना सुनिश्चित करेंPKCS #7, single certificate
  4. यदि प्रमाणन स्टोर से संकेत मिलता है, तो विश्वसनीय रूट प्रमाणपत्र प्राधिकारी चुनें
  5. सभी बॉक्स चेक करें और ओके पर क्लिक करें। Chrome को पुनरारंभ करें।

143
मैंने एक लिनक्स मशीन पर यह कोशिश की, लेकिन यह कहा कि आयात विफल रहा क्योंकि xxx.xxx.com: प्रमाणन प्राधिकरण नहीं।
मैट

15
धन्यवाद @kellen .. हालाँकि, क्रोम संस्करण 29.0.1547.57 बीटा का उपयोग करते हुए, प्रमाणपत्र सूचना पर कहीं भी "निर्यात" विकल्प नहीं दिखता है। उस ने कहा, "विवरण" खंड है, लेकिन यह एक टैब के रूप में नहीं है। यह एक बंधनेवाला / विस्तार योग्य ब्लॉक के रूप में प्रकट होता है। i.imgur.com/dDmNEIh.png
काफिले

20
Chrome 37 में, Exportअब उपयोगी, वर्णनात्मक बटन नहीं है, ऐसा लगता है कि इसे अद्भुत Copy to fileबटन से बदल दिया गया है । क्यों 'निर्यात' नहीं रखा गया था, मन केवल boggles
kolin

13
@ जकोबड, केवल प्रमाण पत्र प्रतीक को डेस्कटॉप या कुछ और पर खींचें और इसे निर्यात किया जाता है। हालाँकि, शेष उत्तर OS X (Yosemite) पर काम नहीं करता है जहाँ तक मैं बता सकता हूँ (क्रोम 39)।
db

33
Chrome 56 के रूप में, Windows में SSL प्रमाणपत्र सेटिंग्स तक पहुंचने के लिए आपको डेवलपर टूल (CTRL + SHIFT + i) का उपयोग करना होगा, "सुरक्षा" टैब पर जाएं और "प्रमाणपत्र देखें" बटन पर क्लिक करें।
void.pointer

167

CHROME के ​​लिए अद्यतन 58+ (RELEASED 2017-04-19)

Chrome 58 के रूप में, केवल उपयोग करने वाले होस्ट की पहचान करने की क्षमता को commonName हटा दिया गया था । प्रमाणपत्र अब subjectAltNameअपने मेजबान (नों) की पहचान करने के लिए उपयोग करना चाहिए । आगे की चर्चा यहाँ और बग ट्रैकर यहाँ देखें । अतीत में, subjectAltNameकेवल बहु-मेजबान समारोहों के लिए उपयोग किया जाता था ताकि कुछ आंतरिक सीए उपकरण उन्हें शामिल न करें।

यदि आपके स्व-हस्ताक्षरित सेर्ट्स ने अतीत में ठीक काम किया, लेकिन अचानक क्रोम 58 में त्रुटियों को उत्पन्न करना शुरू कर दिया, यही कारण है।

तो जो भी विधि आप अपने स्व-हस्ताक्षरित प्रमाण पत्र (या एक स्व-हस्ताक्षरित सीए द्वारा हस्ताक्षरित प्रमाण पत्र) उत्पन्न करने के लिए उपयोग कर रहे हैं, यह सुनिश्चित करें कि सर्वर के प्रमाण में subjectAltNameउचित DNSऔर / या IPप्रविष्टि / प्रविष्टियां शामिल हैं, भले ही यह केवल एक मेजबान के लिए हो।

Opensl के लिए, इसका मतलब है कि आपका OpenSSL कॉन्फिगरेशन ( /etc/ssl/openssl.cnfउबंटू पर) सिंगल होस्ट के लिए निम्नलिखित के समान होना चाहिए:

[v3_ca]   # and/or [v3_req], if you are generating a CSR
subjectAltName = DNS:example.com

या कई मेजबानों के लिए:

[v3_ca]   # and/or [v3_req], if you are generating a CSR
subjectAltName = DNS:example.com, DNS:host1.example.com, DNS:*.host2.example.com, IP:10.1.2.3

Chrome की प्रमाणपत्र दर्शक (जो F12 के तहत "सुरक्षा" टैब के लिए ले जाया गया है) में आप यह अंतर्गत सूचीबद्ध देखना चाहिए Extensionsके रूप में Certificate Subject Alternative Name:

क्रोम प्रमाणित दर्शक


12
Chrome 58+ अपडेट के बारे में पोस्ट करने के लिए धन्यवाद! एक स्व-हस्ताक्षरित प्रमाण पत्र बनाने के इच्छुक लोगों के लिए, जिसमें एक सैन शामिल है विंडोज एक आसान तरीका है न्यू-सेल्फसाइग्न्ट सर्टिफिकेट पॉवरशेल कमांडलेट का उपयोग करना। New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My
DanO

3
@ दानो धन्यवाद! Win10 पर कोई भी अन्य वर्कअराउंड मेरे लिए काम नहीं कर रहा था। कम से कम पावेरशेल को जानने के लिए अच्छा है कि वैध अनाज उत्पन्न होता है!
ब्रायन डोनह्यू

1
Chrome 58+ के लिए Reddit पर एक समाधान मिला और यह काम करता है! व्यवस्थापक कमांड प्रॉम्प्ट में: HKLM \ Software \ नीतियाँ \ Google \ Chrome / v EnableCommonNameFallbackForLocalAnchors / t REG_DWORD / d 1
IrfanClemson

3
लिनक्स पर नीति बनाने के लिए, आप कहते हैं, एक नीति फ़ाइल बनाने की आवश्यकता /etc/opt/chrome/policies/managed/EnableCommonNameFallbackForLocalAnchors.jsonइन सामग्री के साथ: { "EnableCommonNameFallbackForLocalAnchors": true }
seanf

5
"में Chrome की प्रमाणपत्र दर्शक (जो करने के लिए ले जाया गया है" सुरक्षा "F12 टैब के तहत) आप इसे अंतर्गत सूचीबद्ध देखना चाहिए Extensionsके रूप में Certificate Subject Alternative Name"। F12 डेव टूल्स (Chrome 62) में सिक्योरिटी टैब लाने पर मुझे कोई "एक्सटेंशन" खंड दिखाई नहीं देता है। क्या इसे कहीं और ले जाया गया है?
थंडरफॉर्ज

142

मैक पर, आप सिस्टम चाबी का गुच्छा में स्व-हस्ताक्षरित प्रमाण पत्र जोड़ने के लिए किचेन एक्सेस उपयोगिता का उपयोग कर सकते हैं, और क्रोम इसे स्वीकार करेंगे। मुझे यहां चरण-दर-चरण निर्देश मिले:

Google Chrome, Mac OS X और स्व-हस्ताक्षरित SSL प्रमाणपत्र

मूल रूप से:

  1. X के साथ लॉक आइकन पर डबल-क्लिक करें और डेस्कटॉप पर प्रमाणपत्र आइकन को खींचें और छोड़ें,
  2. इस फ़ाइल को खोलें (.cer एक्सटेंशन के साथ समाप्त); यह चाबी का गुच्छा आवेदन खोलता है जो आपको प्रमाण पत्र को मंजूरी देने की अनुमति देता है।

12
महत्वपूर्ण रूप से, आपको प्रभावी होने के लिए Chrome को पुनरारंभ करना पड़ सकता है।
19ion में Xiong Ch128ov

10
मुझे प्रमाणपत्र वरीयताओं को संपादित करना था और एसएसएल पर मैन्युअल रूप से भरोसा करने में सक्षम होना चाहिए
नेडर्क

1
इसने मेरे लिए योसेमाइट, 10.10.5, क्रोम संस्करण 46.0.2490.80 (64-बिट) पर काम किया। धन्यवाद!
रोमेल्मे

2
एल Capitan पर काम किया, कोई पुनरारंभ की आवश्यकता है। मैंने प्रमाणपत्र जोड़ा, उस पर क्लिक किया, ट्रस्ट ड्रॉपडाउन का विस्तार किया और इसे Always Trustएसएसएल अनुभाग के लिए सेट किया । मूल रूप से @NeDark ने क्या कहा।
टॉम

1
मुझे कीचेन में डेस्कटॉप से ​​प्रमाणपत्र को खींचने और छोड़ने की आवश्यकता थी, और फिर अनुमोदन करें।
jmq

129

पृष्ठ पर कहीं भी क्लिक करें और BYPASS_SEQUENCE टाइप करें

" thisisunsafe" Chrome संस्करण 65 के लिए एक BYPASS_SEQUENCE है

" badidea" Chrome संस्करण 62 - 64।

" danger" मैं क्रोम के पुराने संस्करणों में काम करता था

आपको इनपुट फ़ील्ड देखने की ज़रूरत नहीं है, बस इसे टाइप करें। यह अजीब लगता है लेकिन यह काम कर रहा है।

मैंने इसे मैक हाई सिएरा पर आजमाया।

यह जाँचने के लिए कि क्या उन्होंने इसे बदल दिया है, फिर से नवीनतम क्रोमियम स्रोत कोड पर जाएँ

BYPASS_SEQUENCE की तलाश के लिए, इस समय ऐसा लगता है:

var BYPASS_SEQUENCE = window.atob('dGhpc2lzdW5zYWZl');

अब वे इसे छलावरण करते हैं, लेकिन वास्तविक BYPASS_SEQUENCE को देखने के लिए आप ब्राउज़र कंसोल में निम्न पंक्ति चला सकते हैं।

console.log(window.atob('dGhpc2lzdW5zYWZl'));

6
WTF, धन्यवाद यह मेरे लिए काम किया उबंटू 16.04 63.0.3239.84
Gries

8
नए संस्करण के बाद से इस कोड को बदल दिया गया है। नया वाक्यांश हैthisisunsafe
जावा गाय

6
विंडोज 10 पर क्रोम 65 में, टाइपिंग thisisunsafeकेवल इस साइट को अपवादों में जोड़ने का प्रभाव है। (पता पट्टी अभी भी लाल रंग में "सुरक्षित नहीं है" कहती है।)
रेयान

2
यह काम कर रहा है लेकिन सिर्फ पहले लोड के लिए, यदि आप उस पृष्ठ को नेविगेट करते हैं जिसे आपको फिर से टाइप करना है bupass_squence
talsibony

"thisisunsafe" BYPASS_SEQUENCE इस पृष्ठ से केवल एक चीज थी जिसने मैक क्रोम 72 पर मेरे लिए काम किया। मुझे ऐसा लगता है कि मुझे अपने स्व-हस्ताक्षरित प्रमाण पत्र बनाने में परेशान होने की जरूरत नहीं है ...!
जोनो

95

लिनक्स

यदि आप लिनक्स का उपयोग कर रहे हैं, तो आप इस आधिकारिक विकि पृष्ठों का भी अनुसरण कर सकते हैं:

मूल रूप से:

  • X के साथ लॉक आइकन पर क्लिक करें,
  • प्रमाणपत्र जानकारी चुनें
  • विवरण टैब पर जाएं
  • निर्यात पर क्लिक करें ... (फ़ाइल के रूप में सहेजें)

अब, निम्न कमांड प्रमाण पत्र जोड़ देगा (जहां Your_FILE आपकी निर्यात की गई फ़ाइल है):

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YOUR_FILE -i YOUR_FILE

अपने सभी प्रमाणपत्रों को सूचीबद्ध करने के लिए, निम्नलिखित कमांड चलाएँ:

certutil -d sql:$HOME/.pki/nssdb -L

यदि यह अभी भी काम नहीं करता है, तो आप इस बग से प्रभावित हो सकते हैं: अंक 55050: उबंटू एसएसएल त्रुटि 8179

PS कृपया यह भी सुनिश्चित करें कि आपके पास libnss3-tools, इससे पहले कि आप ऊपर दिए गए आदेशों का उपयोग कर सकें।

यदि आपके पास नहीं है, तो कृपया इसे स्थापित करें:

sudo apt-get install libnss3-tools # on Ubuntu
sudo yum install nss-tools # on Fedora, Red Hat, etc.

एक बोनस के रूप में, आप निम्नलिखित आसान स्क्रिप्ट का उपयोग कर सकते हैं:

$ cat add_cert.sh
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n $1 -i $1
$ cat list_cert.sh
certutil -d sql:$HOME/.pki/nssdb -L # add '-h all' to see all built-in certs
$ cat download_cert.sh
echo QUIT | openssl s_client -connect $1:443 | sed -ne '/BEGIN CERT/,/END CERT/p'

उपयोग:

add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]

समस्या निवारण

  • क्रोम को --auto-ssl-client-authपैरामीटर के साथ चलाएं

    google-chrome --auto-ssl-client-auth


बहुत बढ़िया, मुझे आपकी स्क्रिप्ट्स बहुत पसंद हैं। आपको QUIT की आवश्यकता नहीं है (वैसे भी QUIT के रूप में ऐसी कोई HTTP कमांड नहीं है), और आपको sed की भी आवश्यकता नहीं है, nss टूल BEGIN और END CERT के बीच के प्रमाणपत्र को फ़िल्टर कर सकते हैं। तो download_cert.shबस यह हो सकता है:echo | openssl s_client -connect $1:443
पॉल टोबियास

मैंने अन्य विकल्पों की कोशिश की है, लेकिन यह केवल वर्तमान में क्रोम 4x में काम करता है लिनक्स के लिए यह उपकरण में निर्मित का उपयोग करके किसी भी स्टोर पर आयात करने से इनकार कर दिया।
केंड्रिक

93

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

    # create a root authority cert
    ./create_root_cert_and_key.sh

    # create a wildcard cert for mysite.com
    ./create_certificate_for_domain.sh mysite.com

    # or create a cert for www.mysite.com, no wildcards
    ./create_certificate_for_domain.sh www.mysite.com www.mysite.com

उपरोक्त विषय स्क्रिप्ट नाम लापता त्रुटियोंv3.ext से बचने के लिए , निम्नलिखित स्क्रिप्ट और एक सहायक फ़ाइल का उपयोग करता है

यदि आप एक नया स्व-हस्ताक्षरित प्रमाण पत्र बनाना चाहते हैं जो पूरी तरह से अपने मूल प्राधिकरण का उपयोग करने पर निर्भर है, तो आप इन लिपियों का उपयोग करके कर सकते हैं।

create_root_cert_and_key.sh

    #!/usr/bin/env bash
    openssl genrsa -out rootCA.key 2048
    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

create_certificate_for_domain.sh

    #!/usr/bin/env bash

    if [ -z "$1" ]
    then
      echo "Please supply a subdomain to create a certificate for";
      echo "e.g. www.mysite.com"
      exit;
    fi

    if [ ! -f rootCA.pem ]; then
      echo 'Please run "create_root_cert_and_key.sh" first, and try again!'
      exit;
    fi
    if [ ! -f v3.ext ]; then
      echo 'Please download the "v3.ext" file and try again!'
      exit;
    fi

    # Create a new private key if one doesnt exist, or use the xeisting one if it does
    if [ -f device.key ]; then
      KEY_OPT="-key"
    else
      KEY_OPT="-keyout"
    fi

    DOMAIN=$1
    COMMON_NAME=${2:-*.$1}
    SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
    NUM_OF_DAYS=825
    openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr
    cat v3.ext | sed s/%%DOMAIN%%/"$COMMON_NAME"/g > /tmp/__v3.ext
    openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext 

    # move output files to final filenames
    mv device.csr "$DOMAIN.csr"
    cp device.crt "$DOMAIN.crt"

    # remove temp file
    rm -f device.crt;

    echo 
    echo "###########################################################################"
    echo Done! 
    echo "###########################################################################"
    echo "To use these files on your server, simply copy both $DOMAIN.csr and"
    echo "device.key to your webserver, and use like so (if Apache, for example)"
    echo 
    echo "    SSLCertificateFile    /path_to_your_files/$DOMAIN.crt"
    echo "    SSLCertificateKeyFile /path_to_your_files/device.key"

v3.ext

    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    subjectAltName = @alt_names

    [alt_names]
    DNS.1 = %%DOMAIN%%

एक और कदम - क्रोम / सफ़ारी में पूरी तरह से विश्वसनीय स्वयं हस्ताक्षरित सीट्स को कैसे बनाया जाए

Chrome और सफ़ारी में पूरी तरह से स्व-हस्ताक्षरित प्रमाणपत्रों की अनुमति देने के लिए, आपको अपने मैक में एक नया प्रमाणपत्र प्राधिकारी आयात करना होगा। ऐसा करने के लिए इन निर्देशों का पालन करें, या mitmproxy वेबसाइट पर इस सामान्य प्रक्रिया के बारे में अधिक विस्तृत निर्देश :

आप इस कमांड का उपयोग करते हुए कमांड लाइन पर 2 तरीकों में से एक कर सकते हैं, जो आपके पासवर्ड के लिए संकेत देगा:

$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain rootCA.pem

या Keychain Accessएप्लिकेशन का उपयोग करके :

  1. किचेन एक्सेस खोलें
  2. "किचेन" सूची में "सिस्टम" चुनें
  3. "श्रेणी" सूची में "प्रमाण पत्र" चुनें
  4. चुनें "फ़ाइल | आयात आइटम ..."
  5. ऊपर बनाई गई फ़ाइल में ब्राउज़ करें, "rootCA.pem", इसे चुनें, और "ओपन" पर क्लिक करें
  6. "प्रमाणपत्र" सूची में अपने नए आयातित प्रमाण पत्र का चयन करें।
  7. "I" बटन पर क्लिक करें, या अपने प्रमाण पत्र पर राइट क्लिक करें, और "गेट इन्फो" चुनें।
  8. "ट्रस्ट" विकल्प का विस्तार करें
  9. "इस प्रमाणपत्र का उपयोग करते समय" को "ऑलवेज ट्रस्ट" में बदलें
  10. संवाद बंद करें, और आपको अपने पासवर्ड के लिए संकेत दिया जाएगा।
  11. अपने लक्ष्य डोमेन का उपयोग करने वाले किसी भी टैब को बंद करें और पुनः खोलें, और इसे सुरक्षित रूप से लोड किया जाएगा!

और एक बोनस के रूप में, यदि आपको प्रमाण पत्र पर भरोसा करने के लिए जावा क्लाइंट की आवश्यकता है, तो आप अपने सीट्स को जावा कीस्टोर में आयात करके ऐसा कर सकते हैं। ध्यान दें कि यदि यह पहले से मौजूद है, तो यह कीस्टोर से सर्टिफिकेट को हटा देगा, क्योंकि इसे मामले में बदलने की आवश्यकता है। यह निश्चित रूप से केवल आयात किए जा रहे समारोहों के लिए करता है।

import_certs_in_current_folder_into_java_keystore.sh

KEYSTORE="$(/usr/libexec/java_home)/jre/lib/security/cacerts";

function running_as_root()
{
  if [ "$EUID" -ne 0 ]
    then echo "NO"
    exit
  fi

  echo "YES"
}

function import_certs_to_java_keystore
{
  for crt in *.crt; do 
    echo prepping $crt 
    keytool -delete -storepass changeit -alias alias__${crt} -keystore $KEYSTORE;
    keytool -import -file $crt -storepass changeit -noprompt --alias alias__${crt} -keystore $KEYSTORE
    echo 
  done
}

if [ "$(running_as_root)" == "YES" ]
then
  import_certs_to_java_keystore
else
  echo "This script needs to be run as root!"
fi

दौड़ते समय "निजी कुंजी rootCA.key खोलने में त्रुटि" मिला $ ./create_root_cert_and_key.sh। macOS 10.12.4 और ओपनएसएसएल 0.9.8zh 14 जनवरी 2016.
डोनट

1
चल रहा है $ openssl genrsa -out rootCA.key 2048से पहले $ ./create_root_cert_and_key.shफिक्स "खोलने में त्रुटि निजी कुंजी rootCA.key" त्रुटि मैं में फंस गयी।
डोनट

@donut - इसे इंगित करने के लिए धन्यवाद - मैंने उस लाइन को दोहराया था इसलिए मुझे यकीन है कि इसने आपके द्वारा देखे गए मुद्दे का कारण बना ...
ब्रैड पार्क

openssl req -new -newkey rsa:2048 -sha256 -nodes -key device.key -subj "$SUBJECT" -out device.csrमुझे त्रुटि दे रहा है "एरर ओपनिंग PRATE Key device.key" मुझे लगा कि यह कमांड बनाना चाहिए था device.key, लेकिन ऐसा लगता है कि इसे किसी कारण से पढ़ने की कोशिश की जा रही है
लेनी

2
इसका समाधान निकाल लिया (यदि किसी और ने इसे हिट किया है) तो इसे बदलना -keyथा -keyout...openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout device.key -subj "$SUBJECT" -out device.csr
लेनी

90

अद्यतन 11/2017: यह उत्तर शायद क्रोम के अधिकांश नए संस्करणों के लिए काम नहीं करेगा।

अद्यतन 02/2016: मैक उपयोगकर्ताओं के लिए बेहतर निर्देश यहां मिल सकते हैं ।

  1. उस साइट पर जिसे आप जोड़ना चाहते हैं, पता बार में लाल लॉक आइकन पर राइट-क्लिक करें:यहां छवि विवरण दर्ज करें

    1. टैब लेबल कनेक्शन पर क्लिक करें, फिर प्रमाणपत्र सूचना पर क्लिक करें

    2. क्लिक करें विवरण टैब, बटन पर क्लिक करें फ़ाइल को कॉपी ... । यह प्रमाणपत्र निर्यात विज़ार्ड खोल देगा, निर्यात फ़ाइल स्वरूप स्क्रीन पर जाने के लिए अगला क्लिक करें ।

    3. चुनें डीईआर एन्कोड की गई बाइनरी 509 (.cer) , क्लिक करें अगला

    4. ब्राउज़ करें पर क्लिक करें ... और फ़ाइल को अपने कंप्यूटर पर सहेजें। इसे कुछ वर्णनात्मक नाम दें। क्लिक करें अगला , उसके बाद समाप्त करें

    5. Chrome सेटिंग खोलें, नीचे स्क्रॉल करें, और उन्नत सेटिंग दिखाएं क्लिक करें ...

    6. HTTPS / SSL के तहत , प्रमाणपत्र प्रबंधित करें पर क्लिक करें ...

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

    8. ब्राउज़ ब्राउज़ करें ... पर क्लिक करें और पहले आपके द्वारा सहेजी गई प्रमाणपत्र फ़ाइल का चयन करें, फिर क्लिक करें अगला पर

    9. का चयन करें जहाँ निम्नलिखित दुकान में सभी प्रमाण पत्र । चयनित स्टोर विश्वसनीय रूट प्रमाणीकरण प्राधिकारी होना चाहिए । यदि ऐसा नहीं है, तो ब्राउज़ करें पर क्लिक करें ... और इसे चुनें। Next और Finish पर क्लिक करें

    10. सुरक्षा चेतावनी पर हां पर क्लिक करें ।

    11. Chrome को पुनरारंभ करें।


2
@ जेनरल हाँ, क्रोम फिर से बदल गया। इस लेख के निर्देशों ने हाल ही में मेरे लिए काम किया।
किमीगैड जूल

2
यह विकल्प इस टिप्पणी की तारीख के रूप में मैक क्रोम नवीनतम पर मौजूद नहीं है।
y3sh

1
@ किलोग्राम, क्रोम के पास अपना प्रमाणपत्र स्टोर नहीं है। यह सब कुछ जोड़ रहा है और विंडोज एक को हटा रहा है। जैसे, एक बेहतर तरीका यह है कि आप केवल certmgr.mscसीट्स को जोड़ने और हटाने के लिए उपयोग करें।
पचेरियर

1
मेरे लिए काम किया, धन्यवाद। क्रोम को फिर से शुरू करना पड़ा और सबसे महत्वपूर्ण बात यह कि मेरे प्रमाणपत्र को 2017 से पहले समाप्त होना था। SHA-1 सामान।
ioanb7

1
चारपाई बदल दिया फिर से! अब स्टेप "एड्रेस बार में, X के साथ थोड़ा लॉक पर क्लिक करें। यह एक छोटी सूचना स्क्रीन लाएगा।" काम नहीं करता है।
बजे ब्रूनो ब्रोंस्की

59

अगर तुम हो एक मैक पर हैं और निर्यात टैब नहीं देख रहे हैं या मेरे लिए यह प्रमाण पत्र कैसे काम करता है:

  1. Https: // से पहले लॉक पर क्लिक करें
  2. "कनेक्शन" टैब पर जाएं
  3. "प्रमाणपत्र सूचना" पर क्लिक करें

    अब आपको यह देखना चाहिए: पाठ्यक्रम की विभिन्न जानकारी और आपका अभी तक विश्वसनीय के रूप में चिह्नित किया जाना चाहिए (अन्यथा आप शायद यहाँ नहीं होंगे)

  4. उस छोटे प्रमाणपत्र आइकन को अपने डेस्कटॉप (या कहीं भी) पर खींचें।

  5. डाउनलोड की गई .cer फ़ाइल पर डबल क्लिक करें, इसे अपने किचेन में आयात करना चाहिए और अपने प्रमाणपत्रों की सूची में किचेन एक्सेस खोलें।

    कुछ मामलों में, यह पर्याप्त है और अब आप पृष्ठ को ताज़ा कर सकते हैं।

    अन्यथा:

  6. नए जोड़े गए प्रमाणपत्र पर डबल क्लिक करें।
  7. ट्रस्ट ड्रॉप डाउन में "ऑलवेज ट्रस्ट" के लिए "इस प्रमाण पत्र का उपयोग करते समय" विकल्प बदलें

अब प्रश्न में पृष्ठ पुनः लोड करें और इसे हल किया जाना चाहिए! उम्मीद है की यह मदद करेगा।


वोल्फ से संपादित करें

इसे थोड़ा आसान बनाने के लिए आप निम्न स्क्रिप्ट ( स्रोत ) का उपयोग कर सकते हैं :

  1. निम्न स्क्रिप्ट को इस प्रकार सहेजें whitelist_ssl_certificate.ssh:

    #!/usr/bin/env bash -e
    
    SERVERNAME=$(echo "$1" | sed -E -e 's/https?:\/\///' -e 's/\/.*//')
    echo "$SERVERNAME"
    
    if [[ "$SERVERNAME" =~ .*\..* ]]; then
        echo "Adding certificate for $SERVERNAME"
        echo -n | openssl s_client -connect $SERVERNAME:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee /tmp/$SERVERNAME.cert
        sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" /tmp/$SERVERNAME.cert
    else
        echo "Usage: $0 www.site.name"
        echo "http:// and such will be stripped automatically"
    fi
  2. स्क्रिप्ट को निष्पादन योग्य बनाएं (शेल से):

    chmod +x whitelist_ssl_certificate.ssh
  3. अपने इच्छित डोमेन के लिए स्क्रिप्ट चलाएँ (बस पूर्ण url कार्यों को कॉपी / पेस्ट करें):

    ./whitelist_ssl_certificate.ssh https://your_website/whatever

1
यह दृष्टिकोण मेरे लिए OS X Mavericks पर काम करता है, ऊपर दिए गए शीर्ष उत्तर में वर्णित अनुसार कोई निर्यात विकल्प उपलब्ध नहीं था ।
केविन लेरी

बहुत अच्छा काम करता है। Https से पहले लॉक अभी भी पार किया गया है, लेकिन यह ठीक है क्योंकि अब कोई कष्टप्रद पॉपअप नहीं है।
nalply

इसने मेरे लिए मैक कैटालिना पर काम किया। धन्यवाद! :)
सौरभ

58

अद्यतन दिनांक 23/2020

क्रोमियम टीम द्वारा अनुशंसित

https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins#TOC-Testing-Powerful-Features

त्वरित सुपर आसान समाधान

एक गुप्त बायपास वाक्यांश है जिसे सुरक्षा त्रुटि के बावजूद Chrome के आगे बढ़ने के लिए त्रुटि पृष्ठ में टाइप किया जा सकता है: यह isunsafe (क्रोम के पुराने संस्करणों में, प्रकार badidea , और पहले भी, खतरा )। डीओ नहीं इसका उपयोग तब जब तक आप वास्तव क्यों आपको इसकी आवश्यकता!

स्रोत:

https://chromium.googlesource.com/chromium/src/+/d8fc089b62cd4f8d907acff6fb3f5ff58f168697%5E%21/

(नोट जो window.atob('dGhpc2lzdW5zYWZl')हल करता है thisisunsafe)

स्रोत का नवीनतम संस्करण @ https://chromium.googlesource.com/chromium/src/+/refs/heads/master/compenders/security_interstitials/core/browser/resources-interstitial_large.js और window.atobफ़ंक्शन निष्पादित किया जा सकता है। एक जे एस सांत्वना।

Chrome टीम ने बाईपास वाक्यांश (पहली बार) क्यों बदला इसके बारे में पृष्ठभूमि के लिए:

https://bugs.chromium.org/p/chromium/issues/detail?id=581189

यदि बाकी सब विफल रहता है (समाधान # 1)

यदि "आगे बढ़ना" विकल्प उपलब्ध नहीं है, तो त्वरित वन-ऑफ़ के लिए, और न ही बाईपास वाक्यांश काम कर रहा है, यह हैक अच्छी तरह से काम करता है:

  1. localhostइस ध्वज को सक्षम करने से प्रमाणपत्र त्रुटियों की अनुमति दें (ध्यान दें कि ध्वज का मान बदलने के बाद Chrome को पुनरारंभ की आवश्यकता है):

    chrome://flags/#allow-insecure-localhost

    (और वोट-अप जवाब https://stackoverflow.com/a/31900210/430128 @ क्रिस द्वारा)

  2. यदि आप जिस साइट से जुड़ना चाहते हैं localhost, वह हो चुका है। अन्यथा, स्थानीय रूप से पोर्ट 8090 पर सुनने और broken-remote-site.comपोर्ट 443 पर कनेक्ट करने के लिए एक टीसीपी सुरंग सेटअप करें, सुनिश्चित करें कि आपने socatटर्मिनल विंडो में इस तरह से कुछ स्थापित और चलाया है:

    socat tcp-listen:8090,reuseaddr,fork tcp:broken-remote-site.com:443

  3. पर जाएं 8090: https: // स्थानीय होस्ट आपके ब्राउज़र में।

यदि बाकी सब विफल रहता है (समाधान # 2)

"यदि अन्य सभी विफल रहता है (समाधान # 1)" के समान, यहाँ हम ngrok का उपयोग करके हमारी स्थानीय सेवा के लिए एक प्रॉक्सी कॉन्फ़िगर करते हैं । क्योंकि आप या तो TLS के माध्यम से ngrok http सुरंगों का उपयोग कर सकते हैं (जिस स्थिति में इसे मान्य प्रमाण पत्र के साथ ngrok द्वारा समाप्त किया जाता है), या गैर-TLS समापन बिंदु के माध्यम से, ब्राउज़र अवैध प्रमाणपत्रों के बारे में शिकायत नहीं करेगा।

डाउनलोड करें और एनरोक स्थापित करें और फिर इसके माध्यम से उजागर करें ngrok.io:

ngrok http https://localhost

ngrok शुरू हो जाएगा और आपको एक होस्ट नाम प्रदान करेगा जिसे आप कनेक्ट कर सकते हैं, और सभी अनुरोधों को आपके स्थानीय मशीन पर वापस भेज दिया जाएगा।


10
जैसा कि quora.com/… पर कहा गया है , एक अन्य विकल्प पृष्ठ पर कहीं भी क्लिक करना है और "badidea" लिखना है
smihael

सेवा कार्यकर्ताओं के लिए https के साथ लोकलहोस्ट का उपयोग करने का प्रयास करने वाला कोई भी व्यक्ति, इफ-ऑल-फेल का पहला बिंदु क्रोम 60 ubuntu 14.04 पर मेरे लिए काम करता है
formatkaka

यह अभी भी प्रमाण पत्र को अमान्य मानेगा और पासवर्ड को काम करने से मना कर देगा
रे फॉस

34

एक परीक्षण वातावरण के लिए

आप उपयोग कर सकते हैं --ignore-certificate-errorsक्रोम लॉन्च करते समय कमांड लाइन पैरामीटर के रूप में (उबंटू पर संस्करण 28.0.1500.52 पर काम कर रहे हैं)।

यह त्रुटियों को अनदेखा करने और चेतावनी के बिना कनेक्ट करने का कारण होगा। यदि आपके पास पहले से ही क्रोम का संस्करण है, तो कमांड लाइन से रिलॉन्च करने से पहले आपको इसे बंद करने की आवश्यकता होगी या यह एक नई विंडो खोलेगी, लेकिन मापदंडों की अनदेखी करेगी।

मैं Intellij को डिबगिंग करते समय क्रोम को लॉन्च करने के लिए कॉन्फ़िगर करता हूं, क्योंकि परीक्षण सर्वर के पास कभी भी मान्य प्रमाण पत्र नहीं होते हैं।

मैं इस तरह से सामान्य ब्राउज़िंग की अनुशंसा नहीं करूंगा, क्योंकि प्रमाणपत्र जांच एक महत्वपूर्ण सुरक्षा विशेषता है, लेकिन यह कुछ के लिए उपयोगी हो सकता है।


5
यह विंडोज 8 में मेरे लिए काम किया! मैंने सिर्फ क्रोम शॉर्टकट> गुण> परिवर्तित 'लक्ष्य' फ़ील्ड को इस तरह से राइट क्लिक किया है (ध्यान दें कि -'ignign- प्रमाणपत्र-त्रुटियाँ 'को उद्धरण के बाद जोड़ा जाना चाहिए, और अंतरिक्ष के साथ): "C: \ Program Files (x86) \" Google \ Chrome \ Application \ chrome.exe "--ignore-certificate-त्रुटियाँ
mikhail-t

1
यह प्रश्न का उत्तर नहीं देता है, और इसका खतरनाक है। सवाल यह था कि क्रोम को एक स्व-हस्ताक्षरित सर्वर प्रमाणपत्र पर भरोसा कैसे किया जाए; चेतावनियों और त्रुटियों को नजरअंदाज करने का तरीका नहीं।
jww

1
यह एकमात्र समाधान है जिसने विंडोज 7 (64-बिट) के साथ क्रोम (63.0.3239.108) पर मेरे लिए काम किया। सुरक्षा के संबंध में मैंने डेस्कटॉप पर विशेष आइकन बनाया, जिसे मैं केवल स्थानीय वर्चुअल मशीन पर विकसित करते समय लॉन्च करता हूं। स्व-हस्ताक्षरित स्थानीय प्रमाण पत्र आयात करना, क्रोम ट्यूनिंग: // झंडे और एचएसटीएस डोमेन ने मदद नहीं की। Chrome को निश्चित रूप से उस पुराने अच्छे बटन को "सुरक्षा अपवाद जोड़ें" रखना चाहिए - यह मुझे बेकार सेटिंग्स से संघर्ष करने के 2 घंटे बचाएगा।
लुबोसद

इस ट्यूटोरियल ने एक आकर्षण की तरह काम किया! youtube.com/watch?v=qoS4bLmstlk
जोनाथन मार्टिंस

20

जैसा कि किसी ने उल्लेख किया है, आपको ब्राउज़र की खिड़कियों की ही नहीं, सभी Chrome को पुनरारंभ करने की आवश्यकता है ऐसा करने का सबसे तेज़ तरीका एक टैब खोलना है ...

chrome://restart


अरे! बस यह बताना चाहता था कि यह मेरे लिए तय है। मैं ट्रस्ट स्टोर में एक कस्टम CA जोड़ रहा था, यह हमेशा मेरे लिए उस तरह से काम करता था। मैंने फ़ायरफ़ॉक्स की कोशिश की और त्रुटिपूर्ण काम किया लेकिन क्रोम नहीं। अंत में यह इसलिए था क्योंकि ऐसा लगता है कि आपको क्रोम को पूरी तरह से फिर से शुरू करने की आवश्यकता है। यह हो सकता है कि क्रोम उसी ट्रस्ट स्टोर का उपयोग करता रहे जब तक कि वे पृष्ठभूमि प्रक्रियाएं अभी भी चल रही हैं।
जोस Cifuentes

19

विन्डोज़ जून / 2017 विंडोज सर्वर 2012

मैंने @Brad Parks उत्तर का अनुसरण किया। विंडोज पर आपको rootCA.pem को ट्रस्टेड रूट सर्टिफिकेट अथॉरिटीज स्टोर में इंपोर्ट करना चाहिए।

मैंने निम्नलिखित कदम उठाए:

openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -newkey rsa:4096 -sha256 -days 1024 -out rootCA.pem
openssl req -new -newkey rsa:4096 -sha256 -nodes -keyout device.key -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 2000 -sha256 -extfile v3.ext

जहां v3.ext है:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
IP.1 = 192.168.0.2
IP.2 = 127.0.0.1

फिर, मेरे मामले में मेरे पास एक स्वयं होस्ट किया गया वेब ऐप है, इसलिए मुझे आईपी पते और पोर्ट के साथ प्रमाण पत्र को बांधने की आवश्यकता है, प्रमाण पत्र निजी कुंजी जानकारी के साथ मेरे स्टोर पर होना चाहिए, इसलिए मैंने पीएफएक्स प्रारूप को निर्यात किया।

openssl pkcs12 -export -out device.pfx -inkey device.key -in device.crt

एमएमसी कंसोल (फाइल / जोड़ें या हटाएं स्नैप-इन / सर्टिफिकेट / ऐड / कंप्यूटर अकाउंट / लोकल कॉमप्यूटर / ओके) के साथ मैंने पर्सनल स्टोर में pfx फाइल इंपोर्ट की।

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

netsh http add sslcert ipport=0.0.0.0:12345 certhash=b02de34cfe609bf14efd5c2b9be72a6cb6d6fe54 appid={BAD76723-BF4D-497F-A8FE-F0E28D3052F4}

सर्टिफिकेट = सर्टिफिकेट थमप्रिंट

appid = GUID (आपकी पसंद)

पहले मैंने अलग-अलग तरीकों से ट्रस्टेड रूट सर्टिफिकेट अथॉरिटीज पर सर्टिफिकेट "device.crt" इम्पोर्ट करने की कोशिश की लेकिन मुझे अभी भी वही त्रुटि मिल रही है:

यहां छवि विवरण दर्ज करें

लेकिन मुझे एहसास हुआ कि मुझे रूट अथॉरिटी का प्रमाणपत्र आयात करना चाहिए, डोमेन के लिए प्रमाण पत्र नहीं। इसलिए मैंने एमएमसी कंसोल (फाइल / ऐड / रिमूव स्नैप-इन / सर्टिफिकेट / ऐड / कंप्यूटर अकाउंट / लोकल कॉमप्यूटर / ओके) का इस्तेमाल किया। मैंने ट्रस्टेड रूट सर्टिफिकेट अथॉरिटीज की दुकान में rootCA.pem का आयात किया।

यहां छवि विवरण दर्ज करें

Chrome को पुनः प्रारंभ करें और यह कार्य करता है।

लोकलहोस्ट के साथ:

यहां छवि विवरण दर्ज करें

या आईपी पते के साथ:

यहां छवि विवरण दर्ज करें

केवल एक चीज जो मैं हासिल नहीं कर सका, वह है अप्रचलित सिफर (चित्र पर लाल वर्ग)। इस बिंदु पर मदद की सराहना की जाती है।

Makecert के साथ यह संभव नहीं है SAN जानकारी जोड़ें। New-SelfSignCertificate (Powershell) के साथ आप SAN जानकारी जोड़ सकते हैं, यह भी काम करता है।


2
महत्वपूर्ण: OpenSSL को व्यवस्थापक के रूप में चलाएं।
जोस ए

यह सबसे अच्छा जवाब है और अभी भी क्रोम के लिए काम करता है [71.0.3578.98] जनवरी 2019 तक
ShadeBlack

वाह यह काम किया, बहुत धन्यवाद (क्रोम 75 - जुलाई 2019 पर)। netsh httpजब तक आप विंडोज़ सर्वर का उपयोग नहीं करते हैं, तब आपको कदम की आवश्यकता नहीं है। इसके अलावा, मुझे नहीं लगता कि pfx को प्रमाणित फ़ाइल को निर्यात करना आवश्यक है।

काम करने की पुष्टि की: क्रोम 81 - मई 2020 - विंडोज 7
पेट्रोसम

15
  1. विश्वसनीय रूट CA Store में CA प्रमाणपत्र जोड़ें।

  2. क्रोम पर जाएं और इस ध्वज को सक्षम करें!

chrome://flags/#allow-insecure-localhost

अंत में, बस * .me डोमेन या किसी भी मान्य डोमेन जैसे * .com और * .net का उपयोग करें और उन्हें होस्ट फ़ाइल में बनाए रखें। अपने स्थानीय देवों के लिए, मैं * .me या * .com का उपयोग करता हूं।

  1. होस्ट करने के लिए जोड़ें। सी: / विंडोज़ / system32 / ड्राइवरों / etc / hosts

    127.0.0.1 nextwebapp.me

नोट: यदि ऐसा करते समय ब्राउज़र पहले से ही खुला है, तो त्रुटि दिखाई देती रहेगी। इसलिए, कृपया ब्राउज़र को बंद करें और फिर से शुरू करें। बेहतर अभी तक, गुप्त पर जाएं या तत्काल प्रभाव के लिए एक नया सत्र शुरू करें।



मैंने केवल उन डोमेन नामों को जोड़ा है जिन्हें स्थानीय विकास में अनुमति दी गई है। * .me साइटों को विंडोज में होस्ट फ़ाइल में। लोग प्रमाणपत्र जोड़ते हैं, लेकिन कभी-कभी होस्ट सिर्फ SSL सत्यापन सत्यापित करने में विफल रहता है, भले ही प्रमाणपत्र ठीक से स्थापित हो। किस मामले में, हम एक नया सत्र बनाते हैं। मैंने केवल उन युक्तियों को जोड़ा है। मैं इस खरगोश छेद के माध्यम से बहुत गहरा गया हूं, इसलिए मैं यह सुनिश्चित करना चाहता था कि किसी को पता था कि अगर यह आवश्यक है तो क्या करना है।
एरियल

14

क्या आप सुनिश्चित हैं कि जिस साइट को प्रमाण पत्र के समान है, उसी पते पर सेवा दी जा रही है? मुझे क्रोम और एक स्व-हस्ताक्षरित प्रमाण पत्र के साथ समान समस्याएं थीं, लेकिन अंत में मैंने पाया कि यह केवल प्रमाणिक रूप से डोमेन नाम की मान्यता के बारे में अविश्वसनीय रूप से उपयुक्त था (जैसा कि यह होना चाहिए)।

Chrome के पास अपना प्रमाणित स्टोर नहीं है और वह विंडो का स्वयं उपयोग करता है। हालाँकि Chrome स्टोर में आयात करने का कोई तरीका नहीं प्रदान करता है, इसलिए आपको उन्हें IE के माध्यम से जोड़ना चाहिए।

Google Chrome में प्रमाणपत्र स्थापित करना

Internet Explorer में प्रमाणपत्र स्थापित करना

स्व-हस्ताक्षरित सेर्ट्स बनाने के लिए अलग-अलग दृष्टिकोणों के एक जोड़े के लिए भी इस पर एक नज़र डालें (मैं मान रहा हूं कि आप IIS का उपयोग कर रहे हैं जैसा आपने उल्लेख नहीं किया है)।

IIS 7 में स्व हस्ताक्षरित प्रमाण पत्र कैसे बनाएँ


विचाराधीन साइट लोकलहोस्ट है , और प्रमाणपत्र का सीएन "लोकलहोस्ट" है। हां, मैंने विंडोज के सर्टिफिकेट स्टोर में प्रमाण पत्र स्थापित किया था। IE और Chrome दोनों प्रमाणपत्र के बारे में शिकायत करते हैं।
पोझानसन

सुनिश्चित करें कि आप IIS या Apache का उपयोग कर रहे हैं, लेकिन IIS के लिए स्व-हस्ताक्षरित सीट्स बनाने पर मैंने जो अतिरिक्त लिंक जोड़ा है, उसकी जाँच करें।
इरा राईनी

प्रमाणित भाग पर डोमेन नाम की मान्यता के बारे में अविश्वसनीय रूप से अचार के कारण : क्या कोई इसके बारे में अधिक जानता है? मुझे एक रूट प्रमाणपत्र के साथ एंड्रॉइड 9 पर एक समस्या है (यह 2019 है), जिसे Google क्रोम द्वारा असुरक्षित के रूप में दोषी ठहराया गया है। यह एफएफ के लिए और डेस्कटॉप पर ठीक है।
बैरदेव

7

मैंने यह सुझाव देने की प्रक्रिया को समाप्त कर दिया कि bjnord ने कौन सा सुझाव दिया था: Google Chrome, Mac OS X और स्व-हस्ताक्षरित SSL प्रमाणपत्र

ब्लॉग में जो दिखाया गया है वह काम नहीं आया।

हालाँकि, ब्लॉग में एक टिप्पणी सोने की थी:

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain site.crt

आपको प्रमाणित फ़ाइल प्राप्त करने के तरीके पर ब्लॉग का पालन करना होगा, इसके बाद आप ऊपर दिए गए आदेश का उपयोग कर सकते हैं और जाने के लिए अच्छा होना चाहिए।


7

लिनक्स पर क्रोमियम पर एसएसएल सीरेट्स के प्रबंधन के लिए जीयूआई ने मेरे लिए ठीक से काम नहीं किया। हालांकि, उनके डॉक्स ने सही जवाब दिया। ट्रिक नीचे कमांड चलाने के लिए थी जो स्व-हस्ताक्षरित एसएसएल सर्टिफिकेट आयात करती है। बस के नाम को बदल <certificate-nickname>औरcertificate-filename.cer , फिर पुनः आरंभ क्रोमियम / क्रोम।

डॉक्स से:

लिनक्स पर, क्रोमियम एनएसएस साझा डीबी का उपयोग करता है। यदि अंतर्निहित प्रबंधक आपके लिए काम नहीं करता है, तो आप एनएसएस कमांड लाइन टूल्स के साथ प्रमाण पत्र कॉन्फ़िगर कर सकते हैं।

उपकरण प्राप्त करें

  • Debian / Ubuntu: sudo apt-get install libnss3-tools

  • फेडोरा: su -c "yum install nss-tools"

  • Gentoo: su -c "echo 'dev-libs/nss utils' >> /etc/portage/package.use && emerge dev-libs/nss"(आपको nssउपसर्ग के साथ नीचे सभी कमांड लॉन्च करने की आवश्यकता है , उदाहरण के लिए nsscertutil।)sudo zypper install mozilla-nss-tools

स्व-हस्ताक्षरित सर्वर प्रमाणपत्र पर भरोसा करने के लिए, हमें उपयोग करना चाहिए

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n <certificate-nickname> -i certificate-filename.cer

सभी प्रमाणपत्रों की सूची बनाएं

certutil -d sql:$HOME/.pki/nssdb -L

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

SSL क्लाइंट प्रमाणीकरण के लिए एक व्यक्तिगत प्रमाणपत्र और निजी कुंजी जोड़ें कमांड का उपयोग करें:

pk12util -d sql:$HOME/.pki/nssdb -i PKCS12_file.p12

PKCS # 12 फ़ाइल में संग्रहीत एक व्यक्तिगत प्रमाणपत्र और निजी कुंजी आयात करने के लिए। व्यक्तिगत प्रमाणपत्र का TRUSTARGS "u, u, u" पर सेट किया जाएगा।

कोई प्रमाणपत्र हटाएं certutil -d sql:$HOME/.pki/nssdb -D -n <certificate nickname>

इसके अंश: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux_cert_management.md


7

फिलिपो वलसोर्दा ने बहुत सारे ट्रस्ट स्टोर के mkcertलिए ऐसा करने के लिए एक क्रॉस-प्लेटफ़ॉर्म टूल लिखा । मुझे लगता है कि उन्होंने इसे उसी कारण से लिखा है कि इस सवाल के बहुत सारे उत्तर हैं: यह एक विश्वसनीय रूट CA द्वारा हस्ताक्षरित SubjectAltName प्रमाणपत्र के लिए "सही" काम करने के लिए एक दर्द है।

mkcert विंडोज, मैकओएस और कई लिनक्स फ्लेवर के लिए प्रमुख पैकेज प्रबंधन प्रणालियों में शामिल है।

mkcert

mkcertस्थानीय रूप से विश्वसनीय विकास प्रमाणपत्र बनाने के लिए एक सरल उपकरण है। इसके लिए कॉन्फ़िगरेशन की आवश्यकता नहीं है।

$ mkcert -install
Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊

$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨

Created a new certificate valid for the following names 📜
 - "example.com"
 - "*.example.com"
 - "example.test"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅

6

URL के बगल में थोड़ा पार किए गए लॉक आइकन पर क्लिक करने पर, आपको इस तरह दिखने वाला एक बॉक्स मिलेगा:

यहां छवि विवरण दर्ज करें

प्रमाणपत्र सूचना लिंक पर क्लिक करने के बाद , आप निम्नलिखित संवाद देखेंगे:

यहां छवि विवरण दर्ज करें

यह आपको बताता है कि कौन सा सर्टिफिकेट स्टोर सही है, यह ट्रस्टेड रूट सर्टिफिकेशन अथॉरिटीज स्टोर है।

आप उस स्टोर में प्रमाणपत्र जोड़ने या उपयोग करने के लिए अन्य उत्तरों में उल्लिखित विधियों में से किसी एक का उपयोग कर सकते हैं:

certutil -addstore -user "ROOT" cert.pem
  • ROOT पहले उल्लेखित सर्टिफिकेट स्टोर का आंतरिक नाम है।
  • cert.pem आपके स्व-हस्ताक्षरित प्रमाणपत्र का नाम है।

1
certutil -addstore -user "ROOT" cert.pemविंडोज है?
पचेरियर

1
@ स्पेसर: सही है, यह विंडोज के लिए है।
डेर होकस्टापलर

आप में यह है मेव Trusted Root Certification Authorities: लेकिन अभी भी बनी हुई है जारी imgur.com/a/mjlglVz imgur.com/a/n8BFH5S Windows 10, क्रोम 78
tryingHard

6

इसने मेरे लिए काम किया। देखें: http://www.robpeck.com/2010/10/google-chrome-mac-os-x-and-self-signed-ssl-certports/#.Vcy8_ZNVhBc

एड्रेस बार में, X के साथ थोड़ा लॉक पर क्लिक करें। यह एक छोटी सूचना स्क्रीन लाएगा। "प्रमाणपत्र सूचना" कहने वाले बटन पर क्लिक करें।

छवि को अपने डेस्कटॉप पर क्लिक करें और खींचें। यह थोड़ा प्रमाण पत्र जैसा दिखता है।

इसे डबल क्लिक करें। यह किचेन एक्सेस की उपयोगिता लाएगा। इसे अनलॉक करने के लिए अपना पासवर्ड डालें।

सुनिश्चित करें कि आप प्रमाणपत्र कुंजीचैन में प्रमाणपत्र जोड़ते हैं, न कि लॉगिन चाबी का गुच्छा। "ऑलवेज ट्रस्ट" पर क्लिक करें, भले ही यह कुछ भी करने के लिए प्रतीत न हो।

इसे जोड़ने के बाद, इसे डबल-क्लिक करें। आपको फिर से प्रमाणित करना पड़ सकता है।

"ट्रस्ट" अनुभाग का विस्तार करें।

"इस प्रमाणपत्र का उपयोग करते समय," हमेशा विश्वास करने के लिए "सेट"


6

मैंने सब कुछ आज़माया और इससे क्या काम हुआ: आयात करते समय, सही श्रेणी का चयन करें, अर्थात् विश्वसनीय रूट प्रमाणपत्र प्राधिकारी :

(क्षमा करें यह जर्मन है, लेकिन बस छवि का पालन करें)

यहां छवि विवरण दर्ज करें


6
mkdir CA
openssl genrsa -aes256 -out CA/rootCA.key 4096
openssl req -x509 -new -nodes -key CA/rootCA.key -sha256 -days 1024 -out CA/rootCA.crt

openssl req -new -nodes -keyout example.com.key -out domain.csr -days 3650 -subj "/C=US/L=Some/O=Acme, Inc./CN=example.com"
openssl x509 -req -days 3650 -sha256 -in domain.csr -CA CA/rootCA.crt -CAkey CA/rootCA.key -CAcreateserial -out example.com.crt -extensions v3_ca -extfile <(
cat <<-EOF
[ v3_ca ]
subjectAltName = DNS:example.com
EOF
)

1
यह केवल एक है जिसने मेरे लिए क्रोम 77 के साथ काम किया। मेरा दिन बचाने के लिए धन्यवाद।
रोमेन

जनरेट की गई फ़ाइलों का उपयोग कैसे किया जाता है? मैं समझता हूं कि डोमेन .crt और .key फ़ाइलों का उपयोग कैसे करें, लेकिन .csr फ़ाइल के लिए क्या है? और मैं रूटसीए का उपयोग कैसे करूं। * फाइलें? कृपया अपने उत्तर पर विस्तार करें ...
चिवड़ा

बहुत बहुत धन्यवाद, आपने मेरा दिन बचाया!
दिनांक

6

यह पोस्ट पहले से ही प्रतिक्रियाओं से भर गई है, लेकिन मैंने क्रोम (टेस्टेड इन ) में मान्य स्व-हस्ताक्षरित टीएलएस प्रमाणपत्र उत्पन्न करना आसान बनाने के लिए कुछ अन्य उत्तरों के आधार पर एक बैश स्क्रिप्ट बनाई । आशा है कि यह दूसरों के लिए उपयोगी है।Chrome 65.x

स्व-हस्ताक्षरित- tls bash script

प्रमाण पत्र स्थापित करने के बाद ( और विश्वास करें ), Chrome को पुनः आरंभ करना न भूलें ( chrome://restart)


एक और उपकरण की जाँच के लायक है CloudFlare का cfsslटूलकिट:

cfssl


6

Windows में एक स्व हस्ताक्षरित प्रमाण पत्र बनाने के लिए कि Chrome v58 और बाद में भरोसा करेगा, उन्नत विशेषाधिकार के साथ Powershell लॉन्च करें और टाइप करें:

New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Subject "fruity.local" -DnsName "fruity.local", "*.fruity.local" -FriendlyName "FruityCert" -NotAfter (Get-Date).AddYears(10)
#notes: 
#    -subject "*.fruity.local" = Sets the string subject name to the wildcard *.fruity.local
#    -DnsName "fruity.local", "*.fruity.local"
#         ^ Sets the subject alternative name to fruity.local, *.fruity.local. (Required by Chrome v58 and later)
#    -NotAfter (Get-Date).AddYears(10) = make the certificate last 10 years. Note: only works from Windows Server 2016 / Windows 10 onwards!!

एक बार जब आप ऐसा कर लेते हैं, तो प्रमाण पत्र व्यक्तिगत कंप्यूटर प्रमाणपत्र के तहत स्थानीय कंप्यूटर प्रमाणपत्र में सहेज लिया जाएगा स्टोर के ।

आप इस प्रमाणपत्र को विश्वसनीय रूट प्रमाणन प्राधिकारी \ प्रमाण पत्र स्टोर में कॉपी करना चाहते हैं।

ऐसा करने का एक तरीका: Windows प्रारंभ बटन पर क्लिक करें, और टाइप करें certlm.msc। फिर नीचे दिए स्क्रीनशॉट के अनुसार ट्रस्टेड रूट सर्टिफिकेशन अथॉरिटीज / सर्टिफिकेट स्टोर में नए बनाए गए सर्टिफिकेट को ड्रैग और ड्रॉप करें । यहां छवि विवरण दर्ज करें


कृपया इसे मैक में कैसे करें? धन्यवाद :)
Artanis Zeratul

@mpowrie। इसे जेनरेट करने के बाद, मैं इसे अपाचे वेबसर्वर से कैसे जोड़ूँ? लोकलहोस्ट सर्वर पर।
इवेदी ओकोंकवो

Ifedi Okonkwo: मुझे अपाचे वेबसर्वर सॉरी के साथ यकीन नहीं है, लेकिन IIS के साथ आप टाइप https की साइट बाइंडिंग जोड़ते हैं, पूरी तरह से योग्य होस्टनाम शामिल करें, और एसएसएल प्रमाणपत्र का चयन करें।
मप्रवाह

यह एक आकर्षण की तरह काम करता है। मैं कहता हूं कि आपको एक अतिरिक्त कदम करने की आवश्यकता होगी यदि आप उस प्रमाणपत्र को बाध्यकारी के रूप में असाइन करना चाहते हैं ... और यह कि प्रमाण पत्र को व्यक्तिगत> प्रमाण पत्र में भी होना चाहिए। किसी कारण से, खींचना और गिराना, वास्तव में इसे व्यक्तिगत सेर्ट्स से हटा दिया और इसे ट्रस्टेड सेर्ट्स में रखा। इसलिए सुनिश्चित करें कि आप इसे कॉपी और पेस्ट करें।
StephenPAdams

5

SSL / HTTPS लोकलहोस्ट फिक्स mac / osx पर:

  1. अपने https लोकलहोस्ट वातावरण को खोलने का प्रयास करते समय अपने एड्रेस बार में क्रॉस के साथ लाल लॉक पर क्लिक करें। प्रमाणपत्र के बारे में कुछ जानकारी के साथ एक विंडो खुलेगी।

  2. "विवरण" जानकारी विंडो पर क्लिक करें

  3. क्रोम डेवलपर टूल टैब 'सुरक्षा' पर खुलता है। View Certificate पर क्लिक करें । प्रमाणपत्र छवि
  4. इसे अपने 'सिस्टम' किचेन में जोड़ें (न कि आपका 'लॉगिन' किचेन जिसे डिफ़ॉल्ट रूप से चुना गया है)।

  5. अपना चाबी का गुच्छा (फिर से) खोलें और प्रमाण पत्र ढूंढें। उस पर क्लिक करें और सुनिश्चित करें कि आप सभी पर "विश्वास" करते हैं।

  6. क्रोम को पुनरारंभ करें और इसे काम करना चाहिए।


स्टुपिड ग्राफिकल इंटरफ़ेस MacoOS 10.14.5 में प्रमाणपत्र को स्वीकार नहीं कर सकता है, लेकिन आप इसे आयात कर सकते हैं security import filename.pem -k ~/Library/Keychains/login.keychain। ग्राफिकल एक त्रुटि देता है -25294
बोटकोड

5

मैं एक ही समस्या का सामना कर रहा था: मैंने प्रमाणपत्र को विंडोज के विश्वसनीय रूट अथॉरिटी स्टोर में स्थापित किया था, और क्रोम ने अभी भी त्रुटि के साथ प्रमाण पत्र से इनकार कर दिया है ERR_CERT_COMMON_NAME_INVALID। ध्यान दें कि जब प्रमाण पत्र स्टोर में ठीक से स्थापित नहीं है, तो त्रुटि हैERR_CERT_AUTHORITY_INVALID

जैसा कि त्रुटि के नाम से संकेत मिलता है, यह टिप्पणी और यह प्रश्न , प्रमाणपत्र में घोषित डोमेन नाम में समस्या थी। प्रमाणपत्र बनाते समय "सामान्य नाम" के लिए संकेत दिए जाने पर, मुझे उस साइट का नाम दर्ज करना होगा जिसका उपयोग मैं साइट तक पहुँचने के लिए कर रहा था ( localhostमेरे मामले में)। मैंने क्रोम का उपयोग करना फिर से शुरू किया chrome://restartऔर इस नए प्रमाणपत्र से आखिरकार खुश हुआ।


मैं लोकलहोस्ट का भी उपयोग कर रहा हूं, लेकिन क्रोम इसके बारे में खुश नहीं है। imgur.com/a/mjlglVz विंडोज 10, क्रोम 78। मैंने यहां से निर्देश का पालन किया: stackoverflow.com/a/44398368/4983983 मैं लोकलहोस्ट के
कोशिश कर रहा

सामान्य नाम "लोकलहोस्ट" का उपयोग करना लगभग काम कर गया, और आखिरकार यह तब काम किया जब मैंने विकल्प के साथ क्रोम भी लॉन्च किया--allow-insecure-localhost
pestophagous

5

Chrome 58+ के कारण मुझे मैक के लापता होने के कारण सर्टिफिकेट में त्रुटि होने लगी । यहाँ पता बार पर ग्रीन लॉक कैसे प्राप्त करें।

  1. निम्नलिखित कमांड के साथ एक नया प्रमाणपत्र बनाएं:

    openssl req \
      -newkey rsa:2048 \
      -x509 \
      -nodes \
      -keyout server.key \
      -new \
      -out server.crt \
      -subj /CN=*.domain.dev \
      -reqexts SAN \
      -extensions SAN \
      -config <(cat /System/Library/OpenSSL/openssl.cnf \
          <(printf '[SAN]\nsubjectAltName=DNS:*.domain.dev')) \
      -sha256 \
      -days 720
  2. server.crtअपने किचेन में आयात करें , फिर प्रमाणपत्र में डबल क्लिक करें, ट्रस्ट का विस्तार करें , और हमेशा ट्रस्ट का चयन करें

Google Chrome में पृष्ठ https://domain.dev को ताज़ा करें , इसलिए हरे रंग का लॉक वापस आ गया है।


यह उप-डोमेन के लिए काम करता है api.domain.devलेकिन मेरे पास अभी भी एक चेतावनी पृष्ठ है domain.dev: This server could not prove that it is domain.dev; its security certificate is from *.domain.dev. This may be caused by a misconfiguration or an attacker intercepting your connection.कोई विचार?
फ्रांस्वा रोमेन

5

MacOS पर Chrome के लिए, यदि आपने एक प्रमाणपत्र तैयार किया है:

  • Chrome से बाहर निकलें ( cmd+ Q)।
  • किचेन एक्सेस ऐप शुरू करें और "प्रमाणपत्र" श्रेणी खोलें।
  • अपनी प्रमाणपत्र फ़ाइल को किचेन एक्सेस विंडो पर खींचें और प्रमाणपत्र फ़ाइल के लिए पासवर्ड टाइप करें।
  • अपने प्रमाणपत्र पर डबल क्लिक करें और "ट्रस्ट" सूची को प्रकट करें।
    • पंक्ति में "जब इस प्रमाण पत्र का उपयोग करते हैं, तो" हमेशा विश्वास करें "चुनें।"
    • इस सामान को बंद करें और अपना पासवर्ड टाइप करें।
  • Chrome प्रारंभ करें और सभी कैश साफ़ करें।
  • जांचें कि सब कुछ ठीक है।

5

इस पद्धति के माध्यम से असुरक्षित लोकलहोस्ट काम करना ठीक है क्रोम: // झंडे / # अनुमति-असुरक्षित-लोकलहोस्ट

बस इसके लिए आपको xxx.localhost को अपना विकास होस्टनाम बनाना होगा।

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