আমি আমাদের সংস্থায় কয়েকটি অভ্যন্তরীণ পরিষেবার জন্য একটি স্ব-স্বাক্ষরিত রুট শংসাপত্র কর্তৃপক্ষ তৈরি করেছি, যা আমি নিজেরাই কনফিগার করেছি (বেশিরভাগ এইচটিটিপিএস এর উপরে পরিবেশন করা হয়েছে)। তারপরে আমি এই পরিষেবাগুলির সাথে স্বাক্ষরিত সেগুলির জন্য শংসাপত্র তৈরি করেছি।
এখন আমি এই সিএ থেকে জারি করা বিদ্যমান সার্ভার শংসাপত্রগুলি অবৈধ না করে মূল সিএতে একটি x509 এক্সটেনশন (সিআরএল বিতরণ পয়েন্ট) যুক্ত করতে চাই। এটা কি সম্ভব?
আমার অন্ত্রের অনুভূতি "হ্যাঁ" কারণ আমি যেমন বুঝতে পেরেছি, সংশ্লিষ্ট ব্যক্তিগত কীতে অ্যাক্সেস প্রয়োজনীয় এবং শংসাপত্রের পরিচয় "সম্পূর্ণ কর্তৃত্ব" এর পক্ষে যথেষ্ট। এটি হ'ল, যদি না সার্টিফিকেটে পাবলিক কী সহ কিছু ধরণের বাজে কথা অন্তর্ভুক্ত থাকে যখন এটি তৈরি হয় (সম্ভবত)।
আমি এখনও এসএসএল শংসাপত্র পরিচালনায় মোটামুটি নতুন, কিন্তু আমি (মনে করি) স্ট্যান্ডার্ড ট্রাস্ট চেইনের মূল বিষয়গুলি বুঝতে পারি। আমি অন্যান্য পিকেআই ক্রিপ্টোর মৌলিক ব্যবহারেও আরামদায়ক: আমি এসএসএইচ কী পরিচালনা করি এবং স্বাক্ষর ও এনক্রিপশনের জন্য জিপিজি ব্যবহার করি। আমি কম্পিউটার বিজ্ঞান অধ্যয়ন করেছি, যদিও আমি ক্রিপ্টোগ্রাফিতে কেবলমাত্র একটি স্ব-শিক্ষিত ছদ্মবেশী।
আমি কখনই আসল আইআইআরসি-র জন্য সিএসআর করিনি (আমি মনে করি এটির প্রত্যক্ষ আউটপুট ছিল openssl req -new -x509
)। আমার কাছে এখনও মূল সিএর ব্যক্তিগত কী রয়েছে অবশ্যই, এবং এটি ব্যবহার করে আমি মূল শংসাপত্রকে একটি শংসাপত্র স্বাক্ষরের অনুরোধে "বিপরীত" করতে সক্ষম হয়েছি:
openssl x509 -x509toreq -in MyCA.pem -out MyCA.csr -signkey private/MyCA.key
আমি আশা করছিলাম এটি কার্যকরভাবে উপরে বর্ণিত ননগুলি "নিষ্কাশন" করবে এবং আমাকে শংসাপত্রটি পুনরায় তৈরি করার অনুমতি দেবে তবে এবার একটি crlDistributionPoints
ক্ষেত্র সহ, এবং ফলস্বরূপ মূল CA এর সাথে স্বাক্ষরিত সমস্ত শংসাপত্রগুলি ব্যতিক্রম ব্যতীত এখনও এই নতুন সিএর বিরুদ্ধে বৈধতা দেবে would যে ক্লায়েন্টরা আমার (বর্তমানে খালি) সিআরএল ফাইলটি ফিল্ডে মনোনীত HTTP URL থেকে পুনরুদ্ধার করবে।
সুতরাং আমি একটি এক্সটেনশন কনফিগার ফাইল তৈরি করেছি ext.conf
:
[ cert_ext ]
subjectKeyIdentifier=hash
crlDistributionPoints=URI:http://security.mycompany.co.za/root.crl
এবং আমি সিএসআর থেকে মূল সিএর নতুন সংস্করণ উত্পন্ন করেছি:
openssl x509 -extfile ./ext.conf -extensions cert_ext -req -signkey private/MyCA.key -in MyCA.csr -out MyNewCA.pem
এখন যখন আমি সাথে শংসাপত্র দেখতে openssl x509 -text -in MyNewCA.pem | less
আমি সিআরএল এক্সটেনশন অংশটি দেখতে পাচ্ছি:
X509v3 extensions:
X509v3 Subject Key Identifier:
82:D0:01:03:49:FF:30:16:FA:DC:0A:1E:C1:8C:3D:66:A1:78:FF:F8
X509v3 CRL Distribution Points:
Full Name:
URI:http://security.mycompany.co.za/root.crl`
কিন্তু হায়! আমার পূর্বে স্বাক্ষরিত শংসাপত্রগুলি এর তুলনায় আর বৈধ নয়:
openssl verify -verbose -CAfile MyCA.pem git.pem
git.pem: OK
openssl verify -verbose -CAfile MyNewCA.pem git.pem
git.pem: <redacted DN>
error 20 at 0 depth lookup:unable to get local issuer certificate
বেশিরভাগ ক্ষেত্রে আমি শংসাপত্রগুলি কীভাবে কাজ করে এবং কেন তা আরও অন্তর্দৃষ্টি খুঁজছি। তবে আমি সমস্যার সমাধানটিকেও স্বাগত জানাই যা এটির দিকে পরিচালিত করে, তাই এখানে কিছু ব্যাকগ্রাউন্ড তথ্যও রয়েছে।
আমি কীভাবে এই গোলযোগের মধ্যে পড়লাম: আমার সিএ এক্সপ্লোরার আরএমবি-এর মাধ্যমে উইন্ডোজে সার্টিফিকেট জিইআই ইনস্টল করা হয়, বা /usr/local/share/ca-certificates
তারপরে update-ca-certificates
ডেবিয়ান এবং উবুন্টুতে ইনস্টল হয়ে গেলে অভ্যন্তরীণ পরিষেবাগুলিতে এইচটিটিপিএস দুর্দান্ত কাজ করে । তবে আমি সম্প্রতি একটি ব্যতিক্রম হয়েছি: উইন্ডোজে গিট, বিশেষত যদি এসএসএল ব্যাক-এন্ড হিসাবে উইন্ডোজ সুরক্ষা চ্যানেলটি ব্যবহার করার জন্য ইনস্টল করা থাকে। যা স্পষ্টতই ডিফল্টভাবে জোর দিয়েছিল যে এসএসএল শংসাপত্রগুলিতে অবশ্যই একটি সিআরএল ক্ষেত্র থাকতে হবে।
সুতরাং আমি অনুমান করি এটি সত্যই একটি উইন্ডোজ সিকিউর চ্যানেল সমস্যা কারণ আমি যে ত্রুটি বার্তাটি চালিয়ে যাচ্ছি তা সম্পূর্ণ মাইক্রোসফ্ট-নির্দিষ্ট বলে মনে হচ্ছে: fatal: unable to access 'https://angery@git.mycompany.co.za/gitblit/r/secret_project.git/': schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
যদি আমি ওপটিএসএসএল দিয়ে গিট ইনস্টল করি এবং git.http.sslcainfo দ্বারা নির্দেশিত ফাইলে আমার সিএকে ম্যানুয়ালি সংযুক্ত করি তবে এটি কার্যকর হয়, তবে আমি আশঙ্কা করি যে আমার ব্যবহারকারীরা যদি এই প্রক্রিয়াটির চেয়ে আরও বেশি প্রচেষ্টা অনুভব করেন তবে তারা এসএসএল পরিচয় যাচাইয়ের বিষয়টি অস্বীকার করবে fear "সহজ" উইন্ডোজ শংসাপত্র ইনস্টলার জিওআইয়ের মাধ্যমে ক্লিক করা।
-x509toreq
বিদ্যমান রুট সিএ থেকে সমস্ত অনন্য তথ্য পুনরুদ্ধার করবে, তবে তা হয় না বা সেখান থেকে আমার প্রক্রিয়াতে কিছু ভুল আছে।
req -new -x509
এবং x509 -req -signkey
উভয়ই এলোমেলো সংখ্যায় স্ব-স্বাক্ষরিত শংসাপত্রের সিরিয়াল ডিফল্ট (যদিও এটি ওভাররাইড করা যেতে পারে) কার্যকরভাবে একটি ননসকে। যদি আপনার শিশু শংসাপত্রের (বা তাদের কোনওটিতে) 'ইস্যুকার + সিরিয়াল' বিকল্পটি ('কীড' বিকল্পের পরিবর্তে বা অতিরিক্ত হিসাবে) ব্যবহার করে অথরিটিকি আইডেন্টিফায়ার থাকে তবে আপনি যদি ca
আপস্ট্রিম ডিফল্ট কনফিগারেশন ফাইল ব্যবহার করেন তবে আপনি যদি পুরানো হিসাবে একই সিরিয়াল দিয়ে নতুন মূল তৈরি করা প্রয়োজন; ব্যবহার -set_serial
। ...