কার্ল: (60) এসএসএল শংসাপত্রের সমস্যা: স্থানীয় ইস্যুকারী শংসাপত্রটি পেতে ব্যর্থ


258
root@sclrdev:/home/sclr/certs/FreshCerts# curl --ftp-ssl --verbose ftp://{abc}/ -u trup:trup --cacert /etc/ssl/certs/ca-certificates.crt
* About to connect() to {abc} port 21 (#0)
*   Trying {abc}...
* Connected to {abc} ({abc}) port 21 (#0)
< 220-Cerberus FTP Server - Home Edition
< 220-This is the UNLICENSED Home Edition and may be used for home, personal use only
< 220-Welcome to Cerberus FTP Server
< 220 Created by Cerberus, LLC
> AUTH SSL
< 234 Authentication method accepted
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.


আমি একই সমস্যা ছিল। এটি আমার জন্য কাজ করেন stackoverflow.com/a/29649024
Sagruob

আমার ক্ষেত্রে, superuser.com/a/719047/137881 সহায়তা করেছে।
আব্দুল

//, আমার ক্ষেত্রে, আমি hashiCorp ভল্ট সার্ভারে কার্ল অনুরোধ করা থেকে এই ত্রুটিটি পেয়েছি যতক্ষণ না আমি শেষ-সত্তা / ইন্টারমিডিয়েটস / রুটটি কেবল বিপরীত ক্রমে একটি X509 শংসাপত্র ইনস্টল করি, যার প্রতিটি বেস 64 এনকোডড ছিল।
নাথান বাসানিজ

//, এখানে ত্রুটিটি অনুলিপি করার আগে আপনি কী গবেষণা করেছেন?
নাথান বাসানিজ

উত্তর:


231

'এসএসএল শংসাপত্রের সমস্যা সম্পর্কিত: স্থানীয় ইস্যুকারী শংসাপত্রটি পেতে ব্যর্থ' ত্রুটি। এটি লক্ষ করা গুরুত্বপূর্ণ যে এটি সিআরএল অনুরোধ প্রেরণকারী সিস্টেমে প্রযোজ্য, এবং সার্ভারটি অনুরোধটি গ্রহণ করছে না।

  1. থেকে সর্বশেষ cacert.pem ডাউনলোড https://curl.haxx.se/ca/cacert.pem

  2. নিম্নলিখিত লাইনটি php.ini- এ যুক্ত করুন: (যদি এটি হোস্টিং ভাগ করে নেওয়া হয় এবং আপনার পিএইচপি.আইএনই অ্যাক্সেস না থাকে তবে আপনি এটি পাবলিক_এইচটিএমএলে .user.ini এ যুক্ত করতে পারেন)।

    curl.cainfo="/path/to/downloaded/cacert.pem"

    নিশ্চিত করুন যে আপনি দ্বিগুণ উদ্ধৃতি চিহ্নের মধ্যে পথটি বন্ধ করেছেন !!!

  3. ডিফল্টরূপে, ফাস্টসিজিআই প্রক্রিয়া প্রতি 300 সেকেন্ডে নতুন ফাইলগুলি বিশ্লেষণ করবে (যদি প্রয়োজন হয় তবে এখানে প্রস্তাবিত বেশ কয়েকটি ফাইল যুক্ত করে ফ্রিকোয়েন্সিটি পরিবর্তন করতে পারেন https://ss88.uk/blog/fast-cgi-and-user-ini- ফাইল-নতুন-htaccess / )।


1
প্রথমটি ওপেনএসএসএল লাইব্রেরি ব্যবহার করে পরিচালিত ক্রিয়াকলাপগুলির শংসাপত্রের সাথে সম্পর্কিত; সিআরএল ব্যবহারের মাধ্যমে করা দ্বিতীয় অনুরোধ
মাইকে

4
উদ্ধৃতিতে পথ না লিখায় আমি এক ঘন্টা লড়াই করেছি। তাই দয়া করে এখানে একটি নোট নিনcurl.cainfo="/path/to/downloaded/cacert.pem" // Do not forget to write between quotes
হিমাংশু উপাধ্যায়

12
আমি পিএইচপি-তে প্রশ্নের কোনও রেফারেন্স দেখতে পাচ্ছি না। উত্তরে তে রেফারেন্স কেন? যদি প্রশ্নটি সম্পাদনা করা হয়ে থাকে তবে উত্তরটি এখন ব্যবহৃত কমান্ড লাইনের প্রতিফলনের জন্য সম্পাদনা করা যেতে পারে?
আদম

5
@ অ্যাডাম প্রশ্ন পিএইচপি উল্লেখ না করে, পিএইচপি দ্বারা উত্পন্ন নির্দিষ্ট ত্রুটি বার্তার জন্য এটি গুগলে # 1 অনুসন্ধান ফলাফল হিসাবে আসে। সুতরাং, সম্ভবত এটি ওপির প্রশ্নের বিশেষভাবে উত্তর দেয় না, তবে মনে হয় এটি এখনও সম্প্রদায়ের পক্ষে কার্যকর।
রিনোগো

1
এই উত্তরটি আমার কাছে বিভ্রান্তিকর ছিল কারণ এটি পিএইচপি সম্পর্কিত একটি সমাধান
ওয়াসিফ খান

141

সিআরএল সার্ভারের সরবরাহিত শংসাপত্র যাচাই করতে অক্ষম হওয়ায় এটি ব্যর্থ হচ্ছে।

এটি কাজ করার জন্য দুটি বিকল্প রয়েছে:

  1. বিকল্পের সাথে সিআরএল ব্যবহার করুন -kযা কার্লকে নিরাপত্তাহীন সংযোগ তৈরি করতে দেয়, এটি সিআরএল শংসাপত্রটি যাচাই করে না।

  2. এতে মূল সিএ (সার্ভার শংসাপত্র স্বাক্ষরকারী সিএ) যুক্ত করুন /etc/ssl/certs/ca-certificates.crt

আপনার বিকল্প 2 ব্যবহার করা উচিত কারণ এটি বিকল্পটি নিশ্চিত করে যে আপনি নিরাপদ এফটিপি সার্ভারে সংযোগ করছেন।


1
আমি আমার রুটসিএ.পিএম ফাইলটি ভিতরে যুক্ত করেছি: - মূল @ স্ক্ল্রদেব: / হোম / সার্টস / ফ্রেশকার্টস # এলএল /etc/ssl/certs/rootCA.pem -rwxrwxrwx 1 মূল রুট 1302 জুলাই 8:59 / ইত্যাদি / এসএসএল / সার্টস / রুটসিএ.পিএম * এমনকি আমি আমার রুটসিএপিএম দিয়ে সার্ভারসিটিটিফিট.পিএম ফাইলটি যাচাই করেছি: - মূল @ স্ক্ল্রদেব: / হোম / সার্টস / ফ্রেশকার্টস # ওপেনসেল যাচাই করুন -সিএফিল রুটসিএ.পিএম ../ServerCertificate.pem সার্ভারের্টিফিট.পিএম: ঠিক আছে এবং এছাড়াও সিএ-সার্টিফিকেট.সিআরটি এর ভিতরে রুটসিএ.পিএমের সামগ্রী। রুট @ স্ক্ল্রদেব: / হোম / এসসিএলআর / সুহেন্দু / সার্টস / ফ্রেশকার্টস # এলএল /etc/ssl/certs/ca-certificates.crt -rw-r - r-- 1 মূল মূল 247945 জুলাই 8 00:10 / ইত্যাদি / এসএসএল /certs/ca-certificates.crt
ব্যবহারকারী 3812540

আমি কোথায় ভুল করছি তা নির্ধারণ করতে পারছি না। ওয়্যারশার্ক ট্রেসগুলিতে, আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: - ক্লায়েন্ট হ্যালো সার্ভার হ্যালো, শংসাপত্র, সার্ভার হ্যালো সম্পন্ন সতর্কতা (স্তর: মারাত্মক, বিবরণ: অজানা সিএ (48)) আপনি কি দয়া করে আমাকে গাইড করতে এবং এই বিষয়ে আমাকে সহায়তা করতে পারেন?
ব্যবহারকারী 3812540

ওপেনসেলটি যেভাবে কাজ করে তা হ'ল এটি যাচাইয়ের সময় তেহ শংসাপত্র চেইন সম্পূর্ণ করার চেষ্টা করে। আপনার সার্ভার শংসাপত্রটি কোনও মধ্যবর্তী সিএ দ্বারা স্বাক্ষরিত এবং কোনও রুট সিএ নয়। উদাহরণস্বরূপ
যুবিকা

আমার শংসাপত্রটি শুধুমাত্র রুট সিএ দ্বারা স্বাক্ষরিত।
ব্যবহারকারী 3812540

1
আমি কিছু ত্রুটি পেয়েছি: - রুট @ sclrdev: open # ওপেনসেল এস_ক্লিয়েন্ট-সংযুক্ত <সের্ভার_আইপি> 21 সংযুক্তি (00000003) 3074050248: ত্রুটি: 140770FC: এসএসএল রুটিনগুলি: SSL23_GET_SERVER_HELLO: অজানা প্রোটোকল: s23_clnt.c :66 কোনও পিয়ার শংসাপত্র উপলভ্য নয় --- কোনও ক্লায়েন্টের শংসাপত্র সিএ নাম পাঠানো হয়নি --- এসএসএল হ্যান্ডশেকটি 7 বাইট পড়েছে এবং 225 বাইট লিখেছেন --- নতুন, (কোনও নয়), সিফার হ'ল (কোনও নয়) সুরক্ষিত পুনর্নবীকরণ সমর্থিত নয় সংক্ষেপণ: কোন প্রকারের সম্প্রসারণ: নন --- আমি নিশ্চিত নই এর ঠিক অর্থ কি?
ব্যবহারকারী 3812540

69

আমি সিআরএল স্ক্রিপ্টে একটি লাইন কোড যুক্ত করে এই সমস্যার সমাধান করেছি:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

সতর্কতা : এটি অনুরোধটিকে নিরঙ্কুশ করে তোলে (@YSU- এর উত্তর দেখুন)!


42
এটি সমস্যাটি নিরসনে সহায়তা করতে পারে। তবে এটি https এবং শংসাপত্রের সিস্টেমের ধারণাটিকে পুরোপুরি মিস করে।
স্টিফান রিখটার

1
কাজ করে! আপনি শংসাপত্রের যত্ন না নিলে খুব দ্রুত এন মলিন বাইপাস
গিলি

2
এটি একেবারে নিরাপত্তাহীন করে তোলে।
মূস

1
একই কোডটি স্টেজিং সার্ভারে ভাল কাজ করলেও আমি আমার স্থানীয় সার্ভারে এই সমস্যার মুখোমুখি হয়েছি। স্থানীয় হিসাবে এটি আমার জন্য দুর্দান্ত ছিল। ধন্যবাদ
সাবিন

1
আপনি কেবল স্থানীয় সার্ভারের সাথে এটি ব্যবহার করেন তা নিশ্চিত করতে এই চেকটি যুক্ত করুন if( stristr("127.0.0.1",$_SERVER["SERVER_NAME"] ) || stristr("localhost",$_SERVER["SERVER_NAME"] )) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
হুসেন

20

আমার ক্ষেত্রে এটি যে সার্ভিসটি সিআরএল দিয়ে গ্রাস করার চেষ্টা করছিলাম তাতে আমার শংসাপত্র স্থাপনের ক্ষেত্রে সমস্যা হয়ে দাঁড়িয়েছে। আমি আমার ডোমেন শংসাপত্রের মধ্যে অন্তর্বর্তী এবং মূল শংসাপত্রগুলি বান্ডিল / সংলগ্ন করতে ব্যর্থ হয়েছি । এটি প্রথমে স্পষ্ট ছিল না যে এই সমস্যাটি কারণ ক্রোম এটিকে কাজ করেছিল এবং মধ্যবর্তী এবং মূল শংসাপত্রগুলি সরিয়ে রেখেও শংসাপত্রটি গ্রহণ করেছে।

শংসাপত্র বান্ডিল করার পরে, সবকিছু প্রত্যাশার মতো কাজ করেছিল। আমি এই মত বান্ডিল

$ cat intermediate.crt >> domain.crt

এবং সমস্ত মধ্যবর্তী এবং মূল শংসাপত্র জন্য পুনরাবৃত্তি।


2
আমার অ্যাপাচি এসএসসি সার্টিফিকেট চেইনফাইলটি সঠিক শংসাপত্রে সেট না করা ছাড়া আমারও একই সমস্যা ছিল।
ওয়েইন পাইকারস্কি

1
দ্রষ্টব্য যে আপনি যদি এটি করেন এবং আপনি যে ক্র্টটি যুক্ত করছেন তার পিছনে নতুন লাইন নেই, তবে -----END CERTIFICATE----------BEGIN CERTIFICATE-----আপনার বান্ডিলের মতো লাইন থাকবে এবং আপনি অস্পষ্ট ত্রুটি পাবেন:curl: (77) error setting certificate verify locations
মার্টি নেইল

2
আমি লেটসক্রিপ্ট সার্টিফিকেট ব্যবহার করছি তবে সার্ভারে কেবলমাত্র শংসাপত্র এবং ব্যক্তিগত কী স্থাপন করেছি deployed আমার কম্পিউটারে ক্রোম এবং কার্ল অভিযোগ করছিল না, তবে আমি যে নোডেজ অ্যাপ্লিকেশন তৈরি করছি তা শংসাপত্রটি গ্রহণ করে নি। সার্ভারে ফুলচেইন মোতায়েনের ফলে সমস্যার সমাধান হয়েছে! সঠিক দিক নির্দেশ করার জন্য আপনাকে ধন্যবাদ!
পাওলো সান্টোস

আমার ক্ষেত্রে (কমোডো থেকে শংসাপত্র), তারা আমার-ডোমেন.কাএ-বান্ডেল হিসাবে মধ্যবর্তী শংসাপত্রগুলি প্রেরণ করেছিলেন। আমাকে এটি আমার-ডোমেন.সিআরটিতে যুক্ত করতে হয়েছিল। ধন্যবাদ!
জন হুলকা

18

আমার জন্য, শংসাপত্রগুলির সহজ ইনস্টল সাহায্য করেছে:

sudo apt-get install ca-certificates

2
উদাহরণস্বরূপ কিছু ছোট ডকার পাত্রে এটি ইনস্টল না করা থাকতে পারে এবং পুরো প্যাকেজ উপস্থিত না থাকলে অন্য কোনও কিছুর সমস্যায় পড়ার কোনও মানে নেই।
muni764

16

গিট এক্সটেনশনগুলি v3.48 ইনস্টল করার পরে এই সমস্যা ছিল। আবার মাইএসজিট ইনস্টল করার চেষ্টা করা হলেও একই সমস্যা। শেষে, অক্ষম করতে হয়েছিল (দয়া করে সুরক্ষা সম্পর্কিত বিষয়গুলি বিবেচনা করুন!) গিট এসএসএল যাচাইকরণ এর সাথে:

git config --global http.sslVerify false

তবে আপনার যদি কোনও ডোমেন শংসাপত্র থাকে তবে এটি আরও ভালভাবে যুক্ত করুন (Win7)

C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt

23
কাজ করে, তবে রোগ নিরাময়ে নয়, লক্ষণটি বাধা দেওয়ার মতো মনে হয়।
মনোথ্রেডেড

4
এসএসএল-যাচাইকরণ অক্ষম করা খুব বিপজ্জনক
jonasl

1
--globalযেখানে আপনার সমস্যা আছে কেবল সেই সংগ্রহস্থলের জন্য এসএসএল অক্ষম না করে আপনি এটি করতে পারেন। বর্তমানের প্রয়োজনীয় crt ফাইলগুলির বিষয়ে আলোচনার জন্য গ্রুপগুলি জিগ্রোফরম / ফোরাম /#!topic/git- for- windows/MLqn5J4OLlw দেখুন ।
কোপ্পোর

13

আমরা সম্প্রতি এই ত্রুটি মধ্যে দৌড়ে। দেখা যাচ্ছে এটি সিএ স্টোর ডিরেক্টরিতে সঠিকভাবে ইনস্টল না করা মূল শংসাপত্রের সাথে সম্পর্কিত। আমি একটি কার্ল কমান্ড ব্যবহার করছিলাম যেখানে আমি সিএ দির সরাসরি উল্লেখ করছিলাম। curl --cacert /etc/test/server.pem --capath /etc/test ...এই কমান্ডটি প্রতিবার কার্ল সহ ব্যর্থ হয়েছিল : (60) এসএসএল শংসাপত্র সমস্যা: স্থানীয় ইস্যুকারী শংসাপত্রটি পেতে ব্যর্থ।

ব্যবহারের পরে strace curl ..., এটি নির্ধারণ করা হয়েছিল যে কার্ল 60ff2731.0 এর নামের সাথে রুট সার্ট ফাইলটি সন্ধান করছে, যা একটি ওপেনসেল হ্যাশ নামকরণ কনভেশন ভিত্তিক। সুতরাং আমি এই আদেশটি কার্যকরভাবে মূল শংসাপত্রটি সঠিকভাবে আমদানির জন্য পেয়েছি:

ln -s rootcert.pem `ওপেনএসএল x509 -হ্যাশ -আউট-রুটসার্ট.পিএম`.০

যা একটি সফটলিঙ্ক তৈরি করে

60ff2731.0 -> rootcert.pem

সার্ভার.পেম সার্ট পড়ার কভারগুলির নীচে কার্ল, রুট সার্ট ফাইলের (রুটসার্ট.পিএম) নাম নির্ধারণ করে, এটির হ্যাশ নামে রূপান্তরিত করে, পরে একটি ওএস ফাইল লুচআপ করে, তবে এটি সন্ধান করতে পারে না।

সুতরাং, টেকওয়ে হ'ল, কার্ল চলাকালীন যখন কার্ল ত্রুটি অস্পষ্ট ছিল তখন স্ট্রেস ব্যবহার করুন (একটি দুর্দান্ত সহায়তা ছিল) এবং তারপরে ওপেনসেল নামকরণ কনভেনশনটি ব্যবহার করে রুট সার্টটি যথাযথভাবে ইনস্টল করতে ভুলবেন না।


2
ভাই, এটা সাহায্য করেছে। আমাকে কী সাহায্য করেছে তার কিছুটা বিস্তারিত জানার জন্য: ক) স্ট্রেস কার্ল চালান ... খ) ব্যর্থ স্ট্যাটাসের জন্য অনুসন্ধান করুন () কিছু-হেক্স ০.০ দিয়ে গ) কিছু-হেক্সের জন্য গুগল করা, অনুরূপ সেরিটি পাওয়া গেছে ঘ) সার্টিফিকেট / ইউএসআর / এ পাওয়া যায় স্থানীয় / ভাগ / সিএ-শংসাপত্র / (* .সিআরটি এক্সটেনশন সহ, * .পিএম কাজ করেনি) ই) আপডেট-সিএ-শংসাপত্রগুলি চালান। তাহলে বিঙ্গো! - প্রয়োজনীয় সিমলিংকটি স্বয়ংক্রিয়ভাবে / ইউএসআর / লিবিব / এসএসএল / সার্টিফিকেটগুলিতে তৈরি হয়েছিল
নো-বাগগুলি হের

11

এটি সম্ভবত সার্ভার থেকে অনুপস্থিত একটি শংসাপত্র।

Root-> Intermediate-> সার্ভার

কোনও সার্ভারকে সর্বনিম্ন হিসাবে সার্ভার ও ইন্টারমিডিয়েট প্রেরণ করা উচিত।

openssl s_client -showcerts -starttls ftp -crlf -connect abc:21ইস্যুটি ডিবাগ করতে ব্যবহার করুন ।

যদি কেবল একটি শংসাপত্র ফেরত দেওয়া হয় (স্ব স্বাক্ষরিত, বা জারি করা হয়), তবে আপনাকে অবশ্যই বেছে নিতে হবে:

  1. সার্ভার ঠিক করা আছে
  2. সেই সারিতে বিশ্বাস করুন এবং এটি আপনার সিএ সার্ট স্টোরটিতে যুক্ত করুন (সেরা ধারণা নয়)
  3. অক্ষম বিশ্বাস, উদাহরণস্বরূপ curl -k(খুব খারাপ ধারণা)

যদি সার্ভারটি ফিরে আসে তবে একের বেশি, তবে স্ব স্বাক্ষরিত (রুট) শংসাপত্র সহ নয়:

  1. এই চেইনের জন্য আপনার সিএ স্টোরে সিএ (রুট) শংসাপত্র ইনস্টল করুন, যেমন ইস্যুকারীকে গুগল করুন। ( কেবলমাত্র যদি আপনি সেই সিএ বিশ্বাস করেন)
  2. সার্ভারকে শৃঙ্খলার অংশ হিসাবে সিএ প্রেরণ স্থির করেছে
  3. শৃঙ্খলে একটি সার্ট বিশ্বাস
  4. বিশ্বাস অক্ষম করুন

সার্ভারটি যদি কোনও সিএ শংসাপত্র ফেরত দেয় তবে তা আপনার সিএ স্টোরটিতে নেই, আপনার বিকল্পগুলি হ'ল:

  1. এটি যোগ করুন (বিশ্বাস)
  2. বিশ্বাস অক্ষম করুন

আমি মেয়াদ উত্তীর্ণ / প্রত্যাহার করা শংসাপত্রগুলি উপেক্ষা করেছি কারণ এতে কোনও বার্তা ইঙ্গিত করে নি। তবে আপনি স্যারটি দিয়ে পরীক্ষা করতে পারেনopenssl x509 -text

আপনি কোনও হোম সংস্করণে সংযুক্ত হচ্ছেন ( https://www.cerberusftp.com/support/help/installing-a-cer ર્ટate/) ftp সার্ভারে, আমি বলতে যাচ্ছি এটি স্ব স্বাক্ষরিত।

ওপেনসেল থেকে আউটপুট মত আরও বিশদ পোস্ট করুন।


6

সিআরএল ডক্স অনুসারে আপনি curlকমান্ডটিতে শংসাপত্রটিও দিতে পারেন :

সিএ শংসাপত্র পান যা দূরবর্তী সার্ভারটি যাচাই করতে পারে এবং সংযোগের সময় যাচাইয়ের জন্য এই CA শংসাপত্রটি চিহ্নিত করার জন্য উপযুক্ত বিকল্পটি ব্যবহার করে। জন্য libcurlহ্যাকার:curl_easy_setopt(curl, CURLOPT_CAPATH, capath);

কার্ল কমান্ড লাইন সরঞ্জাম সহ: --cacert [file]


উদাহরণ স্বরূপ:

curl --cacert mycertificate.cer -v https://www.stackoverflow.com

5

এটি কেবল শংসাপত্রের তালিকা আপডেট করার জন্য পর্যাপ্ত হতে পারে

sudo update-ca-certificates -f

আপডেট-সিএ-শংসাপত্রগুলি এমন একটি প্রোগ্রাম যা এসএসএল শংসাপত্র ধরে রাখতে ডিরেক্টরি / ইত্যাদি / এসএসএল / শংসাপত্রগুলি আপডেট করে এবং সিএ-সার্টিফিকেট.সিআরটি তৈরি করে, শংসাপত্রগুলির একটি একত্রিত ফাইলের তালিকা।


এটি করেছে এবং এটি চালানোর পরে সবকিছু করা হয়েছে। কিন্তু কার্ল কাজ করছে না। এখনও একই ত্রুটি।
AGamePlayer

1
আমি আদেশ দিয়েছি, এবং এটি কোনও উপকারে আসে না এবং আমি বিশ্বাস করতে পারি না যে আমাকে উপরের সমস্ত কিছু করতে হবে। এবং তারপরে আপনার উত্তর ... '-ফ' পতাকাটির জন্য ধন্যবাদ।
অ্যালেক্স শ্রটমবার্গ

1
এই সমাধানটি আমিও এসেছি। +1
এসএস আন

3

উবুন্টুতে কার্ল পুনরায় ইনস্টল করার চেষ্টা করুন এবং আমার সিএ শংসাপত্রগুলি sudo update-ca-certificates --freshআপডেট করে যার সাথে শংসাপত্রগুলি আপডেট হয়েছে


2

উইন্ডোজ আমি এই সমস্যা ছিল। কার্ল mysysgit দ্বারা ইনস্টল করা হয়েছে, তাই ডাউনলোড এবং নতুন সংস্করণ ইনস্টল আমার সমস্যা স্থির।

অন্যথায় আপনার সিএ সার্টটি কীভাবে আপনি চেষ্টা করতে পারেন তা আপডেট করার জন্য এগুলি শালীন নির্দেশনা


2

হ্যাঁ আপনাকে সিএ শংসাপত্রও যুক্ত করতে হবে। পরিষ্কার দেখার জন্য নোড.জেজে একটি কোড স্নিপেট যুক্ত করা হচ্ছে।

var fs = require(fs)
var path = require('path')
var https = require('https')
var port = process.env.PORT || 8080;
var app = express();

https.createServer({
key: fs.readFileSync(path.join(__dirname, './path to your private key/privkey.pem')),
cert: fs.readFileSync(path.join(__dirname, './path to your certificate/cert.pem')),
ca: fs.readFileSync(path.join(__dirname, './path to your CA file/chain.pem'))}, app).listen(port)

2

আমিও এই সমস্যার মুখোমুখি হয়েছি। আমি এই থ্রেডটি পড়েছি এবং বেশিরভাগ উত্তর আমার কাছে তথ্যবহুল তবে অত্যধিক জটিল। আমি নেটওয়ার্কিংয়ের বিষয়গুলিতে অভিজ্ঞ নই তাই এই উত্তরটি আমার মতো লোকের জন্য।

আমার ক্ষেত্রে, এই ত্রুটিটি ঘটছিল কারণ আমি আমার অ্যাপ্লিকেশনটিতে যে শংসাপত্রটি ব্যবহার করেছিলাম তার পাশের মধ্যবর্তী এবং মূল শংসাপত্রগুলি আমি অন্তর্ভুক্ত করি নি।

এসএসএল শংসাপত্র সরবরাহকারী থেকে আমি যা পেয়েছি তা এখানে:

- abc.crt
- abc.pem
- abc-bunde.crt

ইন abc.crtফাইল, সেখানে মাত্র একটি শংসাপত্র রয়েছে ছিল:

-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----

আমি যদি এই ফর্ম্যাটটিতে সরবরাহ করি তবে ব্রাউজারটি কোনও ত্রুটি (ফায়ারফক্স) প্রদর্শন করবে না curl: (60) SSL certificate : unable to get local issuer certificateতবে কার্ল অনুরোধটি করলে আমি ত্রুটি পেতে পারি।

এই ত্রুটিটি ঠিক করতে আপনার abc-bunde.crtফাইলটি পরীক্ষা করুন। আপনি সম্ভবত এরকম কিছু দেখতে পাবেন:

-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----

এগুলি আপনার মধ্যবর্তী এবং মূল শংসাপত্র। ত্রুটি ঘটছে কারণ তারা আপনার অ্যাপ্লিকেশনটিতে সরবরাহ করছেন এমন SSL শংসাপত্রটি অনুপস্থিত।

ত্রুটিটি ঠিক করতে, এই ফর্ম্যাটটিতে এই দুটি ফাইলের বিষয়বস্তু একত্রিত করুন:

-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----

নোট করুন যে শংসাপত্রের মধ্যে ফাইলের শেষে বা শুরুতে কোনও ফাঁকা স্থান নেই। আপনি একবার আপনার আবেদনটিতে এই সম্মিলিত শংসাপত্র সরবরাহ করলে আপনার সমস্যাটি ঠিক করা উচিত।


1

উইন্ডোগুলিতে - যদি আপনি সেন্টিমিটার থেকে চালান

> curl -X GET "https://some.place"

থেকে ডাউনলোড cacert.pem https://curl.haxx.se/docs/caextract.html

পরিবেশ পরিবর্তনশীল সেট করুন:

CURL_CA_BUNDLE = C:\Program Files\curl-7.57.0\src\cacert.pem

এবং পরিবেশ পুনরায় লোড করুন

refreshenv

এখন আবার চেষ্টা করুন

ঝামেলার কারণ: https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-cer ર્ટate-problem-unable-to-get-local-issuer-certificate/replies/ 95548


1

আমার কেস আলাদা ছিল। আমি ফায়ারওয়ালের পিছনে একটি সাইট হোস্ট করছি। ত্রুটিটি পিএফসেন্সের কারণে হয়েছিল।

Network layout: |Web Server 10.x.x.x| <-> |pfSense 49.x.x.x| <-> |Open Internet|

আমি ঘটনাক্রমে, কারণ খুঁজে পাওয়া যায় নি ধন্যবাদ এই উত্তর


আমি WAN থেকে আমার সাইট অ্যাক্সেস করার সময় সমস্ত কিছু ঠিক আছে ।

যাইহোক, যখন সাইটটি ল্যানের অভ্যন্তর থেকে অ্যাক্সেস করা হয়েছিল (উদাহরণস্বরূপ যখন ওয়ার্ডপ্রেস ডাব্লুএএন curlআইপি ব্যবহার করা সত্ত্বেও তার নিজস্ব সার্ভারে একটি অনুরোধ করেছিল 49.x.x.x), তখন এটি পিএফসেন্স লগইন পৃষ্ঠা পরিবেশন করা হয়েছিল।

আমি শংসাপত্র হিসাবে চিহ্নিত pfSense webConfigurator Self-Signed Certificate। কোনও curlত্রুটি নিক্ষেপ করে আশ্চর্য হওয়ার কিছু নেই ।

কারণ: যা ঘটল তা হ'ল curlসাইটের WAN আইপি ঠিকানাটি ব্যবহার করা 49.x.x.x। তবে, ওয়েব সার্ভারের প্রসঙ্গে WAN IP ছিল ফায়ারওয়াল।

ডিবাগ: আমি দেখতে পেয়েছি যে আমি পিএফসেন্স শংসাপত্র পাচ্ছি।

সমাধান: সার্ভারে সাইটটি হোস্টিংয়ে নিজের ডোমেনের নামটি 127.0.0.1 এ নির্দেশ করুন

সমাধানটি প্রয়োগ করে, curlঅনুরোধটি ওয়েব সার্ভারের দ্বারা যথাযথভাবে পরিচালিত হয়েছিল এবং ফায়ারওয়ালের কাছে পাঠানো হয়নি যা লগইন পৃষ্ঠা পাঠিয়ে প্রতিক্রিয়া জানায়।


0

এটি ssh শংসাপত্রের স্টোর ইস্যু। আপনার লক্ষ্য সিএ ওয়েবসাইট থেকে বৈধ শংসাপত্র পেম ফাইলটি ডাউনলোড করতে হবে এবং তারপরে এসএসএলকে বিশ্বস্ত সার্টিফিকেট নির্দেশ দেওয়ার জন্য নরম লিঙ্ক ফাইলটি তৈরি করতে হবে।

openssl x509 -hash -noout -in DigiCert_Global_Root_G3.pem

তুমি পাবে dd8e9d41

হ্যাশ সংখ্যার সাথে সলফ লিঙ্ক তৈরি করুন এবং ফাইলটিকে একটি .0 (ডট-শূন্য) দিয়ে প্রত্যয় করুন

dd8e9d41.0

তারপরে আবার চেষ্টা করুন।


0
  1. Https://curl.haxx.se/ca/cacert.pem ডাউনলোড করুন

  2. ডাউনলোডের পরে, এই ফাইলটি আপনার wamp সার্ভারে সরান।

    এক্সপ্রেসের জন্য: D: amp wamp \ bin \ php \

  3. তারপরে নীচের লাইনটি php.ini ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন।

curl.cainfo = "ডি: \ wamp \ বিন \ পিএইচপি \ cacert.pem"

  1. এখন আপনার wamp সার্ভারটি পুনরায় চালু করুন।

0

পার্ল এইচটিটিপিএস ডেমন-এর সাথে আমারও একই সমস্যা ছিল cert.pemআপনাকে সার্ভারের শংসাপত্রটি পরিবর্তন করতে হবে fullchain.pem
:
আমি পরিবর্তন করেছি: এতে
SSL_cert_file => '/etc/letsencrypt/live/mydomain/cert.pem'
:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/fullchain.pem'


-1

এখনও অবধি, আমি কর্পোরেট নেটওয়ার্কের মধ্যে দুটি কারণে এই সমস্যাটি দেখেছি, একটি বা উভয়ই আপনার ক্ষেত্রে ঘটতে পারে:

  1. নেটওয়ার্ক প্রক্সিগুলি যেভাবে কাজ করে তার কারণে তাদের নিজস্ব এসএসএল শংসাপত্র রয়েছে, যার ফলে কার্ল দেখায় এমন শংসাপত্রগুলি পরিবর্তন করে। অনেকগুলি বা বেশিরভাগ এন্টারপ্রাইজ নেটওয়ার্ক আপনাকে এই প্রক্সিগুলি ব্যবহার করতে বাধ্য করে।
  2. ক্লায়েন্ট পিসিগুলিতে চলমান কিছু অ্যান্টিভাইরাস প্রোগ্রামগুলিও এইচটিটিপিএস প্রক্সির অনুরূপ কাজ করে, যাতে তারা আপনার নেটওয়ার্ক ট্র্যাফিকটি স্ক্যান করতে পারে। আপনার অ্যান্টিভাইরাস প্রোগ্রামটিতে এই ফাংশনটি অক্ষম করার একটি বিকল্প থাকতে পারে (ধরে নিলে আপনার প্রশাসকরা এটি অনুমতি দেবে)।

পার্শ্ব নোট হিসাবে, উপরের নং 2 আপনাকে সম্ভবত আপনার সুরক্ষিত টিএলএস ট্র্যাফিক স্ক্যান করা সম্পর্কে অস্বস্তি বোধ করতে পারে। এটি আপনার জন্য কর্পোরেট ওয়ার্ল্ড।


-1

সমস্যাটি ছিল এবং এটি নতুন সংস্করণ দিয়ে সমাধান করা হয়নি। / ইত্যাদি / সার্টগুলির মূল শংসাপত্র ছিল, ব্রাউজারটি বলেছিল সবকিছু ঠিক আছে। কিছু পরীক্ষার পরে আমি ssllabs.com থেকে সতর্কতা পেয়েছিলাম, আমার চেইনটি সম্পূর্ণ হয়নি (আসলে এটি পুরানো শংসাপত্রের জন্য চেইন ছিল এবং নতুনটি নয়)। শংসাপত্র শৃঙ্খলা সংশোধন করার পরে কার্ল দিয়েও সবকিছু ঠিকঠাক ছিল।


-1

সমস্ত সিএর ডিজিকার্ট নিয়ে আমার এই সমস্যা ছিল। আমি একটি digicertca.pem ফাইল তৈরি করেছি যা কেবলমাত্র মধ্যবর্তী এবং মূল উভয়ই এক ফাইলে সংযুক্ত করা হয়েছিল।

curl https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
curl https://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt.pem

curl -v https://mydigisite.com/sign_on --cacert DigiCertCA.pem
...
*  subjectAltName: host "mydigisite.com" matched cert's "mydigisite.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert SHA2 Secure Server CA
*  SSL certificate verify ok.
> GET /users/sign_in HTTP/1.1
> Host: mydigisite.com
> User-Agent: curl/7.65.1
> Accept: */*
...

ইওরকানের কাছে উত্তর ছিল তবে কেবল নিজের এবং অন্য একজনকে তার উত্তরটি দিয়েছিল।


-2

বিশেষতWindows ব্যবহারকারীদের জন্য , ব্যবহার করে curl-7.57.0-win64-mingwবা অনুরূপ সংস্করণ।

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

এই ত্রুটিটি মূলত এর অর্থ, কার্ল লক্ষ্যযুক্ত ইউআরআইয়ের শংসাপত্রটি যাচাই করতে ব্যর্থ হয়। আপনি যদি শংসাপত্র জারিকারীকে (সিএ) বিশ্বাস করেন তবে আপনি এটি বিশ্বস্ত শংসাপত্রের তালিকায় যুক্ত করতে পারেন।

তার জন্য, ইউআরআই ব্রাউজ করুন (যেমন Chrome এ) এবং পদক্ষেপগুলি অনুসরণ করুন

  1. সুরক্ষিত প্যাডলক আইকনে রাইট ক্লিক করুন
  2. শংসাপত্রের উপর ক্লিক করুন, এটি শংসাপত্রের বিশদ সহ একটি উইন্ডো খুলবে
  3. 'শংসাপত্রের পথ' ট্যাবে যান
  4. রুট শংসাপত্রটি ক্লিক করুন
  5. শংসাপত্র দেখুন ক্লিক করুন, এটি অন্য শংসাপত্র উইন্ডো খুলবে
  6. বিশদ ট্যাবে যান
  7. ফাইল অনুলিপি করুন ক্লিক করুন, এটি এক্সপোর্ট উইজার্ড খুলবে
  8. পরবর্তী ক্লিক করুন
  9. 'বেস -৪৪ এনকোডেড X.509 (.CER)' নির্বাচন করুন
  10. পরবর্তী ক্লিক করুন
  11. একটি বন্ধুত্বপূর্ণ নাম দিন যেমন 'MyDomainX.cer' (পছন্দসই ডিরেক্টরিতে ব্রাউজ করুন)
  12. পরবর্তী ক্লিক করুন
  13. সমাপ্তি ক্লিক করুন, এটি শংসাপত্রের ফাইলটি সংরক্ষণ করবে
  14. এখন এই .cerফাইলটি খুলুন এবং বিষয়বস্তুগুলি অনুলিপি করুন - (----- শুরু করুন শংসাপত্র ----- এবং ----- সমাপ্তি শংসাপত্র -----)
  15. এখন যে ডিরেক্টরিতে curl.exeসংরক্ষণ করা হয়েছে সেখানে যানC:\SomeFolder\curl-7.57.0-win64-mingw\bin
  16. curl-ca-bundle.crtএকটি পাঠ্য সম্পাদক দিয়ে ফাইলটি খুলুন
  17. ফাইলের শেষে অনুলিপি করা শংসাপত্রের পাঠ্য যুক্ত করুন। সংরক্ষণ

এখন আপনার কমান্ড কার্ল মধ্যে জরিমানা করা উচিত।


3
ডাউনভোটের কারণ সম্পর্কে কিছু মন্তব্য প্রশংসা করবে
আরঘ্যা সি

আমি "সি: \ xampp \ অ্যাপাচি \ বিন" (উইন্ডোজ) "curl-ca-bundle.crt" নামের কোনও ফাইল খুঁজে পাই না। অনুমান করুন যে ডাউন ভোটগুলি এই কারণে হয়েছিল। উপরে উল্লিখিত "বিন" ফোল্ডারে আমার "কার্ল.এক্সি" আছে
কাঠিকেইয়ান এ

-4

এটি আপনাকে গুজলের জন্য সাহায্য করতে পারে:

$client = new Client(env('API_HOST'));
$client->setSslVerification(false);

গুজল / গুজল ৩. পরীক্ষিত


-5

সহজ সমাধান: IN ~/.sdkman/etc/config, পরিবর্তন করুনsdkman_insecure_ssl=true

পদক্ষেপ:
ন্যানো সংরক্ষণ এবং প্রস্থান করতে ~/.sdkman/etc/config
পরিবর্তনsdkman_insecure_ssl=falsesdkman_insecure_ssl=true

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