আমি কীভাবে ওপেনএসএসএল দ্বারা একটি আইআইএস 7 এসএসএল পুনর্নবীকরণ সিএসআর যাচাই / পড়তে পারি


10

আমার কাছে প্রতি সপ্তাহে ~ 5 এসএসএল সিএসআর হ্যান্ডল করার সুযোগ রয়েছে, তাদের সিএ-তে পদক্ষেপ নেওয়ার আগে তাদের বৈধতা পরীক্ষা করে দেখার জন্য। আমি ওবুন্টু মেশিনে ওপেনএসএল ব্যবহার করি সেগুলি বৈধ কিনা তা যাচাই করার জন্য, সঠিক ওयू নাম, একটি বুদ্ধিমান সিএন, কী আকার> = 2048 বিট ইত্যাদির মতো জিনিসগুলি পরীক্ষা করে, কারণ আমাদের অনুরোধগুলি মাঝে মাঝে ভুল হয়।

অন্য দিন আমি একটি আইআইএস machine মেশিন থেকে একটি নবায়ন অনুরোধ পেয়েছি । ওপেনএসএসএল ব্যবহার করে কীভাবে এটি পড়তে হবে তা আমি বুঝতে পারি না। এটি বৈধ, কারণ আমার সিএ এটি গ্রহণ করেছে ...

'ফাইল (1)' বলছে এটি একটি "আরএফসি 1421 সুরক্ষা শংসাপত্র স্বাক্ষরকারী অনুরোধের পাঠ্য", যা এটি আমার কাছে থাকা সিএসআর এর ~ 50% এর জন্য বলেছে (বাকীগুলি "পিইএম শংসাপত্রের অনুরোধ")।

$ head iis7rcsr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIQsQYJKoZIhvcNAQcCoIIQojCCEJ4CAQExCzAJBgUrDgMCGgUAMIIJegYJKoZI
hvcNAQcBoIIJawSCCWcwggljMIIIzAIBADCB2zELMAkGA1UEBhMCTloxDTALBgNV
BBEMBDkwNTQxDjAMBgNVBAgMBU90YWdvMRAwDgYDVQQHDAdEdW5lZGluMRwwGgYD
...
...

openssl req, যা সিএসআর পড়ছে (পিকেসিএস # 10) এটি বুঝতে ব্যর্থ হয়েছে ...

$ openssl req -in iis7rcsr -text
unable to load X509 request
5156:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1316:
5156:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509_REQ_INFO
5156:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:748:Field=req_info, Type=X509_REQ
5156:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:

এমএসডিএন ব্লগে আন্দ্রেস ক্লিনের এই নিবন্ধটি পরামর্শ দেয় যে আইআইএস rene পুনর্নবীকরণের সিএসআরগুলি একটি পিকেসিএস # 7 ধারক, একটি সিএসআর এবং বর্তমান শংসাপত্রের ভিত্তিতে স্বাক্ষরযুক্ত ... তবে আমি এখনও এটি পড়তে পারি না।

$ openssl pkcs7 -in iis7rcsr -text
unable to load PKCS7 object
6581:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: PKCS7

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

তবে আমি এখনও সেখানে থাকা সিএসআর পড়ার কোনও উপায় খুঁজে পাই না! আমি অনেক কিছুই চেষ্টা করেছি, আমি এখানে বিশদটি তালিকাবদ্ধ করব না, তবে এখানে আমি চেষ্টা করেছি যে বিভিন্ন পরিবর্তনের উচ্চ পয়েন্ট: pkcs12 pkcs7 PEM DER req x509 যাচাই করুন ...

দুর্ভাগ্যক্রমে আমি নিজেই এখানে সিএসআর পোস্ট করতে পারি না। এই ফাইলটি পড়ার / যাচাই করার জন্য কোনও উপায় কী আমাকে সাহায্য করতে পারে?


সুযোগক্রমে অনুরোধটিতে কোনও সাবজেক্ট বিকল্প নাম অনুসন্ধান করার বৈশিষ্ট্যগুলি রয়েছে?
শেন মাদেন

আমি সন্দেহ করি - এটি একটি একক নামের অভ্যন্তরীণ সার্ভারের জন্য। অবশ্যই আমরা যে শংসাপত্রগুলি পেয়েছি সেগুলিতে সাধারণত 'www' এর সাথে সান ফিল্ড থাকে। জোর করে sertedোকানো হয়েছে, তবে আমরা সেই সাথেই থাকি!
জিম চিতাম

একটি উইন্ডোজ মেশিনের সার্টিটিল এই শংসাপত্রটি পড়বে, এবং একটি পিকেসিএস 10 শংসাপত্র অনুরোধ (পুরানো সিএ থেকে x509 সার্ট ধারণ করে) এবং অন্য একটি x509 সার্টযুক্ত একটি শৃঙ্খলা শৃঙ্খলাযুক্ত একটি PKCS7 বার্তা হিসাবে বর্ণনা করবে describes 'সার্টুটিল -স্প্লিট' এই অংশগুলি ছিন্ন করে এবং ব্লব0_1.p10 হ'ল সিএসআর হ'ল আমি প্রত্যাশা করছি, ডিআর ফর্ম্যাটে in সুতরাং আমি কাছাকাছি আসছি ... এবং হ্যাঁ, অনুরোধে একটি সান ক্ষেত্র রয়েছে, যা সম্ভবত 'www' এর বাধ্যতামূলক সন্নিবেশের ফলাফল। গত বছর যখন আমরা আসল শংসাপত্র পেয়েছিলাম ...
জিম চিতাম

1
openssl asn1parseঅনুরোধটি পড়তে পারি এবং সেখান থেকে আমি সাধারণ সিএসআর বের করতে পারি। আমি এখনও স্ব-জবাব দিতে পারছি না (খুব দ্রুত সমাধান করেছি) তাই আমি সমাধানটি দিয়ে প্রশ্নটি আপডেট করব এবং আগামীকাল এটি ঠিক করব :-)
জিম চিতাম

ভাল, ভাল সন্ধান!
শেন ম্যাডেন

উত্তর:


8

এই আইআইএস 7 পুনর্নবীকরণ অনুরোধটির কাঠামোটি আসলে বেশ মার্জিত। ধারণাটি শুরু থেকেই মনে হয় যে এটি একটি বর্তমান শংসাপত্র পুনর্নবীকরণের জন্য একটি অনুরোধ , তাই এটি প্রমাণ করা দরকার যে অনুরোধটি সঠিক হোস্ট থেকে আসছে - অর্থাত্ বর্তমান শংসাপত্রটি ব্যবহার করে এমন হোস্ট & এর সাথে সম্পর্কিত ব্যক্তিগত মালিকানাধীন মূল. ইন্টারনেট বিশ্বে, আপনি প্রমাণ করেছেন যে আপনাকে স্বাক্ষরিত সিএসআর তৈরির পরিবর্তে আপনার সিএকে মূল ব্যবহারকারী হিসাবে প্রমাণীকরণের মাধ্যমে শংসাপত্রের জন্য নবায়নগুলির অনুরোধ করার অনুমতি দেওয়া হচ্ছে।

পুনর্নবীকরণের অনুরোধ জারি করার অধিকার প্রমাণ করার জন্য, আইআইএস 7 একটি সাধারণ সিএসআর (পিকেসিএস # 10 অবজেক্ট) তৈরি করে এবং তারপরে স্বাক্ষর করে এবং কী স্বাক্ষর করে তার সার্টিফিকেট সরবরাহ করে।

  • আইআইএস 7 পুনর্নবীকরণ সিএসআর
    • পিকেসিএস # 7 ডেটা
      • পিকেসিএস # 10 ডেটা (সাধারণ সিএসআর)
    • সাধারণ সার্ভার শংসাপত্র
    • সিএ ডেটা ইস্যু করা হচ্ছে
    • আরএসএ স্বাক্ষর (আমি ধরে নিই)

openssl asn1parse -in iis7rcsr -iফাইলটির কাঠামো দেখতে ব্যবহার করুন এবং এটিকে সাধারণ সিএসআরের সাথে তুলনা করুন। ": Pkcs7-data" লেবেলযুক্ত একটি অবজেক্টে আপনাকে শুরুতে একটি অক্সেট STRING দেখতে হবে, যা আপনাকে সিএসআর পেতে এক্সট্র্যাক্ট করতে হবে।

$ openssl asn1parse -in iis7rcsr -i
0:d=0  hl=4 l=4273 cons: SEQUENCE          
4:d=1  hl=2 l=   9 prim:  OBJECT            :pkcs7-signedData
15:d=1  hl=4 l=4258 cons:  cont [ 0 ]        
19:d=2  hl=4 l=4254 cons:   SEQUENCE          
23:d=3  hl=2 l=   1 prim:    INTEGER           :01
26:d=3  hl=2 l=  11 cons:    SET               
28:d=4  hl=2 l=   9 cons:     SEQUENCE          
30:d=5  hl=2 l=   5 prim:      OBJECT            :sha1
37:d=5  hl=2 l=   0 prim:      NULL              
39:d=3  hl=4 l=2426 cons:    SEQUENCE          
43:d=4  hl=2 l=   9 prim:     OBJECT            :pkcs7-data
54:d=4  hl=4 l=2411 cons:     cont [ 0 ]        
58:d=5  hl=4 l=2407 prim:      OCTET STRING      [HEX DUMP]:3082096330820...

প্রকৃত পিকেসিএস # 10 সিএসআর এখান থেকে বেরিয়ে আসার জন্য আমাদের এই উদাহরণটিতে সেই অফসেট নম্বরটি "58" দরকার। তারপরে আমরা সেই অফসেটটি সেই বস্তুর বাইনারি সংস্করণটি বের করতে ব্যবহার করতে পারি: -

$ openssl asn1parse -in iis7rcsr -strparse 58 -out thecsr -noout

এরপরে আমরা সেই আউটপুট ফাইলটি 'থিএসসিআর' পড়তে পারি openssl req, ইনপুট ফর্ম্যাটটি ডিইআর উল্লেখ করার কথা মনে করে।

$ openssl req -in thecsr -inform DER -text -noout
Certificate Request:
Data:
    Version: 0 (0x0)
    Subject: (normal CSR Subject: line, censored)
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
...

অস্থায়ী ফাইলগুলি না দিয়ে আমি এই সমস্তগুলি একটি কমান্ড-লাইনে আবদ্ধ করতে পারি (তবে দুঃখের বিষয় 2 মূল সার্টটি পড়ে) যতক্ষণ না আমি লিনাক্সকে /proc/self/fd/ওপেনসেলকে বোকা বানানোর জন্য ব্যবহার করতে পারি (এটি পাসওয়ার্ড হ্যান্ডলিংয়ের জন্য ফাইল বর্ণনাকারীর সাথে দেশীয় কৌশলগুলি করবে) তবে সাধারণ আউটপুট নয়)।

$ openssl asn1parse -in iis7rcsr -strparse $(openssl asn1parse -in iis7rcsr | grep -A2 ':pkcs7-data'|tail -1|cut -d: -f1) -out /dev/stdout -noout | openssl req -inform DER -noout -text

Certificate Request:
Data:
    Version: 0 (0x0)
    Subject: (Subject: line censored again)
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
        RSA Public Key: (1024 bit)
            Modulus (1024 bit):
...

এই দীর্ঘ কমান্ড লাইনটি openssl req -in non-iis7rcsr -noout -textআমি সাধারণভাবে :-) ব্যবহার করি তার সাধারণের সমান is



2

জিমকে এই দুর্দান্ত তথ্যের জন্য ধন্যবাদ যা ব্যাপকভাবে সহায়ক ছিল, ডাব্লু ২০০৮ / আইআইএস server সার্ভার শংসাপত্রটি পুনর্নবীকরণের চেষ্টা করতে আমার ঠিক একই সমস্যা হয়েছিল।

আমি শুধু একটি জিনিস যোগ করতে হবে। আপনি নিম্নলিখিত কমান্ডটি দিয়ে সরাসরি certutil -split iis7rcsr পি 10 ফর্ম্যাটে সিএসআরটি বের করতে সক্ষম হতে পারেন: (আইআইএস ম্যানেজারের মাধ্যমে আপনি প্রাপ্ত আইসি 7 আরসিএসআর। সিএসআর হচ্ছেন)। সিএসআরটি পরে blob0_1.p10 এটি বাইনারি ফর্ম্যাটে (ডিইআর) নামের একটি ফাইলে বের করা হবে , আপনাকে নিম্নলিখিত কমান্ডের সাহায্যে বেস 64 এ এটি এনকোড করতে হতে পারে: certutil -encode blob0_1.p10 finalcsr.csr

যদিও একটি শেষ সমস্যা আছে। তারপরে আমি আবিষ্কার করেছিলাম .csr সামগ্রীটি ওপেনএসএল দিয়ে ডাম্প করেছিলাম যে পুনর্নবীকরণ প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে 1024 বিট কী ব্যবহার করতে বাধ্য করে (যদিও সার্ভার শংসাপত্রের জন্য সার্ভারে তৈরি মূল ব্যক্তিগত কীটি 2048 বিট দৈর্ঘ্যের ছিল)। দেখে মনে হচ্ছে আপনি আইআইএস 7 এর পুনর্নবীকরণ প্রক্রিয়াটি ব্যবহার করে 2048 বিট কী ব্যবহার করতে বাধ্য করতে পারবেন না।

একমাত্র ভাল বিকল্পটি মনে হয় কোনও নতুন কী / শংসাপত্র তৈরি করা এবং পুনর্নবীকরণ প্রক্রিয়াটি ব্যবহার না করা।

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