ওপেনসেল ব্যবহার করে স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করার সময় কীভাবে বর্ধিত কী ব্যবহারের স্ট্রিং যুক্ত করতে হয়


10

আমি উইন্ডোজ সার্ভার রিমোট ডেস্কটপ পরিষেবাদির জন্য স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে ম্যাক ওএস এক্স 10.9 এ ওপেনসেল ব্যবহার করছি।

নীচের কমান্ডটি ব্যবহার করে আমি শংসাপত্র তৈরি করতে পারি,

   openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt

তবে, আমাকে একটি বর্ধিত কী ব্যবহারের স্ট্রিং সার্ভার প্রমাণীকরণ (1.3.6.1.5.5.7.3.1) যুক্ত করতে হবে এবং উপরের কমান্ডটিতে এটি কীভাবে করা যায় তা আমি বুঝতে পারি না।

আমি ওপেনএসএল বিকল্পটি ব্যবহার করার চেষ্টা করেছি - এই ফাইলটি সহ এক্সটাইল ফাইল,

[= default ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1

তবে, আমি একটি ত্রুটি পেয়েছি যে "-xtfile বিকল্পটি পাওয়া যায় না"


1
(সিএলআই) ওপেনসেল কনফিগারেশন ফাইলগুলি আমাকে বোঝায় যে আমি চেয়েছি শংসাপত্রগুলি তৈরি করতে কোড লেখা সহজ। আমি গোলং ব্যবহার করেছি তবে আমার ধারণা আপনি ওপেনসেল ক্লাইব ব্যবহার করতে পারেন।
রিদমিক ফিস্টম্যান

উত্তর:


9

যদিও openssl x509ব্যবহারসমূহ -extfile, কমান্ড আপনাকে ব্যবহার করছেন, openssl reqপ্রয়োজন এমন -configকনফিগারেশন ফাইল উল্লেখ করার।

সুতরাং, আপনি এটির মতো একটি কমান্ড ব্যবহার করতে পারেন:

openssl req -x509 -config cert_config -extensions 'my server exts' -nodes \
            -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt

স্বতন্ত্র নামের বিটগুলির জন্য প্রম্পটগুলি সাধারণত ডিফল্ট কনফিগারেশন ফাইল (যা সম্ভবত /System/Library/OpenSSL/openssl.cnfওএস এক্স-এ থাকে) সংজ্ঞায়িত করা হয় , তবে আপনি যখন ব্যবহার করবেন তখন এই ফাইলটি প্রক্রিয়া করা হয় না -config, সুতরাং আপনার কনফিগারেশন ফাইলটিতে অবশ্যই কিছু ডিএন বিট অন্তর্ভুক্ত থাকতে হবে। সুতরাং, উপরোক্ত রেফারেন্সটি cert_configদেখতে এর মতো কিছু দেখতে পারে:

[ req ]
prompt             = no
distinguished_name = my dn

[ my dn ]
# The bare minimum is probably a commonName
            commonName = secure.example.com
           countryName = XX
          localityName = Fun Land
      organizationName = MyCo LLC LTD INC (d.b.a. OurCo)
organizationalUnitName = SSL Dept.
   stateOrProvinceName = YY
          emailAddress = ssl-admin@example.com
                  name = John Doe
               surname = Doe
             givenName = John
              initials = JXD
           dnQualifier = some

[ my server exts ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
# 1.3.6.1.5.5.7.3.1 can also be spelled serverAuth:
# extendedKeyUsage = serverAuth

# see x509v3_config for other extensions

মন্তব্যে ইঙ্গিত হিসাবে, আপনি সম্ভবত বেশিরভাগ ডিএন ক্ষেত্র ছেড়ে যেতে পারেন। এইচটিটিপিএস ব্যবহারের জন্য, আমি মনে করি আপনার প্রয়োজন এমন একটি সিএন যা আপনার হোস্টনামের সাথে মেলে।


বিশিষ্ট নাম এবং অ্যাট্রিবিউট অনুচ্ছেদ বিন্যাস অধ্যায় এর req (1) দেখায় কিভাবে আপনি মানের জন্য প্রম্পট করতে উপরে কনফিগারেশন সংশোধন করুন (এবং ডিফল্ট মান প্রদান) করতে পারে যদি একাধিক অনুরূপ সার্টিফিকেট / অনুরোধ উৎপন্ন করতে চেয়েছিলেন।

আপনার যদি অন্য শংসাপত্রের এক্সটেনশানগুলির প্রয়োজন হয় তবে এক্সটেনশন বিভাগগুলিতে আপনি অন্যান্য বিট নির্দিষ্ট করতে পারেন তার জন্য x509v3_config (5) পরীক্ষা করুন ।


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