ওপেনএসএসএল: খালি সাবজেক্ট ডিএন দিয়ে একটি শংসাপত্র কীভাবে তৈরি করবেন?


14

পিসিসিএস # 10 শংসাপত্রের অনুরোধ / X.509 শংসাপত্রটি কেবলমাত্র বিষয়ের বিকল্প নাম বৈশিষ্ট্য / এক্সটেনশনে সনাক্তকরণের তথ্য দিয়ে তৈরি করা সম্ভব? X.509 4.1.2.6 বিষয় অনুসারে , বিষয়টি এমন একটি শংসাপত্রের জন্য খালি থাকতে পারে যার সাবজেক্টটি অ্যালটনেম সমালোচনামূলক না হওয়া পর্যন্ত সিএ নয়।

তবে যখন আমি এই কনফিগার ফাইলটি খালি আলাদা আলাদা নাম_ বিভাগে ব্যবহার করি:

# request.config
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[ req_distinguished_name ]

[ v3_req ]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=critical,email:certtest@example.com

এবং আদেশ

openssl genrsa 1024 > key.pem
openssl req -new -key key.pem -out req.pem -config request.config

ওপেনএসএসএল অভিযোগ করেছে:

error, no objects specified in config file
problems making Certificate Request

উত্তর:


11

এটি আমার পক্ষে কাজ করেছে:

পরীক্ষা- no-cn.cnf ফাইল

[req] 
default_bits       = 4096
encrypt_key        = no
default_md         = sha256
distinguished_name = req_distinguished_name
req_extensions = v3_req

[ req_distinguished_name ]

[ v3_req ]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=critical,email:certtest@example.com,URI:http://example.com/,IP:192.168.7.1,dirName:dir_sect

[dir_sect]
C=DK
O=My Example Organization
OU=My Example Unit
CN=My Example Name

সিএসআর তৈরি করুন

openssl req -new -newkey rsa:4096 -nodes -config test-no-cn.cnf -subj "/" -outform pem -out test-no-cn.csr -keyout test-no-cn.key

সিএসআর স্বাক্ষর করুন

openssl x509 -req -days 365 -in test-no-cn.csr -signkey test-no-cn.key -out test-no-cn.crt -outform der -extensions v3_req -extfile test-no-cn.cnf

ফলাফল শংসাপত্র দেখুন

openssl x509 -inform der -in test-no-cn.crt -noout -text

8

আমি এই "কোনও অবজেক্টস নির্দিষ্ট করে নেই" ত্রুটিতেও ছুটে এসেছি। এটি বিভিন্ন ক্ষেত্রের জন্য এই জাতীয় অনুরোধ প্রদর্শন করছিল:

US []:

এবং আমি কেবল এন্টার টিপছিলাম কারণ আমি ইতিমধ্যে .cnf ফাইলে এই মানগুলি সেট করেছিলাম। দেখা যাচ্ছে যে আমার আবার সমস্ত মান টাইপ করতে হবে এবং তারপরে এটি কার্যকর হয়েছিল।


আমাকেও একই কাজ করতে হয়েছিল। কনফিগার ফাইলে মান রাখার পরেও এটি আমাকে আবার সমস্ত ডিএন উপাদানগুলির জন্য অনুরোধ জানায়। আমাকে সেগুলি পুনরাবৃত্তি করতে হয়েছিল, তবে এটি অন্তত কাজ করেছিল।
ন্যাট ডাব্লু।

3
এটি কারণ কনফিগারেশনের ফাইলটিতে আসলে ডিফল্ট মান থাকে না। C = USমানে সি এর জন্য "প্রম্পট" হ'ল "মার্কিন", ডিফল্ট মান নয়। পরিবর্তে, ফাইলটি থাকা উচিত C = Countryএবং C_default = US
jordanbtucker

5
ওহ, এবং শুধুমাত্র যদি prompt = yes [or blank]prompt = noতারপরে যদি C = US"মার্কিন" অর্থ হ'ল ডিফল্ট মান।
jordanbtucker

3

prompt = noমূল কনফিগারেশনে সমস্যাটি রয়েছে । এটি openssl reqধরে নিয়েছে যে আপনি কনফিগার ফাইলে সাবজেক্ট এন্ট্রি নির্দিষ্ট করতে চান এবং একটি প্রাথমিক চেককে রেকর্ডে হিট করেন ।

একটি কার্যকারিতা রয়েছে: সরান prompt = no, এবং পরিবর্তে -subj /আপনার openssl reqকমান্ড লাইনে যুক্ত করুন। এখানে সিএসআর এবং স্ব-স্বাক্ষরিত শংসাপত্র উভয়ই তৈরি করে এমন একটি উদাহরণ স্ক্রিপ্ট:

cat > openssl.cnf <<EOF
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[ req_distinguished_name ]

[ v3_req ]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=critical,email:certtest@example.com
EOF
openssl req -newkey rsa:2048 -config openssl.cnf -nodes -new -subj "/" \
  -out req.csr
openssl req -newkey rsa:2048 -config openssl.cnf -nodes -new -subj "/" \
  -x509 -out cert.crt

2

ওপেনসেল কনফিগারেশন ফাইলের নীতি বিভাগগুলিতে "সাধারণ নাম = alচ্ছিক" চেষ্টা করুন।


1

দেখে মনে হচ্ছে আপনি আপনার কীবোর্ড থেকে "" বিশিষ্ট_নাম "গোষ্ঠী থেকে কোনও একক মান প্রবেশ করিয়েছেন এবং এটি দুর্দান্ত কাজ করে ... আমি আপনাকে অন্য মানগুলি প্রবেশ করার প্রয়োজন নেই এবং তাদের ডিফল্ট (ওপেনএসএলসিএনএফ ফাইলটিতে উল্লিখিত হিসাবে) ব্যবহার করতে পারি যা বলেছে

[ req ]
...
distinguished_name = req_distinguished_name
prompt = no
...

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