दिलचस्प पोस्ट
JQuery का उपयोग करके एचटीएमएल 5 वीडियो प्ले करें / रोकें क्या एक सरणी एक आदिम प्रकार या वस्तु है (या पूरी तरह से कुछ)? सूचियों / ट्यूपल्स (सूची / ट्यूपल) को सॉर्ट करने के लिए कैसे करें? android.util.AndroidRuntimeException: आप कड़ी चोट बर्खास्तगी और कार्रवाई बार गठबंधन नहीं कर सकते ओवरराइड करना बनाम विधि छुपा क्लिक किए गए बटन की आईडी प्राप्त करने के लिए JavaScript – onClick जावा मेमोरी लीक को कैसे ढूंढें सी + + प्रदर्शन चुनौती: std :: string रूपांतरण के लिए पूर्णांक कौन सा तरीका बेहतर प्रदर्शन करता है:। () बनाम। अंक ()> 0? <<से अधिक <<है? किसी अन्य ऐप से सेटिंग ऐप खोलना PHP में एकाधिक फ़ाइल अपलोड करें लम्बेडा / लिनक ऑब्जेक्ट्स के जरिए एक सूची छंटनी आईओएस 8 आईफोन पर यूआईपीओपरप्रदर्शन नियंत्रक क्यों नहीं जावा संग्रह सामान्य तरीके निकालें?

मैं स्वयं को हस्ताक्षर किए प्रमाण पत्र कैसे स्वीकार कर सकता हूं?

गिट का उपयोग करना, क्या यह एक स्व-हस्ताक्षरित प्रमाण पत्र स्वीकार करने के लिए कहने का एक तरीका है?

मैं एक जीआईटी सर्वर होस्ट करने के लिए एक https सर्वर का उपयोग कर रहा हूं, लेकिन अब प्रमाण पत्र स्वयं हस्ताक्षरित है

जब मैं पहली बार रेपो बनाने की कोशिश करता हूं:

git push origin master -f 

मुझे त्रुटि मिलती है:

 error: Cannot access URL https://the server/git.aspx/PocketReferences/, return code 22 fatal: git-http-push failed 

वेब के समाधान से एकत्रित समाधान "मैं स्वयं को हस्ताक्षर किए प्रमाण पत्र कैसे स्वीकार कर सकता हूं?"

किसी विशिष्ट प्रमाणपत्र को स्थायी रूप से स्वीकार करने के लिए

http.sslCAPath या http.sslCAInfo आज़माएं एडम स्पाइर्स के उत्तर में कुछ महान उदाहरण दिए गए हैं यह सवाल का सबसे सुरक्षित समाधान है।

एकल जीआईटी कमांड के लिए TLS / SSL सत्यापन को अक्षम करने के लिए

सही विन्यास चर के साथ git को पास करने का प्रयास करें, या फ्लो के जवाब का प्रयोग करें:

 git -c http.sslVerify=false clone https://example.com/path/to/git 

विशिष्ट रिपॉजिटरी के लिए SSL सत्यापन अक्षम करने के लिए

यदि रिपॉजिटरी पूरी तरह से आपके नियंत्रण में है, तो आप कोशिश कर सकते हैं:

 git config http.sslVerify false 

टीएलएस (/ SSL) प्रमाणपत्र सत्यापन को विश्व स्तर पर अक्षम करना एक बहुत ही असुरक्षित अभ्यास है। ऐसा मत करो ऊपर दिए गए कमांड को --global मॉडिफायर के साथ जारी न करें।


git में काफी कुछ SSL विन्यास विकल्प हैं। git config के मैन पेज से:

 http.sslVerify Whether to verify the SSL certificate when fetching or pushing over HTTPS. Can be overridden by the GIT_SSL_NO_VERIFY environment variable. http.sslCAInfo File containing the certificates to verify the peer with when fetching or pushing over HTTPS. Can be overridden by the GIT_SSL_CAINFO environment variable. http.sslCAPath Path containing files with the CA certificates to verify the peer with when fetching or pushing over HTTPS. Can be overridden by the GIT_SSL_CAPATH environment variable. 

कुछ अन्य उपयोगी SSL विन्यास विकल्प:

 http.sslCert File containing the SSL certificate when fetching or pushing over HTTPS. Can be overridden by the GIT_SSL_CERT environment variable. http.sslKey File containing the SSL private key when fetching or pushing over HTTPS. Can be overridden by the GIT_SSL_KEY environment variable. http.sslCertPasswordProtected Enable git's password prompt for the SSL certificate. Otherwise OpenSSL will prompt the user, possibly many times, if the certificate or private key is encrypted. Can be overridden by the GIT_SSL_CERT_PASSWORD_PROTECTED environment variable. 

आप true करने के लिए GIT_SSL_NO_VERIFY सेट कर सकते हैं:

 GIT_SSL_NO_VERIFY=true git clone https://example.com/path/to/git 

या वैकल्पिक रूप से गिट को कमांड लाइन पर कनेक्शन की पुष्टि न करें:

 git -c http.sslVerify=false clone https://example.com/path/to/git 

ध्यान दें कि यदि आप SSL / TLS प्रमाण पत्र सत्यापित नहीं करते हैं, तो आप MitM हमलों के लिए अतिसंवेदनशील होते हैं

मैं मौजूदा उत्तर के [संपादित करें: मूल संस्करणों] का एक बड़ा प्रशंसक नहीं हूं, क्योंकि सुरक्षा जांच को अक्षम करना एक अंतिम उपाय होना चाहिए, न कि पहले समाधान की पेशकश की। हालांकि आप आत्म-हस्ताक्षरित प्रमाणपत्रों को सत्यापन के कुछ अतिरिक्त तरीके के बिना पहली रसीद पर भरोसा नहीं कर सकते, इसके बाद के git संचालन के लिए प्रमाण पत्र का उपयोग करते हुए कम से कम हमलों के लिए ज़िंदगी बहुत कठिन बना देता है जो प्रमाण पत्र डाउनलोड करने के बाद ही होते हैं। दूसरे शब्दों में, यदि आपके द्वारा डाउनलोड किए गए प्रमाणपत्र वास्तविक है, तो आप उस बिंदु से अच्छे हैं इसके विपरीत, यदि आप केवल सत्यापन अक्षम करते हैं तो आप किसी भी समय किसी भी प्रकार के आदमी-इन-द-मध्य हमले के लिए व्यापक रूप से खुले हैं।

एक विशिष्ट उदाहरण देने के लिए: प्रसिद्ध repo.or.cz रिपॉजिटरी एक स्व-हस्ताक्षरित प्रमाणपत्र प्रदान करता है । मैं उस फाइल को डाउनलोड कर सकता / सकती हूं, इसे /etc/ssl/certs तरह कहीं और रखो:

 # Initial clone GIT_SSL_CAINFO=/etc/ssl/certs/rorcz_root_cert.pem \ git clone https://repo.or.cz/org-mode.git # Ensure all future interactions with origin remote also work cd org-mode git config http.sslCAInfo /etc/ssl/certs/rorcz_root_cert.pem 

ध्यान दें कि यहां स्थानीय git config (यानी --global ) के बिना इसका अर्थ है कि यह स्वयं-हस्ताक्षरित प्रमाणपत्र केवल इस विशेष भंडार के लिए विश्वसनीय है, जो कि अच्छा है यह GIT_SSL_CAPATH का उपयोग करने से भी अच्छा है क्योंकि यह एक अलग सर्टिफिकेट प्राधिकरण के माध्यम से सत्यापन कर रही है जो git के खतरे को समाप्त कर सकता है जो संभावित रूप से समझौता कर सकता है।

मैं इस समस्या में आ रहा हूं, इसलिए सर्वर से स्व-हस्ताक्षरित प्रमाण पत्र डाउनलोड करने और ~ / .gitcerts पर इसे स्थापित करने के लिए एक स्क्रिप्ट लिखा है, फिर इन प्रमाणपत्रों को इंगित करने के लिए git-config अद्यतन करें। इसे वैश्विक कॉन्फ़िग में संग्रहीत किया जाता है, इसलिए आपको प्रति दूरस्थ प्रति बार इसे चलाने की आवश्यकता है।

https://github.com/iwonbigbro/tools/blob/master/bin/git-remote-install-cert.sh

स्व-हस्ताक्षरित प्रमाणपत्र प्राधिकरणों के लिए वैश्विक .gitconfig

मेरे अपने और मेरे सहयोगियों के लिए यहां बताया गया है कि हम sslVerify को अक्षम किए बिना काम करने के लिए स्व-हस्ताक्षरित प्रमाणपत्र प्राप्त करने में कैसे कामयाब रहे हैं। अपने .gitconfig को git config --global -e .gitconfig git config --global -e का उपयोग करने के लिए .gitconfig संपादित करें :

 # Specify the scheme and host as a 'context' that only these settings apply # Must use Git v1.8.5+ for these contexts to work [credential "https://your.domain.com"] username = user.name # Uncomment the credential helper that applies to your platform # Windows # helper = manager # OSX # helper = osxkeychain # Linux (in-memory credential helper) # helper = cache # Linux (permanent storage credential helper) # https://askubuntu.com/a/776335/491772 # Specify the scheme and host as a 'context' that only these settings apply # Must use Git v1.8.5+ for these contexts to work [http "https://your.domain.com"] ################################## # Self Signed Server Certificate # ################################## # MUST be PEM format # Some situations require both the CAPath AND CAInfo sslCAInfo = /path/to/selfCA/self-signed-certificate.crt sslCAPath = /path/to/selfCA/ sslVerify = true ########################################### # Private Key and Certificate information # ########################################### # Must be PEM format and include BEGIN CERTIFICATE / END CERTIFICATE, # not just the BEGIN PRIVATE KEY / END PRIVATE KEY for Git to recognise it. sslCert = /path/to/privatekey/myprivatecert.pem # Even if your PEM file is password protected, set this to false. # Setting this to true always asks for a password even if you don't have one. # When you do have a password, even with this set to false it will prompt anyhow. sslCertPasswordProtected = 0 

संदर्भ:

  • गिट क्रेडेंशियल्स
  • गिट क्रेडेंशियल स्टोर
  • क्रेडेंशियल स्टोर के रूप में जीनोम कीरिंग का उपयोग करना
  • गीट कॉन्फ़िग http। <Url>। * Git v1.8.5 से समर्थित

विन्यास निर्दिष्ट करें जब git clone -इंग

यदि आपको इसे प्रति रेपो आधार पर लागू करने की आवश्यकता है, तो दस्तावेज़ीकरण आपको अपने रिपो डायरेक्टरी में git config --local को चलाने के लिए कहता है। अच्छी तरह से उपयोगी नहीं है जब आप रेपो को स्थानीय स्तर पर अभी तक नहीं मिला है, तो क्या यह है?

आप वैश्विक रूप से अपनी स्थानीय कॉन्फ़िग को ऊपर सेट करके global -> local होके-पॉकी कर सकते हैं और फिर उन सेटिंग्स को अपने स्थानीय रेपो कॉन्फ़िग के प्रति एक बार कॉपी करके कॉपी कर सकते हैं …

या आप जो कर सकते हैं वह git clone पर कॉन्फ़िग कमांड निर्दिष्ट करता है जो इसे git clone करने के बाद लक्ष्य रेपो पर लागू होता है।

 # Declare variables to make clone command less verbose OUR_CA_PATH=/path/to/selfCA/ OUR_CA_FILE=$OUR_CA_PATH/self-signed-certificate.crt MY_PEM_FILE=/path/to/privatekey/myprivatecert.pem SELF_SIGN_CONFIG="-c http.sslCAPath=$OUR_CA_PATH -c http.sslCAInfo=$OUR_CA_FILE -c http.sslVerify=1 -c http.sslCert=$MY_PEM_FILE -c http.sslCertPasswordProtected=0" # With this environment variable defined it makes subsequent clones easier if you need to pull down multiple repos. git clone $SELF_SIGN_CONFIG https://mygit.server.com/projects/myproject.git myproject/ 

एक लाइन

संपादित करें: वॉनसी का जवाब देखें जो विशिष्ट जीआईटी संस्करणों के लिए पूर्ण और सापेक्ष पथ के बारे में चेतावनी देते हैं जो 2.14.x / 2.15 से इस एक लाइनर

 git clone -c http.sslCAPath="/path/to/selfCA" -c http.sslCAInfo="/path/to/selfCA/self-signed-certificate.crt" -c http.sslVerify=1 -c http.sslCert="/path/to/privatekey/myprivatecert.pem" -c http.sslCertPasswordProtected=0 https://mygit.server.com/projects/myproject.git myproject/ 

CentOS unable to load client key

यदि आप इसे CentOS पर कर रहे हैं और आपकी .pem फ़ाइल आपको दे रही है

 unable to load client key: "-8178 (SEC_ERROR_BAD_KEY)" 

फिर आप यह स्टैक ओव्हरफ्लो जवाब चाहते हैं कि कैसे curl ओएस SSL के बजाय एनएसएस का उपयोग करता है

और आप स्रोत से curl को फिर से बनाना चाहते हैं:

 git clone http://github.com/curl/curl.git curl/ cd curl/ # Need these for ./buildconf yum install autoconf automake libtool m4 nroff perl -y #Need these for ./configure yum install openssl-devel openldap-devel libssh2-devel -y ./buildconf su # Switch to super user to install into /usr/bin/curl ./configure --with-openssl --with-ldap --with-libssh2 --prefix=/usr/ make make install 

कंप्यूटर को पुनरारंभ करने के बाद से libcurl अभी भी एक साझा पुस्तकालय के रूप में स्मृति में है

जब आप एसएसएलके या एसएसएलक्रर्ट का उपयोग कर एक लाइनर का इस्तेमाल करते हैं, तो सावधान रहें, जोश पीक के जवाब में :

 git clone -c http.sslCAPath="/path/to/selfCA" \ -c http.sslCAInfo="/path/to/selfCA/self-signed-certificate.crt" \ -c http.sslVerify=1 \ -c http.sslCert="/path/to/privatekey/myprivatecert.pem" \ -c http.sslCertPasswordProtected=0 \ https://mygit.server.com/projects/myproject.git myproject 

केवल गिट 2.14.एक्स / 2.15 (क्यू 3, 2015) ~username/mykey सही तरीके से व्याख्या करने में सक्षम हो जाएगा (जबकि यह अभी भी /path/to/privatekey तरह पूर्ण पथ की व्याख्या कर सकता है)।

जून 8 सी 15496 (20 जुलाई 2017) जूनो सी gitster ( gitster ) द्वारा देखें ।
सहायता-द्वारा: चार्ल्स बेली ( hashpling )
( जूनो सी gitster द्वारा gitstergitster – कमबख्त 17b1e1d , 11 अगस्त 2017)

http.c : http.sslcert और http.sslkey दोनों पथ नाम हैं

पीछे जब आधुनिक http_options () कोडपाथ 29508e1 पर विभिन्न http। * विकल्पों को पार्स करने के लिए बनाया गया था ("साझा किए गए HTTP अनुरोध कार्यक्षमता को पृथक करें", 2005-11-18, गीटक 0.99.9कि), और उसके बाद में कई के बीच अंतरण के लिए सही किया गया था विन्यास फाइलों में 7059cd9 (" http_init() : फिक्स कॉन्फिग फाइल पार्सिंग", 2009-03-09, http.sslkey 1.6.3-आरसी0), हमने विन्यास चर का http.sslkey किया है जैसे http.sslkey , http.sslcert सादे वेनिला स्ट्रिंग के रूप में, क्योंकि git_config_pathname() जो " ~[username]/ " उपसर्ग को समझ में नहीं आता

बाद में, हमने फ़ंक्शन का उपयोग करने के लिए उनमें से कुछ (अर्थात्, http.sslCAPath और http.sslCAInfo ) को परिवर्तित कर दिया, और शुरुआत से फ़ंक्शन का उपयोग करने के लिए http.cookeyFile http.pinnedpubkey जैसे चर जोड़ा। उसके कारण, ये चर सभी " ~[username]/ " उपसर्ग को समझते हैं

शेष दो चर, http.sslcert और http.sslkey को भी सम्मेलन से अवगत http.sslkey , क्योंकि वे दोनों फ़ाइलों के पथ नाम स्पष्ट हैं।

.gitconfig फ़ाइल में आप हस्ताक्षरित प्रमाणपत्र स्वीकार्य बनाने के लिए नीचे दिया गया मूल्य जोड़ सकते हैं

sslCAInfo = /home/XXXX/abc.crt

निम्न कमांड चलाएं:

 git config --global http.sslVerify false