এসএসএল ত্রুটি: স্থানীয় ইস্যুকারী শংসাপত্র পেতে অক্ষম


95

আমি একটি ডেবিয়ান 6.0 32 বিট সার্ভারে এসএসএলটি কনফিগার করতে সমস্যা করছি। আমি এসএসএলে তুলনামূলকভাবে নতুন তাই দয়া করে আমার সাথে সহ্য করুন। আমি যতটা পারি তথ্য অন্তর্ভুক্ত করছি।
দ্রষ্টব্য: সার্ভারের পরিচয় এবং অখণ্ডতা রক্ষার জন্য সত্য ডোমেন নাম পরিবর্তন করা হয়েছে।

কনফিগারেশন

সার্ভারটি nginx ব্যবহার করে চলছে। এটি নিম্নলিখিত হিসাবে কনফিগার করা হয়েছে:

ssl_certificate           /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key       /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols             SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers               HIGH:!aNULL:!MD5;
ssl_verify_depth          2;

আমি এখানে বর্ণিত পদ্ধতিটি ব্যবহার করে আমার শংসাপত্র বেঁধে রেখেছি

cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt

যেখানে mysite.ca.crtশংসাপত্র স্বাক্ষর কর্তৃপক্ষ আমাকে দেওয়া হয়, এবং bundle.crtCA শংসাপত্র আমার স্বাক্ষর কর্তৃপক্ষ আমাকে পাঠানো হয়। সমস্যাটি হ'ল আমি এসএসএল শংসাপত্রটি সরাসরি গ্লোবাল সাইন থেকে কিনিনি, তবে তার পরিবর্তে আমার হোস্টিং সরবরাহকারী, সিঙ্গেলহপের মাধ্যমে।

পরীক্ষামূলক

শংসাপত্রটি সাফারি এবং ক্রোমে যথাযথভাবে বৈধ হয় তবে ফায়ারফক্সে নয়। প্রাথমিক অনুসন্ধানে জানা গেছে যে এটি সিএ সমস্যা হতে পারে।

আমি অনুরূপ প্রশ্নের উত্তর অনুসন্ধান করেছিলাম , তবে কোনও সমাধান খুঁজে পাইনি, কারণ প্রতিটি শংসাপত্র কী উদ্দেশ্যে কাজ করে তা আমি সত্যিই বুঝতে পারি না।

আমি সংযোগটি পরীক্ষা করার জন্য ওপেনসেলের এস_স্লায়েন্ট ব্যবহার করেছি এবং আউটপুট পেয়েছি যা একই সমস্যার অনুরূপ সমস্যাটি ইঙ্গিত করে বলে মনে হচ্ছে । ত্রুটিটি নিম্নরূপ:

depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1

ওপেনসেলের প্রতিক্রিয়া (শংসাপত্র এবং অপ্রয়োজনীয় তথ্য সহ) এর সম্পূর্ণ বিশদ এখানে পাওয়া যাবে

আমি সতর্কতাটিও দেখছি:

No client certificate CA names sent

এটা কি এই সমস্যা হতে পারে? আমি কীভাবে নিশ্চিত করতে পারি যে এনগিনেক্স এই সিএ নাম পাঠায়?

সমস্যা সমাধানের চেষ্টা

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

0 s:/OU=Domain Control Validated/CN=*.mysite.ca
   i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA

পরবর্তী পদক্ষেপ

আমি চেষ্টা করতে পারি এমন কিছু আছে বা যদি আমার কাছে ঠিক পুরো জিনিসটি ভুলভাবে কনফিগার করা থাকে তবে দয়া করে আমাকে জানান।


10
আপনার ডোমেন শংসাপত্রটি ইস্যুকারী দ্বারা স্বাক্ষরিত AlphaSSL CA - SHA256 - G2। যাইহোক, আপনার চেইন অন্তর্বর্তী সরবরাহ করে AlphaSSL CA - G2। আমি বিশ্বাস করি আপনার বর্তমান মধ্যবর্তী শংসাপত্র ( AlphaSSL CA - G2) মুছতে হবে এবং এটি ফিঙ্গারপ্রিন্ট ae:bf:32:c3:c8:32:c7:d7...( AlphaSSL CA - SHA256 - G2) দিয়ে প্রতিস্থাপন করতে হবে । এছাড়াও, আপনি না পাঠাতে হবে GlobalSign Root CA। ক্লায়েন্টকে অবশ্যই তার (বা মধ্যবর্তীতে) আস্থা রাখতে হবে।
jww

6
আপনি ওপেনএসএসএল দিয়ে স্থানীয়ভাবে এটি পরীক্ষা করতে সক্ষম হবেন। ব্যবহার করে দেখুন openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>। কমান্ডটি একটি Verify OK (0)বা অনুরূপ দিয়ে সম্পূর্ণ করা উচিত । আপনি যখন পাবেন Verify OK (0), সার্ভারটি সঠিকভাবে কনফিগার করা হয়েছে (এই সমস্যাটির জন্য)।
jww

6
আপনি যখন নতুন মধ্যবর্তীটি ডাউনলোড করেন, আপনাকে এটির সাথে পিইএমতে রূপান্তর করতে হবে openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM
jww

সুন্দর। আমি বিশ্বাস করি এটি এখন কাজ করছে। কিছু কারণে আমি ভেবেছিলাম যে আমি SHA 256 পাওয়ার চেষ্টা করেছি, তবে অবশ্যই আমি এটি সঠিকভাবে রূপান্তর করতে ব্যর্থ হয়েছি have আপনাকে আন্তরিক ধন্যবাদ জানাই.
জ্যামি কাউন্সেল

4
হ্যাঁ, যে বিষয়টি সন্ধান করতে হবে তা হ'ল সাবজেক্ট-ইস্যুকারী জুটি কোনও মূল বা সিএ-তে ফিরে হাঁটছে। ওপেনএসএসএল তাদের নীচে i:এবং s:নীচে প্রদর্শন করে s_client। আপনার প্রয়োজনীয় শংসাপত্রগুলি তৈরি হয়ে গেলে, রুট ব্যতীত সমস্তগুলি একত্র করুন । যেহেতু তারা একত্রে রয়েছে, তাদের পিইএম ফর্ম্যাটে থাকা দরকার। URL টি সহায়ক ছিল। এটি পুরানো হয়ে উঠছে এমন লোকদের সাহায্য করার চেষ্টা করছে যারা তথ্য সরবরাহ করে না তাই আমরা স্থানীয়ভাবে এটি দেখতে পারি s_client। (আপনি যদি ইউআরএলটি না দিয়ে থাকেন তবে আমি বন্ধ করার পক্ষে ভোট দিতাম)।
jw

উত্তর:


48

jww ঠিক আছে - আপনি ভুল মধ্যবর্তী শংসাপত্র উল্লেখ করছেন।

আপনার যেমন একটি SHA256 শংসাপত্র জারি করা হয়েছে, আপনার SHA256 অন্তর্বর্তী প্রয়োজন। আপনি এখান থেকে এটি দখল করতে পারেন: http://secure2.alphassl.com/cacert/gslphasha2g2r1.crt


-3

আপনি যদি একটি লিনাক্স ব্যবহারকারী হন তবে চালনা করে পরবর্তী সংস্করণে আপডেট নোড

sudo apt update

 sudo apt install build-essential checkinstall libssl-dev

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.1/install.sh | bash

nvm --version

nvm ls

nvm ls-remote

nvm install [version.number]

এটা আপনার সমস্যা সমাধান করবে

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