TLDR:
hostname=XXX
port=443
trust_cert_file_location=`curl-config --ca`
sudo bash -c "echo -n | openssl s_client -showcerts -connect $hostname:$port -servername $hostname \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
>> $trust_cert_file_location"
দীর্ঘ উত্তর
এর মূল কারণটি হ'ল আপনার কম্পিউটার সেই শংসাপত্র কর্তৃপক্ষকে বিশ্বাস করে না যা গিটল্যাব সার্ভারে ব্যবহৃত শংসাপত্রটিতে স্বাক্ষর করে । এর অর্থ এই নয় যে শংসাপত্রটি সন্দেহজনক, তবে এটি স্ব-স্বাক্ষরিত বা কোনও সংস্থা / সংস্থার দ্বারা স্বাক্ষরিত হতে পারে যা আপনার ওএসের সিএ তালিকার তালিকায় নেই। সমস্যাটি সমাধান করার জন্য আপনাকে যা করতে হবেআপনার কম্পিউটারে তা সেই শংসাপত্রটির উপর আস্থা রাখতে বলছে - যদি আপনার এ সম্পর্কে সন্দেহজনক হওয়ার কোনও কারণ না থাকে।
আপনার গিটল্যাব সার্ভারের জন্য ব্যবহৃত ওয়েব শংসাপত্রটি পরীক্ষা করতে হবে এবং এটিতে আপনার যুক্ত করতে হবে </git_installation_folder>/bin/curl-ca-bundle.crt
।
কমপক্ষে ক্লোনটি বলেছেন শংসাপত্রটি যাচাই না করে কাজ করে কিনা তা পরীক্ষা করতে আপনি সেট করতে পারেন:
export GIT_SSL_NO_VERIFY=1
#or
git config --global http.sslverify false
তবে এটি কেবল পরীক্ষার জন্যই হবে, যেমন " ব্রাউজার, উইজেট এবং কার্ল নিয়ে এসএসএল কাজ করে তবে গিট দিয়ে ব্যর্থ হয় " বা এই ব্লগ পোস্টে ।
আপনার গিটল্যাব সেটিংস পরীক্ষা করুন, এটি ইস্যুতে 4272 ।
এই শংসাপত্রটি পেতে (যে আপনার curl-ca-bundle.crt
ফাইলটিতে আপনাকে যুক্ত করতে হবে), টাইপ করুন:
echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpsGitlabPort \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
(' yourserver.com
' আপনার গিটল্যাব সার্ভারের নাম হওয়ার সাথে এবং YourHttpsGitlabPort
সাধারণত https পোর্ট হয় 443
)
সিএ (শংসাপত্র কর্তৃপক্ষ জারিকারী) পরীক্ষা করতে, টাইপ করুন:
echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpsGilabPort \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
| openssl x509 -noout -text | grep "CA Issuers" | head -1
দ্রষ্টব্য: ওয়ালারি ক্যাটকভ ওপেনসেল কমান্ডের বিকল্প যুক্ত করার জন্য মন্তব্যে পরামর্শ দিয়েছেন -servername
, অন্যথায় কমান্ডটি ভ্যালেরির ক্ষেত্রে www.github.com এর জন্য শংসাপত্র দেখায় নি।
openssl s_client -showcerts -servername www.github.com -connect www.github.com:443
Findekano যোগ মন্তব্য :
এর অবস্থান সনাক্ত করতে curl-ca-bundle.crt
, আপনি কমান্ডটি ব্যবহার করতে পারেন
curl-config --ca
এছাড়াও, আমার আরও সাম্প্রতিক উত্তর " গিথুব: সার্ভার শংসাপত্র যাচাইকরণ ব্যর্থ হয়েছে " দেখুন: আপনাকে এই শংসাপত্রগুলি পুনরায় ইনস্টল করতে হবে:
sudo apt-get install --reinstall ca-certificates
sudo mkdir /usr/local/share/ca-certificates/cacert.org
sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
sudo update-ca-certificates
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt
curl-config --ca
ফিরে এসেছে/etc/ssl/certs/ca-certificates.crt
, যেখানে আমাকে শংসাপত্র যুক্ত করতে হয়েছিল। তা ছাড়া এই