কার্ল: স্থানীয় ইস্যুকারী শংসাপত্র পেতে অক্ষম। কীভাবে ডিবাগ করবেন?


14

আমি একটি বিজোড় সমস্যা পেয়েছি। আমার ল্যাম্প ডেভ মেশিন (ডেবিয়ান) পিএইচপি 7. এ আপডেট করেছে After এর পরে আমি আর কার্লের মাধ্যমে কোনও নির্দিষ্ট টিএলএস এনক্রিপ্ট হওয়া এপিআইয়ের সাথে সংযোগ করতে পারি না।

প্রশ্নে থাকা এসএসএল শংসাপত্রটি স্বাক্ষরিত হয়েছে।

curl https://example.com

আমাকে দেয়

curl: (60) SSL certificate problem: unable to get local issuer certificate

যেহেতু

curl https://thawte.com

যা — অবশ্যই Tha এছাড়াও থাওতে কাজ করে স্বাক্ষরিত।

আমি অন্যান্য মেশিনে এইচটিপিপিএস এর মাধ্যমে এপিআই সাইট অ্যাক্সেস করতে পারি, যেমন আমার ডেস্কটপটি কার্লের মাধ্যমে এবং ব্রাউজারে। সুতরাং শংসাপত্রটি অবশ্যই কার্যকর। এসএসএল ল্যাবগুলি রেটিং এ।

আমার ডেভ মেশিন থেকে অন্য এসএসএল এনক্রিপ্ট হওয়া সাইটগুলিতে অন্য কোনও কার্ল অনুরোধ কাজ করে। আমার মূল শংসাপত্রগুলি আপ টু ডেট। যাচাই করার জন্য, আমি দৌড়ে গেলাম update-ca-certificates। এমনকি আমি http://curl.haxx.se/ca/cacert.pem / / etc / ssl / certs এ ডাউনলোড করে দৌড়েছি c_rehash

এখনও একই ত্রুটি।

যাচাইকরণ প্রক্রিয়াটি ডিবাগ করার জন্য এবং কোন স্থানীয় ইস্যুকারী শংসাপত্র কার্ল (বা ওপেনসেল) খুঁজছেন তবে খুঁজে পাচ্ছে না, অর্থাত কোনও ফাইলের নাম আছে কি কোনও উপায় আছে?

হালনাগাদ

curl -vs https://example.com

আমাকে বলে (আইপি + ডোমেন নামবিহীন)

* Hostname was NOT found in DNS cache
*   Trying 192.0.2.1...
* Connected to example.com (192.0.2.1) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  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

এবং

echo | openssl s_client -connect example.com:443

দেয়

CONNECTED(00000003)
depth=2 C = US, O = "thawte, Inc.", OU = Certification Services Division, OU = "(c) 2006 thawte, Inc. - For authorized use only", CN = thawte Primary Root CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/C=DE/ST=XYZ/CN=*.example.com
   i:/C=US/O=thawte, Inc./CN=thawte SSL CA - G2
 1 s:/C=US/O=thawte, Inc./CN=thawte SSL CA - G2
   i:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA
 2 s:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA
   i:/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
subject=/C=DE/ST=XYZ/CN=*.example.com
issuer=/C=US/O=thawte, Inc./CN=thawte SSL CA - G2
---
No client certificate CA names sent
---
SSL handshake has read 4214 bytes and written 421 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: [...]
    Session-ID-ctx:
    Master-Key: [...]
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 5a 95 df 40 2c c9 6b d5-4a 50 75 c5 a3 80 0a 2d   Z..@,.k.JPu....-
    [...]
    00b0 - d5 b9 e8 25 00 c5 c7 da-ce 73 fb f2 c5 46 c4 24   ...%.....s...F.$

    Start Time: 1455111516
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---
DONE

1
আপনি কি সেমিডির কমপক্ষে একটি ভার্বোজ আউটপুট দিতে পারবেন? curl -vs https://example.com echo | openssl s_client -connect example.com:443
ফ্রাসোয়া

উত্তর:


8

openssl s_client -connect thawte.com:443শো ব্যবহার করে :

---
Certificate chain
 0 s:/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/O=Thawte, Inc./C=US/ST=California/L=Mountain View/businessCategory=Private Organization/serialNumber=3898261/OU=Infrastructure Operations/CN=www.thawte.com
   i:/C=US/O=thawte, Inc./CN=thawte Extended Validation SHA256 SSL CA
 1 s:/C=US/O=thawte, Inc./CN=thawte Extended Validation SHA256 SSL CA
   i:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2008 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G3
---

সর্বশেষ "আমি" ইস্যু করে স্ব-স্বাক্ষরিত মূল সিএ দেখায়। আমি অনুমান করছি যে সেই নির্দিষ্ট Thawte মূল সিএ , _ i.e। প্রাথমিক রুট সিএ - G3 যা নিশ্চিতভাবে ঘটবে, আপনার মধ্যে নেই /etc/ssl/certs(যেমন বিবৃত ডিরেক্টরির curlআউটপুট; openssl s_clientডিফল্ট সিএ পথ নেই, এবং এক দেওয়া স্পষ্টভাবে, এর চাহিদা যেমন -CApath /etc/ssl/certs )।

আপনার /etc/ssl/certsডিরেক্টরিতে স্পষ্টভাবে সেই শংসাপত্রটি যুক্ত করা (এবং পুনরায় চলমান c_rehash) অবশ্যই ক্ষতি করবে না। এবং যদি এটি কাজ করে, যেমন ব্যবহার করে যাচাই করা হয়েছে openssl s_client -connect example.com:443 -CApath /etc/ssl/certs, তবে আপনি জানেন যে এই update-ca-certificatesকমান্ডটির জন্য কিছু পরীক্ষা / ডিবাগিংয়ের প্রয়োজন হতে পারে, কেন এটি এই মূল সিএটি গ্রহণ করে নি as

এখন, এটি হতে পারে যে উপরের মূল সিএটি ইতিমধ্যে আপনার /etc/ssl/certsডিরেক্টরিতে রয়েছে এবং উপরের পদক্ষেপগুলির কোনও প্রভাব ছিল না। সেক্ষেত্রে, পরীক্ষা করার জন্য আরও দুটি সিটি শংসাপত্র রয়েছে (অন্তত প্রদত্ত শংসাপত্রের চীনটিতেthawte.com:443 ): প্রাথমিক রুট সিএ গলান , এবং এসএসএল সিএ-গিথতে - জি 2 । আপনার /etc/ssl/certsডিরেক্টরিতে এই শংসাপত্রগুলি ইনস্টল করতে উপরের পদক্ষেপগুলি পুনরুক্ত করা (এবং পুনরায় চলমান c_rehash) কাজ করতে পারে। যেহেতু এই দুটি মধ্যবর্তী সিএ, এবং মূল সিএ নয়, এর মধ্যে একটির অনুপস্থিতি আপনার ফলাফলগুলি ব্যাখ্যা করবে এবং এটিকে উপেক্ষা করা শংসাপত্র হিসাবে প্রত্যাশা করা যেতে পারে update-ca-certificates

আশাকরি এটা সাহায্য করবে!


ধন্যবাদ! ইন্টারমিডিয়েট সার্ট "গলিয়ে এসএসএল সিএ - জি 2" ডাউনলোড করে / ইত্যাদি / এসএসএল / সার্টিফিকেট এবং পুনরায় পুনরায় কাজ করার ফলে সি_রেহেশ সমস্যাটি স্থির করেছে!
রব

1
এই openssl s_client -connect <server>:443 -CAfile cacert.pemআদেশটি খুব সহায়ক ... আপনাকে ধন্যবাদ!
ক্রিস

0

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

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

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