ওপেনএসএসএল: ইন্টারেক্টিভভাবে অনুরোধ করা সাবজেক্ট বিকল্প নাম (এসএএনএস) এর সাথে সিএসআর কীভাবে তৈরি করা যায়?


11

আমি ওপেনএসএসএলটি কনফিগার করতে চাই যে যখন openssl req -newএকটি নতুন শংসাপত্র স্বাক্ষর করার অনুরোধ উত্পন্ন করার জন্য চলছে তখন আমাকে সিএসআর-তে কোনও বিকল্প বিষয়ের নাম অন্তর্ভুক্ত করার অনুরোধ জানানো হবে।

আমি এই [req_attributes]বিভাগটি আমার বিভাগে যুক্ত করেছি openssl.cnf:

subjectAltName                  = Alternative subject names

এটির সিঙ্কআর তৈরি করার সময় আমি সানদের জন্য অনুরোধ করা হ'ল এটির কাঙ্ক্ষিত প্রভাব রয়েছে:

$ openssl req -new -out test.csr -key ./test.key                            <<<
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]:
State or Province Name (full name) [New York]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Example Co]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:test.example.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Alternative subject names []:DNS:alt1.example.com

উপরের উদাহরণে DNS:alt1.example.comস্যানদের জন্য অনুরোধ জানালে আমি প্রবেশ করেছি ।

সমস্যাটি হ'ল ফলস্বরূপ সিএসআর ভাল ফর্ম্যাটেড বলে মনে হচ্ছে না:

$ openssl req -text -in ./test.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=US, ST=New York, O=The Banes, CN=test.thebanes.org
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    [...]
                Exponent: 65537 (0x10001)
        Attributes:
            X509v3 Subject Alternative Name:unable to print attribute

ওপেনএসএসএল অভিযোগ করে যে এটি সাবজেক্ট বিকল্প বিকল্প বৈশিষ্ট্যের মান মুদ্রণ করতে অক্ষম। অনলাইনের উদাহরণ থেকে (যেখানে লোকেরা SANs কে তাদের ওপেনসএসএল.এনএফ-তে হার্ড-কোড করেছে, তাদের যেমন আমি চাই তেমন ইন্টারেক্টিভভাবে অনুরোধ করার চেয়ে), পরিবর্তে এটি দেখার আশা করছি:

        Attributes:
            X509v3 Subject Alternative Name:
                DNS:alt1.example.com

সুতরাং, আমি কীভাবে ইন্টারেক্টিভভাবে প্রম্পট করা স্যানগুলির সাথে একটি সুগঠিত সিএসআর তৈরি করতে পারি?


দুর্ভাগ্যক্রমে আমি মনে করি "খাঁটি" দিয়ে এর কোনও সমাধান করার দরকার নেই openssl- আপনার এমন একটি স্ক্রিপ্টের প্রয়োজন হবে যা এর জন্য এটির কনফিগারেশন ফাইলটি ম্যাঙ্গেল করবে। :( দ্রষ্টব্য একটি প্রমাণিত করতে একটি নন-ইন্টারেক্টিভ পদ্ধতিতে সমাধান এখানে: stackoverflow.com/a/9158662/2693875
গ্রেগ Dubicki

উত্তর:


4

আমি এই ছোট্ট নাগেটের সাথে নিজেকে লড়াই করেছি ... কি পিটা!

আমার সমাধান: আমি ওপেনএসএল.সিএনএফ ফাইলটি সমস্ত একটি টেম্পলেট টুলকিট ফাইলে সরিয়ে নিয়েছি কেবল সানস টুকরোটি প্রতিস্থাপনের টুকরো হিসাবে রেখে, তার চারপাশে পার্ল স্ক্রিপ্টটি জড়িয়ে রেখেছি।

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

আপনি এগুলি দেখতেও চাইতে পারেন: http://www.openssl.org/docs/apps/config.html

আবার অনেকে আছেন যারা কার্যকর করার পূর্বে $ ENV কে ওভাররাইড করে এবং পার্ল বা শেলের মধ্যে ওপেনসেল রেকের কলটি গুটিয়ে রাখেন এবং একই জিনিসটি আরও কার্যকরভাবে সম্পন্ন করেন: http://blog.loftninjas.org/2008/11/11/ কনফিগার করার-SSL-রিকোয়েস্টের-সঙ্গে-subjectaltname-সঙ্গে-OpenSSL /


$ ENV সমাধানটি আমার পক্ষে কার্যকর হয়নি। :(
গ্রেগ দুবিকি

2

আমিও এর সমাধান খুঁজছি। এবং এটি, আপনি যা চান:

[req]
default_bits      = 2048
default_key_file  = private.key.pem
...
...
attributes        = req_attributes

[req_attributes]
subjectAltName = Alternative DNS names, Email adresses or IPs (comma seperated list)
#optional default value
subjectAltName_default = DNS:myhost.com.au,IP:127.0.0.1,EMAIL:my@here.org

এবং আপনি বিকল্প বিষয়ের নাম (গুলি) এর জন্য প্রম্পট দ্বারা এটি পেতে পারেন :)

#openssl req -in mytest1/temp.csr.pem -noout -text
    Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=DE, ST=Sachsen, L=Heidenau, O=IT Rab\xC3\xB6se, OU=ssl
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:d8:cd:14:ca:d0:06:6c:8c:11:e9:52:bc:46:39:
                    c1:cf:5a:6e:dd:3b:a8:85:15:6b:13:82:82:4a:48:
                    cb:53:ea:70:ea:f4:02:b2:ef:b1:41:b2:d7:11:c7:
                    11:ba:07:1b:be:8c:30:bc:60:d2:82:83:a1:e1:19:
                    75:3b:69:03:01:3c:2b:7b:85:f4:2e:a9:58:68:8f:
                    0e:f4:5e:50:e1:3f:9e:cf:46:a0:eb:69:aa:1e:cb:
                    3a:99:cb:1d:93:60:d0:3b:38:96:87:45:19:51:f4:
                    40:72:e5:a7:5e:62:37:41:44:48:64:47:95:14:97:
                    4f:27:d0:0c:e7:6f:c1:e1:37
                Exponent: 65537 (0x10001)
        Attributes:
            X509v3 Subject Alternative Name:DNS:www.google.de,EMAIL:im@you.org
    Signature Algorithm: sha1WithRSAEncryption
        9d:2b:e4:eb:1b:c0:b6:0b:b4:62:a7:4d:01:68:98:68:36:98:
        1e:e9:bc:59:24:0f:1b:32:7b:da:9d:39:a4:0f:2c:70:3e:aa:
        f7:07:e7:6b:9b:3b:00:b3:71:e0:54:07:78:c7:6e:57:e3:89:
        07:e1:93:f1:77:e7:cc:0e:d0:ed:c5:d0:a3:5d:1a:cd:bb:d8:
        5f:64:25:81:1b:a8:2f:ef:c7:84:7a:f6:b8:52:4e:4c:1c:8d:
        83:b7:9b:02:8e:b2:39:68:a1:fe:f1:59:8b:e0:c4:91:f1:a9:
        c7:b3:82:a3:d2:92:2b:e5:79:9f:29:b6:63:e7:cf:9d:17:98:
        fe:70

সিএসআর দেখার সময় এটি কাজ করে, কিন্তু যখন আমি একটি শংসাপত্র তৈরি করি তখন এটি SAN রাখে না।
জেস 18 ই

সান জন্য ফর্ম্যাট সঠিক? কমা বিচ্ছিন্ন তালিকা। কেবল সান-উপসর্গ ডিএনএস-এর সাথে পরীক্ষা করুন, যদি সমর্থন করে না আইপি, EMAIL। উদাহরণ: ইনপুট >>DNS:my.dns.com, DNS:my.otherdns.org
রায়সার

ঠিক আছে. এটি openssl ডাব্লুটিএফ এর স্বাভাবিক কাজ ! আপনাকে অবশ্যই CAএসএএন-কে-কম্যান্ডে -extensions <string>, বা হিসাবে সরবরাহ করতে হবে -extfile <file>mta.openssl.org/pipermail/openssl-users/2016-
রায়সারলে

1

এই "সাবজেক্টআল্টনেম" এই বিভাগে থাকা উচিত নয়: বৈশিষ্ট্য = req_attributes। তবে রেেক_ এক্সটেনশানগুলির জন্য একটি বিভাগে = (আপনি যা খুশি তাই কল করুন)।

আর সব বিএসের মতো দরকার নেই

subjectAltName           = Alternative subject names
subjectAltName_default   = DNS:www.g00gle.com

আপনি যা চান তা কেবল টাইপ করুন, আপনি কতগুলি চান:

subjectAltName = DNS:*.g00gle.com, DNS:g00gle.com, DNS:192.168.1.2

(শেষটি কোনও সতর্কতা ছাড়াই " https://192.168.1.2 " এর মতো অভ্যন্তরীণ অ্যাক্সেস করে)

সুতরাং যেমন কিছু:

[ req ]
req_extensions     = my_extensions

[my_extensions]
subjectAltName     = DNS:*.g00gle.com, DNS:g00gle.com, DNS:192.168.1.2

চিয়ার্স!


1
এটি ওপি যা চেয়েছিল তা নয় - তিনি একটি ইন্টারেক্টিভ সমাধান চাইছিলেন ।
গ্রেগ দুবিকি

1
আইপিগুলি "আইপি: 192.168.1.2" ব্যবহার করে রেকর্ড করা উচিত নয়, ডিএনএস-ফর্ম্যাট রেকর্ড নয়? - আমি ব্রাউজারের বাগ যখন DNS- র অথবা IP যেমন SANs IP ঠিকানা সঞ্চয় করতে ব্যবহার সম্পর্কে 2013 থেকে এই আলোচনা লক্ষনীয় michaelm.info/blog/?p=1281 - কিন্তু এই বাগ এখন দ্বারা nixed দিতে হবে।
ক্রিস উডস 11
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.