এসএসএল: ত্রুটি: 0B080074: x509 শংসাপত্রের রুটিনগুলি: X509_check_private_key: কী মানগুলি মিলছে না


106

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

আমি যখন এনজিএনএক্স পুনরায় চালু করার চেষ্টা করি তখন আমি যে ত্রুটিটি পেয়েছি তা এখানে রয়েছে:

root@s17925268:~# service nginx restart
Restarting nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/ssl/ssl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed

আমার শংসাপত্রটি স্টার্টএসএল থেকে এবং এটি 1 বছরের জন্য বৈধ।

আমি যা পরীক্ষা করেছি তা এখানে:

  • শংসাপত্র এবং প্রাইভেট কীতে কোনও পিছনের স্থান নেই।
  • আমি ডিফল্ট সার্ভার.কি ফাইল ব্যবহার করছি না।
  • আমি nginx.conf পরীক্ষা করেছি এবং নির্দেশগুলি সঠিক ব্যক্তিগত কী এবং শংসাপত্রের দিকে ইঙ্গিত করছে।

আমি মডিউলটিও পরীক্ষা করেছিলাম এবং কী এবং শংসাপত্র উভয়ের জন্যই আমি আলাদা মডুলাস পাই।

আপনার সাহায্যের জন্য ধন্যবাদ। :)

উত্তর:


37

আমি কী এবং শংসাপত্রের জন্য পৃথক ফলাফল সহ একটি এমডি 5 হ্যাশ পেয়েছি।

এটি সব বলে। আপনার কী এবং শংসাপত্রের মধ্যে একটি মিল নেই।

মডুলাসটি মিলবে। আপনার সঠিক কী আছে তা নিশ্চিত করুন।


আমি কিছু মিস করছি না, আপনি সর্বজনীন এবং ব্যক্তিগত কী (শংসাপত্র ফাইল এবং কী ফাইল) আলাদা হতে চান AN
মার্ক বেরি 23

4
modulus' and the কী এবং শংসাপত্র জনসাধারণের এক্সপোনেন্ট 'অংশ মিলতে হবে। সন্দেহ নেই যে ফাইলগুলি পৃথক। কীটি একটি নির্দিষ্ট শংসাপত্রের জন্য উত্পন্ন হয়।
dev0z

আমার খারাপ। আমি ভেবেছিলাম তিনি ফাইলগুলির MD5 উল্লেখ করছেন। আমি এখন দেখতে পাচ্ছি যে শংসাপত্রগুলির একটি পৃথক মডুলাস ফাংশন রয়েছে: আপনার প্রাইভেট কীতে থাকা মডুলাসটি আপনার এসএসএল / টিএলএস শংসাপত্রের পাবলিক কী ইনস্টলের আগে মডিউলাসের সাথে মেলে তা নিশ্চিত করে কীভাবে?
মার্ক বেরি

173

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

-----BEGIN CERTIFICATE-----
MIIAA-and-a-buncha-nonsense-that-is-your-certificate
-and-a-buncha-nonsense-that-is-your-certificate-and-
a-buncha-nonsense-that-is-your-certificate-and-a-bun
cha-nonsense-that-is-your-certificate-and-a-buncha-n
onsense-that-is-your-certificate-AA+
-----END CERTIFICATE-----

তারা আপনাকে একটি বান্ডিল (প্রায়শই দুটি শংসাপত্র) প্রেরণ করবে যা আপনাকে শংসাপত্র দেওয়ার জন্য তাদের কর্তৃত্বকে উপস্থাপন করে। এই মত দেখতে কিছু হবে

-----BEGIN CERTIFICATE-----
MIICC-this-is-the-certificate-that-signed-your-request
-this-is-the-certificate-that-signed-your-request-this
-is-the-certificate-that-signed-your-request-this-is-t
he-certificate-that-signed-your-request-this-is-the-ce
rtificate-that-signed-your-request-A
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICC-this-is-the-certificate-that-signed-for-that-one
-this-is-the-certificate-that-signed-for-that-one-this
-is-the-certificate-that-signed-for-that-one-this-is-t
he-certificate-that-signed-for-that-one-this-is-the-ce
rtificate-that-signed-for-that-one-this-is-the-certifi
cate-that-signed-for-that-one-AA
-----END CERTIFICATE-----

দুর্ভাগ্যক্রমে ছাড়া, এগুলি এত পরিষ্কারভাবে লেবেল করা হবে না।

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

চালিয়ে যাওয়ার মাধ্যমে সার্টিফিকেট কী প্রতিনিধিত্ব করে তা কী তা পরীক্ষা করে দেখতে পারেন

openssl x509 -noout -text -in yourcert.cert

শীর্ষে, আপনার "বিষয়:" এবং তারপরে আপনার ডেটার মতো দেখতে স্টাফ দেখা উচিত। পরিবর্তে যদি এটি আপনার সিএর মতো লাগে তবে আপনার বান্ডিলটি সম্ভবত ভুল ক্রমে রয়েছে; আপনি ব্যাকআপ তৈরির চেষ্টা করতে পারেন, এবং তারপরে শেষ সার্টটি শুরুতে সরিয়ে নিয়ে যেতে পারেন, আশা করি এটিই আপনার সার্ট।

যদি এটি কাজ না করে তবে আপনাকে কেবল পুনরায় ইস্যু করা শংসাপত্রটি পেতে হবে। আমি যখন কোনও সিএসআর করি তখন আমি কী সার্ভারের জন্য এটি স্পষ্টভাবে লেবেল করতে চাই (কেবলমাত্র ssl.key বা server.key এর পরিবর্তে) এবং নামের সাথে একটি কপি বানাতে চাই যেমন মাইডোমেন 201050306.key ইত্যাদি way তারা ব্যক্তিগত এবং পাবলিক কী জুড়ি অন্য সেট সঙ্গে মিশ্রিত হওয়ার সম্ভাবনা কম।


4
এটি আমার জন্য নিগিনেক্সে স্থির করেছে!
টিটিটি

25
শংসাপত্রের চেইনে কী রয়েছে তা কীভাবে দেখানো যায় তা দেখানোর জন্য বিশাল +1।
cednarski

অবশ্যই কার্যকর, আমি
এনজিএক্স

4
ঠিক আছে, এটি আমার জন্য একটি কমোডো সার্ট এবং এনগিক্স নিয়ে কাজ করেছে। সর্বাধিক সার্ট ব্লকটিকে কেবল শীর্ষে ঠেলে দিয়েছে। এই ইস্যুটির বিশদ ব্যাখ্যা এবং অন্তর্দৃষ্টি জন্য Thx।
অ্যান্ডি ডি

4
এটি আমাকে সাহায্য করে! খুব দরকারী উত্তর! তোমাকে অনেক ধন্যবাদ!
ওলেগ ক্লিমেনকো

71
  1. নিশ্চিত করুন যে আপনার শংসাপত্র এবং কী পিএম ফর্ম্যাট। যদি না হয় তবে ওপেনসেল কমান্ড ব্যবহার করে তাদের রূপান্তর করুন
  2. একটি ব্যক্তিগত কীতে যা আছে তার সাথে এটি মিলছে কিনা তা নিশ্চিত করতে সর্বজনীন কী এর একটি MD5 হ্যাশ পরীক্ষা করুন

    openssl x509 -noout -modulus -in certificate.crt | openssl md5
    openssl rsa -noout -modulus -in privateKey.key | openssl md5
    

7
সদুপদেশ ! ভাল, এমডি 5 হ্যাশ আমার জন্য একই থাকলেও এখনও একই ত্রুটিটি পান ^^
ডেলফাইন

4
কিভাবে হ্যাশগুলি যাচাই করবেন তা অন্তর্ভুক্ত করার জন্য আপনাকে ধন্যবাদ। আমি খুঁজে পেয়েছি যে আমার একটি অনুলিপি পেস্ট হয়েছে, এবং আমার পেমের শুরু থেকেই একটি ড্যাশ অনুপস্থিত। আপনি কেবল আমাকে অনেক মাথা ব্যাথা বাঁচিয়েছেন। চিয়ার্স
জাস্টিন ফরটিয়ার

38

আমার এই সমস্যাটি ছিল কারণ আমি ভুল ক্রমে বান্ডিল এবং শংসাপত্র যুক্ত করেছিলাম তাই এটি হয়ত অন্য কাউকে সহায়তা করতে পারে।

আগে (যা ভুল):

cat ca_bundle.crt certificate.crt > bundle_chained.crt

পরে (যা সঠিক)

cat certificate.crt ca_bundle.crt > bundle_chained.crt

এবং দয়া করে যথাযথ কনফিডটি আপডেট করতে ভুলবেন না (এসএসএল_সেসিফেটটি অবশ্যই এখন চেইন ক্র্যাটের দিকে নির্দেশ করতে হবে)

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     bundle_chained.crt;
    ssl_certificate_key www.example.com.key;
    ...
}

থেকে nginx র manpage :

যদি সার্ভার শংসাপত্র এবং বান্ডেলটি ভুল ক্রমে সংশ্লেষিত হয়ে থাকে তবে এনজিনেক্স শুরু করতে ব্যর্থ হবে এবং ত্রুটি বার্তাটি প্রদর্শন করবে:

SSL_CTX_use_PrivateKey_file(" ... /www.example.com.key") failed
   (SSL: error:0B080074:x509 certificate routines:
    X509_check_private_key:key values mismatch)

4
এটি আসলে গৃহীত প্রশ্নের চেয়ে এই প্রশ্নের উত্তম উত্তর।
টাকরা

10

যদি এটি ঘটে এবং আপনি লেটস এনক্রিপ্ট / সার্টবোট ব্যবহার করছেন তবে কারণটি সম্ভবত আপনি chain.pemপরিবর্তে ব্যবহার করেছেন fullchain.pem

এটি এমন কিছু হওয়া উচিত:

ssl_certificate /etc/certbot/live/example.com/fullchain.pem;
ssl_certificate_key /etc/certbot/live/example.com/privkey.pem;

সার্টবোট ডক্স দেখুন "আমার শংসাপত্রগুলি কোথায়?"


বা বান্ডলে শংসাপত্রগুলির ক্রমটি ভুল: প্রথমে লেটেনক্রিপট, তারপরে নিজস্ব শংসাপত্র।
ইঙ্গোপিংগো

6

আমার একই সমস্যা ছিল এবং অবশেষে শংসাপত্র ফাইলে পেম ব্লকের ক্রম পরিবর্তন করে এটি সমাধান করে।

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

একটি কার্যনির্বাহী শংসাপত্রের ফাইলের সাথে একটি কাজের শংসাপত্রের ফাইলের তুলনা করে আমি এই সমস্যাটি উপলব্ধি করেছি।


1

ইস্যুতে আমার 5 সেন্ট:

আমারও একই সমস্যা ছিল প্রায় 1 ঘন্টা এটির তদারক করার পরে আমি দেখতে পেলাম যে আমি শংসাপত্রটি ভুলভাবে আটকেছি।

আপনার যদি এর মতো ত্রুটি থাকে তবে দয়া করে আপনার শংসাপত্রটি পরীক্ষা করুন।


1

আমার ক্ষেত্রে আমি এসএসএল শংসাপত্র পরিবর্তন করতে চেয়েছিলাম, কারণ আমি আমার সার্ভারটি পরিবর্তন করেছি তাই আমাকে এই আদেশ দিয়ে একটি নতুন সিএসআর তৈরি করতে হবে:

 openssl req -new -newkey rsa:2048 -nodes -keyout mysite.key -out mysite.csr

আমি mysite.csr ফাইলটি এসএসএল সরবরাহকারীর কাছে প্রেরণ করেছি এবং শংসাপত্রটি crt পাওয়ার পরে আমি এনজিনেক্স পুনরায় চালু করেছি এবং আমি এই ত্রুটি পেয়েছি

 (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

অনেক তদন্তের পরে, ত্রুটিটি ছিল যে কী ফাইল থেকে মডিউলটি crt ফাইলের সাথে একই ছিল না

সুতরাং, এটি কাজ করার জন্য, আমি একটি নতুন সিএসআর ফাইল তৈরি করেছি তবে আমাকে এই কমান্ড দিয়ে ফাইলটির নাম পরিবর্তন করতে হবে

 openssl req -new -newkey rsa:2048 -nodes -keyout mysite_new.key -out mysite_new.csr

তারপরে আমি কোম্পানীর সরবরাহকারীর কাছ থেকে একটি নতুন ক্রটি ফাইল পেয়েছি, এনজিনেক্স পুনরায় আরম্ভ করুন এবং এটি কাজ করেছিল।


0

এটি যখন ঘটতে পারে তখন আপনার সিএ একটি মধ্যবর্তী শংসাপত্র প্রদান করে

আমি এনগিনেক্সের সাথে এই সমস্যাটি (দুবার) দৌড়েছি এবং এই পোস্টের কোনও সমাধানই বিষয়টি ব্যাখ্যা করেনি। মার্কো নামে একজন দুর্দান্ত ভদ্রলোকের ব্লগ পোস্টটি এটি পেরেক দিয়েছিল এবং আমি এখানে যা যা দেখছি তাতে দৌড়ে যে কেউ তার জন্য এটি এখানে আটকানো করছি। https://medium.com/@mrkdsgn/steps-to-install-a-go-daddy-ssl-cerર્ટate-on-nginx-on-ubuntu-14-04-ff942b9fd7ff

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

এখানে মার্কোর ব্লগ পোস্ট থেকে উদ্ধৃত অংশ

এনগিনেক্সের সাথে, যদি আপনার সিএ একটি অন্তর্বর্তী শংসাপত্র অন্তর্ভুক্ত করে থাকে তবে আপনাকে অবশ্যই একটি একক শৃঙ্খলিত শংসাপত্র ফাইল তৈরি করতে হবে যাতে আপনার শংসাপত্র এবং সিএর অন্তর্বর্তী শংসাপত্র রয়েছে।

আপনি এই কমান্ডটি উদাহরণ ডটকম.এইচাইনড সিআরটি নামে একটি সম্মিলিত ফাইল তৈরি করতে ব্যবহার করতে পারেন:

cat example.com.crt intermediate.crt > example.com.chained.crt


0

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

 sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

0

আমি যখন bundle.crt এবং প্রধান সার্টটি একত্রিত করেছি তখন এটি আমার কাছে হয়েছিল। কারণটি আমি বান্ডেল সিআরটি এর নীচে মূল সার্টিটি অনুলিপি করেছিলাম। এটা কাছাকাছি অন্য কোন উপায়ে হওয়া উচিত

1 / প্রধান সার্টি 2 / bundle.crt


0

এনগিনেক্সের জন্য:

  1. openssl req -newkey rsa:2048 -nodes -keyout domain.com.key -out domain.com.csr

  2. এসএসএল ফাইল domain_com.crtএবং domain_com.ca-bundleফাইলগুলি, তারপরে পেস্টে নতুন ফাইলটি অনুলিপি করুন domain.com.chained.crt

3: এনগিনেক্স ফাইল যুক্ত করুন:

  1. ssl_certificate /home/user/domain_ssl/domain.com.chained.crt;
  2. ssl_certificate_key /home/user/domain_ssl/domain.com.key;

দেরী Nginx পুনরায় আরম্ভ করুন।


0

SL_CTX_use_PrivateKey ("/ etc / nginx / ssl / file") ব্যর্থ হয়েছে (এসএসএল: ত্রুটি: 0B080074: x509 শংসাপত্রের রুটিন: X509_check_private_key: মূল মানগুলি মেলেনি)

এই ত্রুটিটি ঘটতে পারে, যখন শংসাপত্রের ব্যক্তিগত কী ( ssl_certificate_keyযেমন, .keyবা .pemফাইল) ssl_certificateআপনার এনগিনেক্স কনফিগারেশনের (চেক nginx.confবা ইন sites-enabled/) সার্বজনীন শংসাপত্রের ফাইলের সাথে মেলে না । উভয় ফাইল মিলেছে কিনা তা নিশ্চিত করুন।

আরও তথ্যের জন্য এনগিনেক্স ত্রুটি লগগুলি পরীক্ষা করুন (যেমন /var/log/nginx/error.log)।


0

আমার ক্ষেত্রে আমাকে আমার ডোমেনের শংসাপত্রগুলি একত্রিত করতে হবে।

cat myDomain.crt EntityCertCA.crt TrustedRoot.crt > bundle.crt

এবং কনফিগার ফাইল /etc/nginx/nginx.conf- এ

 ssl_certificate "/etc/pki/nginx/bundle.crt";

পরিষেবাটি পুনঃসূচনা করুন এবং ঠিক আছে।

systemctl restart nginx.service

উত্স পদক্ষেপ 2: https://www.namecheap.com/support/knowledgebase/article.aspx/9781/2238/nginx-ssl-error0b080074x509-certificate-routines-x509checkprivatekeykey-values-mismatch

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