এসএসএল শংসাপত্রটি অ-ইন্টারেক্টিভভাবে [বন্ধ] করুন


28

আমি নিঃশব্দে, ইন্টারেক্টিভভাবে নয়, একটি এসএসএল শংসাপত্র তৈরি করতে চাই। অর্থাত্, কোনও ডেটা জন্য অনুরোধ করা ছাড়া।

আমি শংসাপত্রটি তৈরি করার স্বাভাবিক উপায় হ'ল:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
    -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 

আমি নিম্নলিখিত চেষ্টা করেছিলাম:

openssl genrsa -out server.key 2048
touch openssl.cnf

cat >> openssl.cnf <<EOF
[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = GB
ST = Test State
L = Test Locality
O = Org Name
OU = Org Unit Name
CN = Common Name
emailAddress = test@email.com
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 

তবে আমি তথ্যের জন্য একটি প্রম্পট পাই।


1
আপনি কি পছন্দসই ফলাফলের পরিবর্তে ঘটছে তার ব্যাখ্যা বা আউটপুট সরবরাহ করতে পারেন?
প্যাট্রিক

আমি আউটপুট হিসাবে সহায়তা পেয়েছি- প্যারামিটারগুলির সাথে এখানে কিছু ভুল আছে:openssl req -x509 -config openssl.cnf -nodes -days 7300 -signkey server.key -out /etc/ssl/private/pure-ftpd.pem
TheNiceGuy

যখন আপনার সমস্যা হয় তখন ত্রুটির আউটপুট সরবরাহ করা ভাল। আমি আপনার সমস্যাটি অনুমান করছি কারণ এটি -signkey। এটি openssl reqআমার সিস্টেমে কোনও বৈধ বিকল্প নয় । ত্রুটি বার্তায় এটি প্রথম লাইনের মতো থাকবে:unknown option -signkey
প্যাট্রিক

ঠিক আছে যে সাইনকিটি এসএসএলকে প্রদত্ত কীটি আমার জানা হিসাবে ব্যবহার করতে বলবে?
TheNiceGuy

আপনার "শংসাপত্র তৈরির স্বাভাবিক উপায়" কোনও ডেটার জন্য অনুরোধ করে না। আপনি কি আউটপুট কিছু করতে চান না? তারপরে ব্যবহার করুন 2> /dev/null
উইজেডসবারমারিনার

উত্তর:


51

আপনি যে জিনিসটি মিস করছেন তা হ'ল -subjপতাকাটিতে শংসাপত্রের বিষয় অন্তর্ভুক্ত করা । আমি এটি একটি কনফিগার ফাইল তৈরি করতে পছন্দ করি কারণ একটি ওয়ার্কফ্লোতে সংহত করা সহজ এবং পরে পরিষ্কার করার প্রয়োজন হয় না।

এক ধাপ কী এবং সিএসআর জেনারেশন:

openssl req -new -newkey rsa:4096 -nodes \
    -keyout www.example.com.key -out www.example.com.csr \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"

এক ধাপ স্ব স্বাক্ষরযুক্ত পাসওয়ার্ডবিহীন শংসাপত্র উত্পাদন:

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key  -out www.example.com.cert

এই আদেশগুলির কোনওটিই কোনও ডেটার জন্য অনুরোধ করবে না।

সুপার ব্যবহারকারী সম্পর্কে এই প্রায় অনুরূপ প্রশ্নের আমার উত্তর দেখুন ।


ওহ, এটি একটি দুর্দান্ত সমাধান। কোডগুলি আরও ছোট করে তোলে। ধন্যবাদ: ডি
TheNiceGuy

1
আমি তার আসল কনফিগারেশন ফাইলটি সংশোধন করিনি, কারণ আমি ভেবেছিলাম এটি আরও জটিল শংসাপত্রের স্ট্যান্ডিন হতে পারে। কিছু কনফিগারেশন যা -subjপ্যারামিটারের সাথে প্রতিনিধিত্ব করা যায় না , বিশেষত যখন আপনি ভি 3 এক্সটেনশান এবং সাবজেক্টআল্টনেম প্যারামিটারে প্রবেশ করেন।
robbat2

1
আপনি ব্যবহার করতে পারেন -batch(অ-ইন্টারেক্টিভ মোড)
ইরান এইচ।

নোট করুন যে প্রথম কমান্ডটি চালিত হওয়ার আগে এটি চালিত হওয়ার আগে কী ব্যবহার করা প্রয়োজন বলে মনে হয় যেখানে দ্বিতীয় কমান্ড সেগুলি কী তৈরি করে এবং স্বয়ংক্রিয়ভাবে শংসাপত্র তৈরি করে কারণ এটি -subjএকটি মৌলিক বৈধ ইন-লাইন সিএসআর।
ড্রাগন 788

@ ড্রাগন 788 এটি নির্দেশ করার জন্য ধন্যবাদ। আমি এটা ঠিক করেছি.
বাহামাত

1

আপনি যে আদেশটি সন্ধান করছেন তা হ'ল:

openssl req -new -x509 -config openssl.cnf -nodes -days 7300 -key server.key -out /etc/ssl/private/pure-ftpd.pem

আপনার সংস্করণ থেকে পরিবর্তনগুলি:

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