আমি কেন এই শংসাপত্র শৃঙ্খলা যাচাই করতে পারি না?


16

একটি চেইনে আমার তিনটি শংসাপত্র রয়েছে:

  • root.pem
  • intermediate.pem
  • john.pem

যখন আমি তাদের পরীক্ষা করে দেখি openssl x509 -in [filename] -text -nooutতারা সূক্ষ্ম দেখায়, root.pem দেখে মনে হয় এটি স্ব-স্বাক্ষরিত (ইস্যুয়ার == বিষয়), এবং প্রতিটি শংসাপত্রের সাবজেক্টটি প্রত্যাশার মতো পরেরটির ইস্যুকারী।

এবং প্রকৃতপক্ষে আমি মধ্যবর্তী শংসাপত্র পর্যন্ত চেইনটি যাচাই করতে পারি:

$ openssl verify -CAfile root.pem root.pem
root.pem: OK
$ openssl verify -CAfile root.pem intermediate.pem
intermediate.pem: OK

তবে জন.পিএম ব্যর্থ:

$ openssl verify -CAfile root.pem -CAfile intermediate.pem john.pem
john.pem: C = CL, [...redacted data...]
error 2 at 1 depth lookup:unable to get issuer certificate

আমার জ্ঞানের সর্বোপরি, এর অর্থ হ'ল ওপেনসেল ইন্টারমিডিয়েট.পিএম-এর জন্য ইস্যুকারীকে সন্ধান করতে অক্ষম। Root.pem প্রকৃতপক্ষে ইন্টারমিডিয়েট.পিএম এর ইস্যুকারী হিসাবে এটি কোন অর্থ দেয় না।

আমি কী মিস করছি?


সম্পাদনা করুন: আমি মূলত একটি উত্তর পোস্ট করে বলেছিলাম যে রুট.পেম এবং ইন্টারমিডিয়েট.পিএম একটি ফাইলে সংমিশ্রিত হওয়া উচিত এবং তারপরে এই ফাইলটি প্যারামিটার হিসাবে ব্যবহার করা উচিত -CAfile। এটি ভুল, কারণ জোহানেস পিল উল্লেখ করেছেন বলে এটি সুস্পষ্টভাবে ইন্টারমিডিয়েট.পিএমকে বিশ্বাস করে। আমার মুছে ফেলা উত্তরে তিনি যে লিঙ্কটি পোস্ট করেছেন তা পড়ুন: https://mail.python.org/pipermail/cryptography-dev/2016- অগাস্ট/ 000676.html


আপনার উত্তর মুছুন, এটি বিপজ্জনক ভুল তথ্য!
জোহানেস পিল

1
@ জোহানেসপিল সম্পন্ন, তথ্যের জন্য আপনাকে ধন্যবাদ
জং বোর

প্রকৃতপক্ষে এটি করার জন্য দ্রুত এবং দ্রুত প্রতিক্রিয়া K
জোহানেস পিল

উত্তর:


14

এগুলি যাচাই করার জন্য আপনাকে দুটি শংসাপত্র একসাথে পেতে হবে না।

আপনার যদি নিম্নলিখিত তিনটি শংসাপত্র থাকে:

  • root.pem - একটি স্ব-স্বাক্ষরিত শংসাপত্র সংরক্ষণ করে।
  • ইন্টারমিডিয়েট.পিএম - root.pem দ্বারা স্বাক্ষরিত একটি শংসাপত্র সংরক্ষণ করে
  • john.pem - ইন্টারমিডিয়েট.পিএম স্বাক্ষরিত একটি শংসাপত্র সংরক্ষণ করে

এবং আপনি কেবলমাত্র root.pem এ বিশ্বাস করেন, তারপরে আপনি john.pemনীচের আদেশটি দিয়ে যাচাই করবেন :

openssl verify -CAfile root.pem -untrusted intermediate.pem john.pem

এটি আপনার অনেক মধ্যস্থতাকারী ছিল, আপনি কেবল চেইন করতে পারেন -untrusted intermediate2.pem -untrusted intermediate3.pem ...


এই. একমাত্র সঠিক উত্তর।
জোহানেস পিল

আমি ভেবেছিলাম যে যদি আমার কাছে বান্ডলে ইন্টারমিডিয়েট এবং রুট সিএ শংসাপত্র দুটি থাকে তবে opensslসেগুলি বাছাই করতে হবে এবং শংসাপত্রগুলি যাচাই করবে। এটি হওয়ার কারণ আছে কি? পছন্দ করুন, যে ব্যক্তি ব্যবহারকারীর শংসাপত্রে স্বাক্ষর করেছেন তিনি ইন্টারমিডিয়েটের সাথে স্বাক্ষর করেননি তবে মূল, বা অন্য কিছু?
ফিলবট 3

এই উত্তরের শেষ বাক্যটি ভুল। আপনার যদি অনেক মধ্যস্থতাকারী থাকে তবে আপনাকে সেগুলি একটি মধ্যবর্তী ফাইলে কনটেনেট করতে হবে তবে untrustedপতাকাটি একবার ব্যবহার করুন । অবিশ্বস্ত পতাকা একাধিকবার ব্যবহার করা কার্যকর হয় না।
আজাক্সলিং

1
@ অজ্যাক্স লেউং - উভয় একাধিক -untrustedবিকল্প (যে কোনও ক্রমে) বা একটি একক -untrustedবিকল্প মধ্যস্থতাকারী (কোনও ক্রমে সংশ্লেষিত ) কাজগুলিতে নির্দেশ করে। এটি উবুন্টুতে ওপেনএসএসএল সংস্করণ 1.1.1c সহ।
garethTheRed

হ্যাঁ আমি ভুল করেছিলাম। আমি মনে করি আমি মন্তব্যটি লেখার সময় সঠিক ফাইলগুলি ব্যবহার করছিলাম না।
AjaxLeung

3

@ এন্টিদুহ যা বলেছে তা কেবলমাত্র আমার জন্য একক মধ্যবর্তী শংসাপত্রের ক্ষেত্রে কাজ করে। -untrusted intermediate.pemকমান্ডে একাধিক যুক্ত করে কাজটি মনে হয় না। নিশ্চিত যে এটি নির্দিষ্ট ওপেনসেল সংস্করণের সাথে সম্পর্কিত।

ওপেনসেল ডকুমেন্ট অনুসারে: [ https://linux.die.net/man/1/verify]

সুনিশ্চিত ফাইল

অবিশ্বস্ত শংসাপত্রের একটি ফাইল। ফাইলটিতে একাধিক শংসাপত্র থাকা উচিত

আমার ক্ষেত্রে আমার মতো চেইন রয়েছে: root.pem -> intermediate1.pem -> intermediate2.pem -> john.pem

বিড়াল ইন্টারমিডিয়েট 1.pem এবং ইন্টারমিডিয়েট 2.pem দ্বারা একটি একক ইন্টারমিডিয়েট-চেইন.পিএম ফাইল এবং তারপরে openssl verify -CAfile root.pem -untrusted intermediate-chain.pem john.pemআমার জন্য কাজ করে।

এছাড়াও আপনাকে সিএ এক্সটেনশানটি সেট করতে হবে বলে মনে হচ্ছে basicConstraints = CA:trueঅন্যথায় আমি এখনও ওপেনসেল যাচাই প্রতিবেদনের ত্রুটির মুখোমুখি হয়েছি।

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