আমি কীভাবে গিটকে স্ব স্বাক্ষরিত শংসাপত্র গ্রহণ করতে পারি?


648

গিট ব্যবহার করে, এটি স্ব-স্বাক্ষরিত শংসাপত্র গ্রহণ করার জন্য বলার উপায় আছে কি?

আমি গিট সার্ভার হোস্ট করতে একটি https সার্ভার ব্যবহার করছি তবে আপাতত শংসাপত্রটি স্বাক্ষরিত।

যখন আমি প্রথমবারের জন্য সেখানে রেপো তৈরি করার চেষ্টা করি:

git push origin master -f

আমি ত্রুটি পেয়েছি:

error: Cannot access URL     
https://the server/git.aspx/PocketReferences/, return code 22

fatal: git-http-push failed

4
আপনি কীভাবে জানবেন যে সমস্যাটি শংসাপত্র?
অ্যাম্বার

1
একটি পিসি পরিবর্তে অন্য ব্যবহারকারীর গিট সরঞ্জাম তাদের শংসাপত্রটি উপেক্ষা করতে দেয় এবং এটি কাজ করে। একটি ম্যাক থেকে, আমি কীভাবে উপেক্ষা করব তা বুঝতে পারি না।
ইয়ান ভিন্ক

গিট 2.1.1 সহ আমি যে ত্রুটিটি পেয়েছি: "মারাত্মক: 'https: //.../project.git/' অ্যাক্সেস করতে অক্ষম: এসএসএল শংসাপত্রের সমস্যা: শংসাপত্র শৃঙ্খলে স্ব স্বাক্ষরিত শংসাপত্র"
স্ট্যান কুর্দিজিয়াল

ওএসএক্স / ম্যাকিনটোস এ দেখে মনে হচ্ছে গিট sslcainfoবিকল্পটি ব্যবহার করবে না । যদি আপনি সফলভাবে curl --cacertআপনার রেপো পথটি টানতে ব্যবহার করতে পারেন তবে গিটটি কাজ করছে না, আপনার রহস্যজনক ওএসএক্স কীচেইন প্রোগ্রামটিতে শংসাপত্রটি যুক্ত করা উচিত। এখানে superuser.com/questions/605900/...
amwinter

আমি এই দস্তাবেজটি দরকারী gist.github.com/evantoli/f8c23a37eb3558ab8765
মোফাগগল হোশেন

উত্তর:


1165

স্থায়ীভাবে একটি নির্দিষ্ট শংসাপত্র গ্রহণ করতে

চেষ্টা করুন http.sslCAPathবা http.sslCAInfoঅ্যাডাম স্পায়ার্স এর উত্তর কিছু দুর্দান্ত উদাহরণ দেয়। এটিই প্রশ্নের সর্বাধিক সুরক্ষিত সমাধান।

একক গিট কমান্ডের জন্য টিএলএস / এসএসএল যাচাইকরণ অক্ষম করতে

সঠিক কনফিগার ভেরিয়েবলটি দিয়ে -cযাওয়ার চেষ্টা করুন gitবা ফ্লোয়ের উত্তরটি ব্যবহার করুন :

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

নির্দিষ্ট সংগ্রহস্থলের জন্য এসএসএল যাচাইকরণ অক্ষম করতে

যদি সংগ্রহস্থলটি পুরোপুরি আপনার নিয়ন্ত্রণে থাকে তবে আপনি চেষ্টা করতে পারেন:

git config --global http.sslVerify false

এতে বেশ কয়েকটি এসএসএল কনফিগারেশন বিকল্প রয়েছে git। ম্যান পৃষ্ঠা থেকে 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.

কয়েকটি অন্যান্য দরকারী এসএসএল কনফিগারেশন বিকল্পগুলি:

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.

40
'গিট কনফিগারেশন - গ্লোবাল http.ssl ভেরিফাই মিথ্যা' কৌতুকটি করেছিল। ধন্যবাদ!
ক্রিস গল্প

110
আপনার বিশ্বব্যাপী কখনও টিএলএস (/ এসএসএল) শংসাপত্র যাচাইকরণ অক্ষম করা উচিত নয়
ফ্লো

4
@ ফ্ল্লো - আমি সম্পূর্ণ সম্মত টিএলএস / এসএসএল শংসাপত্র যাচাইকরণ অক্ষম করার বিষয়ে আরও পোলমিক হওয়ার জন্য আমি এই (এখন বেশ পুরানো) উত্তরটি সম্পাদনা করেছি।
ক্রিস্টোফার

8
আমার কাছে এটি git -c http.sslVerify=false clone https://domain.com/path/to/gitআমার সমস্যার সমাধান করেছে, ধন্যবাদ ...
ফার্নান্দো গোমেস

2
@ ফ্ল্লো যদি আমরা এমন কাজের পরিবেশে থাকি যেখানে আমাদের নিয়োগকর্তা এমআইটিএম থাকে তবে বিশ্বব্যাপী টিএলএস / এসএসএল অক্ষম করার বিকল্প কী আছে?
স্টিভয়েসিয়াক

164

আপনি এতে সেট GIT_SSL_NO_VERIFYকরতে পারেন true:

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

মনে রাখবেন যে আপনি যদি এসএসএল / টিএলএস শংসাপত্রগুলি যাচাই না করেন তবে আপনি এমআইটিএম আক্রমণে সংবেদনশীল


2
আপনি একটি একক কমান্ডের জন্য একটি কনফিগার মান পরিবর্তন করতে -cপতাকাটি ব্যবহার করতে পারেন git। যদিও আমি মনে করি এই সিনট্যাক্সটি পরিষ্কার, তবে ভাল।
ক্রিস্টোফার

1
আহ, আমি -cগিট সম্পর্কে জানতাম না আমি আসলে মনে করি এটি পরিবেশকে দূষিত করার পরিবর্তে পরিষ্কার সমাধান। :)
ফ্লো

1
@ স্কাইলারস্যাভল্যান্ড নোট যা git -c http.sslVerify=false <gitSubCommand>মধ্যস্থতাকারীদের মাধ্যমেও কাজ করতে পারে।
ফ্লো

1
আমার লক্ষ করা উচিত যে এই সমাধানটি আপনাকে মধ্য-মধ্যবর্তী আক্রমণগুলির জন্য উন্মুক্ত করে।
ওমিক্রন

2
উত্তরটি কেবল সর্বনিম্ন সুরক্ষিত বিকল্প বর্ণনা করে ।
cp.engr

139

আমি বিদ্যমান উত্তরগুলির [সম্পাদনা: মূল সংস্করণ] এর বিশাল অনুরাগী নই , কারণ সুরক্ষা চেক অক্ষম করা প্রথম সমাধান নয়, সর্বশেষ সমাধান হতে হবে। যদিও আপনি কিছু অতিরিক্ত যাচাইয়ের পদ্ধতি ছাড়াই প্রথম প্রাপ্তিতে স্ব-স্বাক্ষরিত শংসাপত্রগুলিতে বিশ্বাস করতে পারবেন না, তবুও পরবর্তী gitক্রিয়াকলাপগুলির জন্য শংসাপত্রটি ব্যবহার করা কমপক্ষে জীবনকে আক্রমণগুলির জন্য আরও শক্ত করে তোলে যা কেবলমাত্র শংসাপত্রটি ডাউনলোড করার পরে ঘটে occur অন্য কথায়, আপনি ডাউনলোড করা শংসাপত্রটি যদি সত্যই হয় তবে আপনি সেই জায়গা থেকে ভাল good বিপরীতে, যদি আপনি কেবল যাচাইকরণ অক্ষম করেন তবে আপনি যে কোনও বিন্দুতে যে কোনও ধরণের ম্যান-ইন-মধ্য-আক্রমণে সম্পূর্ণ উন্মুক্ত ।

একটি নির্দিষ্ট উদাহরণ দিতে: বিখ্যাত 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কোনও পৃথক শংসাপত্র কর্তৃপক্ষের মাধ্যমে যাচাই করার ঝুঁকিটিকে হ্রাস করে যা সম্ভাব্যভাবে আপস করা হতে পারে।


3
কাকতালীয়ভাবে, http.sslCAPath libcurl এর ssl_capath যুক্তি ব্যবহার করে। আমি মনে করি আপনি /etc/ssl/certs/ডিরেক্টরিতে যে কোনও শংসাপত্রটি আসলেই সঞ্চয় করতে পারেন এবং এটি আপনার প্রয়োজনীয় সমস্ত জিনিসগুলি দক্ষতার সাথে সাজান। আমি এটি পরীক্ষা করিনি, মনে রাখবেন, তবে এটি আপনাকে --globalসার্টের পুরো গোছা দিয়ে একটি ব্যবহার করতে দেয় । মূল্যবান টেস্টিং, তবে।
ক্রিস্টোফার

6
SSL এর যাচাইকরণ পুরাপুরি নিষ্ক্রিয় ঝুঁকি বিবেচনা, এবং সত্য প্রশ্ন ছিল "আমি কীভাবে Git গ্রহণ করতে পারেন একটি স্ব স্বাক্ষরিত শংসাপত্র?", এই গৃহীত উত্তর হওয়া উচিত।
PLNech

5
একটি আদর্শ বিশ্বের, সেখানে ভালো কিছু হবেgit config http.validCertFingerprint <base64-encoded-hash-of-certifcate>
ফ্লো

1
ইন্টারনেটে একমাত্র উত্তর যা আসলে আমার দৃশ্যের জন্য কাজ করে। এটি প্রাইভেট সুরকার ভিসিএস লাইব্রেরি, এসএসএল-এর মাধ্যমে স্ব-হোস্টেড গিটল্যাবে হোস্ট করা হয়েছে যা আমার গিট দ্বারা সংস্করণিত প্রজেক্টে প্রয়োজন।
দেজভ

1
একটি তাজা ক্লোন থেকে; এটি একটি একক লাইনে করা যেতে পারে: git clone --config http.sslCAInfo=<path_to_cert> https://repo.or.cz/org-mode.git(পরে 'গিট কনফিগারেশন' কমান্ড কল করার দরকার নেই)।
হারুন

39

গিট স্ব-স্বাক্ষরিত শংসাপত্র কনফিগারেশন

TL; ড

সমস্ত এসএসএল যাচাইকরণ অক্ষম করুন না!

এটি একটি খারাপ সুরক্ষা সংস্কৃতি তৈরি করে। সেই ব্যক্তি হবেন না।

আপনার পরে থাকা কনফিগার কীগুলি হ'ল:

  • http.sslverify- সবসময় সত্য. উপরের নোট দেখুন।

এগুলি আপনার বিশ্বাসী হোস্ট শংসাপত্রগুলি কনফিগার করার জন্য

এগুলি এসএসএল চ্যালেঞ্জগুলির প্রতিক্রিয়া জানাতে আপনার শংসাপত্রটি কনফিগার করার জন্য।

নির্বাচিতভাবে নির্দিষ্ট হোস্টগুলিতে উপরের সেটিংস প্রয়োগ করুন।

.gitconfigস্ব-স্বাক্ষরিত শংসাপত্র কর্তৃপক্ষের জন্য গ্লোবাল

আমার নিজের এবং আমার সহকর্মীদের জন্য এখানে আমরা অক্ষম না করে কীভাবে স্ব স্ব স্বাক্ষরযুক্ত শংসাপত্রগুলি পেতে সক্ষম হয়েছি sslVerify। এগুলি যুক্ত করতে আপনার সম্পাদনা করুন.gitconfiggit config --global -e :

# 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

তথ্যসূত্র:

কনফিগ উল্লেখ করুন যখন git clone-ing

যদি আপনাকে এটি প্রতি রেপো ভিত্তিতে প্রয়োগ করতে হয়, ডকুমেন্টেশন আপনাকে কেবল git config --localআপনার রেপো ডিরেক্টরিতে চালনা করতে বলে । ভাল আপনি যখন স্থানীয়ভাবে রেপো ক্লোন করা এখনও পান না এটি কার্যকর নয়?

global -> localউপরে হিসাবে আপনার বৈশ্বিক কনফিগারেশন সেট করে আপনি হকি-পোকি করতে পারেন এবং তারপরে ক্লোন হয়ে গেলে সেগুলি সেগুলি আপনার স্থানীয় রেপো কনফিগারেশনে অনুলিপি করুন ...

অথবা আপনি যা করতে পারেন তা হ'ল কনফিগারেশন কমান্ডগুলি নির্দিষ্ট করে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/

এক রৈখিক

সম্পাদনা করুন: দেখুন VonC এর উত্তর এই এক মাছ ধরার নৌকা থেকে 2.14.x / 2.15 থেকে নির্দিষ্ট Git সংস্করণের জন্য পরম এবং আপেক্ষিক পাথ সম্পর্কে একটি সতর্কীকরণ আউট পয়েন্ট

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/

সেন্টওএস unable to load client key

আপনি যদি এটি সেন্টোজে চেষ্টা করছেন এবং আপনার .pemফাইল আপনাকে দিচ্ছে

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

তারপরে আপনি কীভাবে ওপেন এসএসএলেরcurl পরিবর্তে এনএসএস ব্যবহার করবেন সে সম্পর্কে এই স্ট্যাকওভারফ্লো উত্তরটি চাইবেন

এবং আপনি উত্স থেকে পুনর্নির্মাণ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

কম্পিউটার পুনরায় আরম্ভ করুন যেহেতু লাইবাকুরল এখনও একটি ভাগ করা লাইব্রেরি হিসাবে স্মৃতিতে রয়েছে

পাইথন, পিপ এবং কনডা

সম্পর্কিত : উইন্ডোতে পিপ ব্যবহার করা সিএ স্টোরটিতে কীভাবে কাস্টম সিএ রুট শংসাপত্র যুক্ত করবেন?


গিট এটি গ্রহণ করার আগে আমাকে নিশ্চিত করতে হয়েছিল যে স্ব-স্বাক্ষরিত সার্ভার শংসাপত্রটি পিইএম ফর্ম্যাটে রয়েছে। এছাড়াও উপরের উত্তরগুলির মধ্যে কয়েকটি সূচিত করে যে কেবলমাত্র একটি ব্যবহার করে শংসাপত্রের ফোল্ডারে পথ সরবরাহ করা দরকার http.sslCAPath। আমার ক্ষেত্রে, http.sslCAInfoনির্দিষ্ট ফাইলটি নির্দিষ্ট করতে আমাকে ব্যবহার করতে হয়েছিল। এসএসএস বৈধতা অক্ষম না করে গিটকে আমাদের ব্যক্তিগত গিটহাবের সাথে সংযোগ স্থাপনের অনুমতি দেওয়া হয়েছে।
জেরেফেথ

@ জারেফেথ এই তথ্যের জন্য ধন্যবাদ। আমি একই ইস্যুতে দৌড়ে গিয়েছিলাম যা CAPath এবং CAInfo উভয়েরই দরকার। যেহেতু আমাদের সিএ সার্টটি পিইএম ফর্ম্যাট ছিল তাই আমি এটি নথিভুক্ত করেছি। আমি এই সংযোজন দিয়ে উত্তর আপডেট করেছি। আপনি খুশি যে আপনি নিরাপদে সংযুক্ত হতে পেরেছিলেন।
জোশ পিক

আপনি সম্ভবত ক্লোন করতে এইচটিটিপিএস ব্যবহার করতে বাধ্য হন এবং শংসাপত্রের জগাখিচুড়ি বাইপাস করতে এসএসএইচ ব্যবহার করতে না পারলে এটি সম্ভবত সেরা দীর্ঘমেয়াদী "ফিক্স" উত্তর answer
ড্রাগন 788

আমি এই উত্তর যুক্ত করতে চলেছিলাম! খুশি যে ইতিমধ্যে অন্য কেউ এটি আবিষ্কার করেছে।
ফ্র্যাংকলিন ইউ 21

14

আমি এই সমস্যাটি দেখতে পাচ্ছি, তাই সার্ভার থেকে স্বাক্ষরিত শংসাপত্র ডাউনলোড করতে এবং এটি ~ / .gitcerts এ ইনস্টল করার জন্য একটি স্ক্রিপ্ট লিখেছি, তারপর এই শংসাপত্রগুলিকে নির্দেশ করতে গিট-কনফিগার আপডেট করুন। এটি গ্লোবাল কনফিগারেশনে সংরক্ষিত রয়েছে, সুতরাং আপনাকে কেবল এটি প্রতি দূরবর্তী একবার চালানো দরকার।

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


দুর্দান্ত, যদিও এটি বিশ্বব্যাপী পরিবর্তে স্থানীয় কনফিগারেশন ব্যবহার করার বিকল্পটি পাওয়া এমনকি আরও ভাল লাগবে।
অ্যাডাম স্পায়ার্স

3
আপনি সর্বদা এটি কাঁটাতে এবং --global বিকল্প ;-) অপসারণ করতে পারে
ক্রেগ

এটি বেশ দুর্দান্ত, এটি কি ব্যাচে আসে?
হাল্টার

10

এই উত্তরটি মাইকেল কাউফম্যান রচিত এই নিবন্ধ থেকে উদ্ধৃত হয়েছে ।

কর্পোরেট এসএসএল শংসাপত্র সহ উইন্ডোজের জন্য গিট ব্যবহার করুন

ইস্যু :

আপনার যদি কর্পোরেট এসএসএল শংসাপত্র থাকে এবং কনসোল বা ভিএসকোড থেকে আপনার রেপো ক্লোন করতে চান তবে নীচের ত্রুটি পাবেন:

মারাত্মক: ' https: // মাইজারের / টিএফএস / ডিফল্ট সংগ্রহ / _ গিট / প্রোজ / ' অ্যাক্সেস করতে অক্ষম : এসএসএল শংসাপত্রের সমস্যা: স্থানীয় ইস্যুকারী শংসাপত্র পেতে অক্ষম

সমাধান :

  1. রুটে স্ব-স্বাক্ষরিত শংসাপত্রটি কোনও ফাইলে রফতানি করুন। আপনি আপনার ব্রাউজারের মধ্যে থেকে এটি করতে পারেন।

  2. আপনার গিট ফোল্ডারে "ca-bundle.crt" ফাইলটি সন্ধান করুন (বর্তমান সংস্করণ সি: \ প্রোগ্রাম ফাইলগুলি it গিট \ ইউএসআর s এসএসএল \ শংসাপত্র তবে অতীতে পরিবর্তিত হয়েছে)। আপনার ব্যবহারকারী প্রোফাইলে ফাইলটি অনুলিপি করুন। এটি ভিএসকোডের মতো একটি পাঠ্য সম্পাদক দিয়ে খুলুন এবং আপনার রফতানি শংসাপত্রের সামগ্রীটি ফাইলের শেষে যুক্ত করুন।

নতুন ফাইলটি ব্যবহার করতে এখন আমাদের গিটটি কনফিগার করতে হবে:

git config --global http.sslCAInfo C:/Users/<yourname>/ca-bundle.crt

এটি আপনার ব্যবহারকারীর প্রোফাইলের মূলটিতে আপনার .gitconfig ফাইলটিতে নিম্নলিখিত এন্ট্রি যুক্ত করবে।

[http] sslCAInfo = C:/Users/<yourname>/ca-bundle.crt


1
আপনাকে ধন্যবাদ, আমি এই উত্তরটি উইন্ডোজের পক্ষে আরও সহজ এবং নিরাপদ পেয়েছি।
পিসু

7

নির্দিষ্ট সংগ্রহস্থলের জন্য এসএসএল যাচাইকরণ অক্ষম করতে যদি সংগ্রহস্থলটি পুরোপুরি আপনার নিয়ন্ত্রণে থাকে তবে আপনি চেষ্টা করতে পারেন:

 git config --global http.sslVerify false

3

করার সময় সতর্ক থাকুন আপনি, sslKey বা sslCert ব্যবহার করে আপনি একটি মাছ ধরার নৌকা ব্যবহার করছেন হিসেবে জোশ পিক এর উত্তর :

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.x / 2.15 (Q3 2015) সঠিকর মতো পাথের ব্যাখ্যা করতে সক্ষম ~username/mykeyহবে (যদিও এটি এখনও এর মতো একটি নিখুঁত পাথের ব্যাখ্যা করতে পারে /path/to/privatekey)।

জুনিও সি হামানো ( ) দ্বারা 8d15496 (20 জুলাই 2017) প্রতিশ্রুতিবদ্ধ দেখুন । সাহায্যপ্রাপ্ত: চার্লস বেইলি ( )(দ্বারা একীভূত junio সি Hamano - - মধ্যে 17b1e1d কমিট , 11 আগস্ট 2017)gitster
hashpling
gitster

http.c: http.sslcertএবং http.sslkeyউভয় পথের নাম

ফিরে আসার পরে যখন আধুনিক http_options () কোডেপথটি বিভিন্ন HTTP পার্স করার জন্য তৈরি করা হয়েছিল। * অপশনগুলি 29508e1 (" আইসোলেট শেয়ারড এইচটিটিপি অনুরোধ কার্যকারিতা", 2005-11-18, গিট 0.99.9 কে) এ সংযুক্ত করা হয়েছিল এবং পরে একাধিকের মধ্যে সংলাপের জন্য সংশোধন করা হয়েছিল 7059cd9 এ কনফিগারেশন ফাইলগুলি (" http_init(): কনফিগারেশন ফাইল পার্সিং ঠিক করুন", ২০০৯-০৩-০৯, গিট ১. ).৩-আরসি0), আমরা কনফিগারেশন ভেরিয়েবলগুলি পার্স করেছি http.sslkey, http.sslcertযেমন প্লেন ভ্যানিলা স্ট্রিং হিসাবে, কারণ git_config_pathname()এটি বুঝতে পারে যে ~[username]/উপসর্গ বিদ্যমান ছিল না।

পরে, আমরা ফাংশনটি ব্যবহার করতে তাদের মধ্যে কয়েকটি (যথা, http.sslCAPathএবং http.sslCAInfo) রূপান্তর করেছি এবং ভেরিয়েবলগুলি http.cookeyFile http.pinnedpubkeyপ্রথম থেকেই ফাংশনটি ব্যবহার করতে পছন্দ করি । যে কারণে, এই ভেরিয়েবলগুলি সমস্ত " ~[username]/" উপসর্গ বুঝতে পারে ।

বাকী দুটি ভেরিয়েবল তৈরি করুন http.sslcertএবং http.sslkeyকনভেনশন সম্পর্কেও সচেতন থাকবেন কারণ এগুলি উভয়ই ফাইলের স্পষ্টরূপে নাম।


3

উইন্ডোজে গিটের bit৪ বিট সংস্করণ ব্যবহার করে কেবল এই ফাইলগুলিতে স্ব স্বাক্ষরিত সিএ শংসাপত্র যুক্ত করুন:

  • সি: \ প্রোগ্রাম ফাইলগুলি it গিট \ মিংডব্লিউ 64 \ এসএসএল \ সার্টস \ সিএ-বান্ডেল.crt
  • সি: \ প্রোগ্রাম ফাইলগুলি it গিট \ মিংডব্লিউ 64 \ এসএসএল \ সার্টস \ সিএ-বান্ডেল.ট্রেস্ট.সিআরটি

এটি যদি কেবল কোনও সার্ভার স্ব স্ব স্বাক্ষরযুক্ত শংসাপত্র থাকে তবে এটি এতে যুক্ত করুন

  • সি: \ প্রোগ্রাম ফাইল \ গিট \ মিংডব্লিউ 64 \ এসএসএল \ cert.pem

এটি আমাদের কোম্পানির ফায়ারওয়ালকে মোকাবেলা করার সর্বোত্তম উপায় যা সমস্ত এইচটিটিপিএস ট্র্যাফিককে আবার স্বাক্ষর করে। আমি কেবল ফায়ারওয়াল শংসাপত্রের পিইএম ফর্ম্যাটেড ক্র্ট ফাইলটি পাঠ্য হিসাবে নিয়েছি এবং এটি অনুলিপি সিএ-বান্ডেলে পেস্ট করেছি এবং এটি একটি কবজির মতো কাজ করে।
মিটেন.ও

3

আপনার অ্যান্টিভাইরাস এবং ফায়ারওয়াল সেটিংস পরীক্ষা করুন।

একদিন থেকে অন্য দিন, গিট আর কাজ করে না। উপরে বর্ণিত যা দিয়ে, আমি দেখতে পেলাম যে ক্যাসপারস্কি একটি স্ব-স্বাক্ষরিত অ্যান্টি-ভাইরাস ব্যক্তিগত রুট শংসাপত্রটিকে মাঝখানে রাখে। উপরের নির্দেশাবলী অনুসরণ করে আমি গিটকে সেই শংসাপত্রটি মেনে নিতে দিতে পরিচালিত করি না। আমি এটা ছেড়ে দিয়েছি। আমার জন্য যা কাজ করে তা হ'ল এনক্রিপ্ট হওয়া সংযোগগুলির বৈশিষ্ট্যটি অক্ষম করা।

  1. ক্যাসপারস্কি খুলুন
  2. সেটিংস> অতিরিক্ত> নেটওয়ার্ক> এনক্রিপ্ট হওয়া সংযোগগুলি স্ক্যান করবেন না

এর পরে, গিটটি এসএসএলভাইরাইফ সক্ষম করে আবার কাজ করে।

বিঃদ্রঃ. এটি এখনও আমার পক্ষে সন্তুষ্ট নয়, কারণ আমি আমার অ্যান্টি-ভাইরাসটির সেই বৈশিষ্ট্যটি সক্রিয় রাখতে চাই। উন্নত সেটিংসে ক্যাসপারস্কি ওয়েবসাইটগুলির একটি তালিকা দেখায় যা সেই বৈশিষ্ট্যটির সাথে কাজ করবে না। তাদের মধ্যে গিথুবকে তালিকাভুক্ত করা হয়নি। আমি এটি ক্যাসপারস্কি ফোরামে পরীক্ষা করব। কিছু বিষয় রয়েছে বলে মনে হয়, যেমন https://forum.kaspersky.com/index.php?/topic/395220-kis-interfering-with-git/&tab=comments#comment-2801211



1

আমি এটি এইভাবে করি:

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

3
ব্যবহার করবেন না --global! অনেক টিউটোরিয়াল দেখায় --globalতবে এটি সাধারণভাবে এবং http.sslVerifyবিশেষত খুব খারাপ ধারণা । যত তাড়াতাড়ি আপনার কাছে আরও কিছু পাওয়ার সাথে সাথে কম্পিউটারের বিভিন্ন প্রকল্প, সংস্থাগুলি, দলগুলির একটি ক্লোন আপনি দ্রুত সমস্যায় পড়তে পারেন। উদাহরণস্বরূপ ইউজার আইডি এবং ইমেলগুলি একটি প্রকল্প থেকে পরের দিকে লিক করা বেশ বিব্রতকর হতে পারে। আর ব্যবহার --globalউপর http.sslVerifyআপনি সমস্ত প্রকারের নিরাপত্তা বিষয়ক পর্যন্ত খুলতে পারে। সুতরাং: ব্যবহার করবেন না --global- যদি না আপনি পার্শ্ব প্রতিক্রিয়া সম্পর্কে পুরোপুরি সচেতন হন এবং ঝুঁকি নিতে প্রস্তুত না হন।
মার্টিন

1

উইন্ডোজে এটি আমার পক্ষে কাজ করেছে:

সিএ-বান্ডিল ফাইলটির শেষে আপনার স্বাক্ষরিত শংসাপত্রের সামগ্রী যুক্ত করুন। সহ ----- BEGIN শংসাপত্র ----- এবং ----- END টি শংসাপত্র ----- লাইন

সিএ-বান্ডিল ফাইলটির অবস্থান সাধারণত সি: \ প্রোগ্রাম ফাইলগুলি it গিট \ মিংডব 64৪ \ এসএসএল \ শংসাপত্রগুলি

এরপরে, গ্লোবাল গিট কনফিগারেশনে সিএ-বান্ডিল ফাইলের পথ যুক্ত করুন । নিম্নলিখিত কমান্ডটি কৌশলটি করে:git config --global http.sslCAInfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"

মন্তব্য: পাথটি আপনার স্থানীয় সিএ-বান্ডিল ফাইলের পাথের উপর নির্ভর করে!


1

Http.sslVerify মিথ্যা সেট করা ভাল অভ্যাস নয়। পরিবর্তে আমরা এসএসএল শংসাপত্র ব্যবহার করতে পারি।

সুতরাং, বিল্ড এজেন্ট প্রমাণীকরণের জন্য এসএসএল শংসাপত্র এবং PAT সহ https ব্যবহার করবে। এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

Ginbegin — এবং --end-- সহ এসইআর ফাইলের সামগ্রীটি অনুলিপি করুন।

বিল্ড এজেন্ট => গিট কনফিগারেশন-এ গ্লোবাল http.sslcainfo নেভিগেশন গিট ব্যাশ

সুতরাং, বিল্ড এজেন্ট এসএসএল শংসাপত্রটি অ্যাক্সেস করতে পারে


0

আমার উত্তর দেরিতে হতে পারে তবে এটি আমার পক্ষে কার্যকর হয়েছিল। এটি কারও সাহায্য করতে পারে।

আমি উপরোক্ত পদক্ষেপগুলি চেষ্টা করেছি এবং এটি সমস্যার সমাধান করেনি।

এটা চেষ্টা করgit config --global http.sslVerify false


0

আমি একটি উইন্ডোজ মেশিন ব্যবহার করি এবং এই নিবন্ধটি আমাকে সহায়তা করেছিল। মূলত আমি নোটপ্যাডে সিএ-বান্ডেল সিআরটি খুলেছি এবং এতে চেইন শংসাপত্র যুক্ত করেছি (তাদের সবকটি)। এই সমস্যাটি সাধারণত সংস্থাগুলির নেটওয়ার্কগুলির ক্ষেত্রে ঘটে যেখানে আমাদের মাঝারি পুরুষরা সিস্টেম এবং গিট রেপোর মধ্যে বসে থাকে। আমাদের বেস 64 ফর্ম্যাটে লিফ শংসাপত্র ব্যতীত শংসাপত্রের শৃঙ্খলে সমস্ত শংসাপত্র রফতানি করতে হবে এবং সেগুলি সমস্ত ca-bundle.crt এ যুক্ত করতে হবে এবং তারপরে এই পরিবর্তিত crt ফাইলের জন্য গিট কনফিগার করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.