কীগুলির জন্য পাসওয়ার্ড প্রম্পট এবং ডিএন তথ্যের অনুরোধগুলি এড়িয়ে চলুন


90

আমি কী তৈরি করতে নিম্নলিখিত কোডগুলি ব্যবহার করছি:

apt-get -qq -y install openssl;
mkdir -p /etc/apache2/ssl;
openssl genrsa -des3 -out server.key 1024;
openssl req -new -key server.key -out server.csr;
cp server.key server.key.org;
openssl rsa -in server.key.org -out server.key;
openssl x509 -req -days 12000 -in server.csr -signkey server.key -out server.crt;
mv server.crt  /etc/apache2/ssl/cert.pem;
mv server.key  /etc/apache2/ssl/cert.key;
rm -f server.key.orig;
rm -f server.csr

আমার দুটি প্রশ্ন আছে:

  1. আমি কীভাবে পাসফ্রেজ প্রম্পটিং এড়িয়ে যেতে পারি? আমার পক্ষে এটি করা কি যুক্তিসঙ্গতভাবে নিরাপদ হবে? (এটি যাতে নিখুঁত বোকা হওয়া উচিত নয় যেহেতু কেউ শংসাপত্র হ্যাক করতে সক্ষম হবে)

  2. আমি কীভাবে দেশের নাম, সংগঠন ইত্যাদির অনুরোধগুলি এড়াতে পারি আশা করি আমি কমান্ড প্রম্পটে তাদের দিতে পারবো (ম্যান পেজ ওপেনএসএসএল-এর জন্য কেবল শীর্ষ স্তরের বিকল্পগুলি দেখায়)

উত্তর:


150

সম্পাদনা: এটি এখন পর্যন্ত আমার সবচেয়ে জনপ্রিয় উত্তর, এবং এখন কয়েক বছর হয়ে গেছে তাই আমি একটি ইসিডিএসএ বৈকল্পিক যুক্ত করেছি। আপনি যদি ইসিডিএসএ ব্যবহার করতে পারেন তবে আপনার উচিত।


আপনি কমান্ড লাইনে সেই সমস্ত তথ্য সরবরাহ করতে পারেন।

এক পদক্ষেপ স্ব স্বাক্ষরিত পাসওয়ার্ড-কম শংসাপত্র উত্পন্ন:

আরএসএ সংস্করণ

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

ইসিডিএসএ সংস্করণ

openssl req \
    -new \
    -newkey ec \
    -pkeyopt ec_paramgen_curve:prime256v1 \
    -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

সমস্ত ওপেনসেল সাবকম্যান্ডের নিজস্ব ম্যান পৃষ্ঠা রয়েছে। দেখুন man req


বিশেষত আপনার প্রশ্নগুলিতে সম্বোধন করা এবং কোন কোন বিকল্পগুলি কার্যকর তা সম্পর্কে আরও স্পষ্ট করে বলার জন্য:

  1. -nodesপতাকা সংকেত কী এনক্রিপ্ট না, এইভাবে আপনাকে একটি পাসওয়ার্ড প্রয়োজন হবে না। আপনি -passout argপতাকা ব্যবহার করতে পারে । দেখুন PASS PHRASE ARGUMENTSopenssl(1)কিভাবে ARG ফরম্যাট করতে জন্য man পৃষ্ঠা।

  2. -subjপতাকা ব্যবহার করে আপনি বিষয়টি নির্দিষ্ট করতে পারবেন (উদাহরণ উপরে)।


3
"-সুবজ" এর মাধ্যমে স্টাফগুলি পড়া দুর্দান্ত কাজ করে - তবে আমার জন্য - কেবল তখনই যখন ওপেনএসএল_সিএনএফ সেট করা থাকে না। আইওউ: ওপেনএসএসএল_সিএনএফ সেট করা থাকলে ওপেনএসএসএল সেখান থেকে পড়ার চেষ্টা করবে এবং "-সূজব" কমান্ড লাইনের যুক্তি উপেক্ষা করবে । আমাকে কিছুক্ষণ সময় বের করতে লাগল।
oberstet

oberstet: হ্যাঁ, এটা সত্য।
বাহামাত

স্ট্যান্ডিন থেকে বিষয় কী নিজেই পাস করা সম্ভব ? আমি "-কি স্ট্ডিন", "-কি এফডি: 1" এবং "-কি -" .. চেষ্টা করেছি কোন ভাগ্য ছাড়াই।
obestet

1
@ জেরেমিবেকার: না, এর জন্য আপনার দুটি পদক্ষেপ প্রক্রিয়া দরকার। অনুমতি দিন -x509এবং -daysশংসাপত্রের পরিবর্তে সিএসআর তৈরি করতে আপনার সাধারণ সিএ স্বাক্ষর পদ্ধতিটি ব্যবহার করুন।
বাহামাত

1
@jww - এবং সময় এসে গেছে। কোনও সুরক্ষিত পৃষ্ঠা লোড করার চেষ্টা করার সময় ক্রোম ভি 8৮ দিয়ে শুরু করা হলেও শংসাপত্রটিতে কোনও মিলের বিষয় অল্টনেম থাকে না, এটি ত্রুটি বার্তা "নেট :: ERR_CERT_COMMON_NAME.gVALID" সহ একটি গোপনীয়তা ত্রুটি পৃষ্ঠা দেখায়। উন্নত বোতামে ক্লিক করা বার্তাটি দেখায় "... এর সুরক্ষা শংসাপত্রটি [অনুপস্থিত_সুবিজেটসাল্টনাম]" থেকে এসেছে
সফটওয়্যার

11

না -passinবিকল্প তোমার জন্য কৌতুক করতে?

সঙ্গে file:pathnameফর্মটি আপনি যে ফাইল জন্য অনুমতি 600 সঙ্গে বেশ নিরাপদ হতে পারে না।


ম্যান পেজে অপশনটি দেখেছি। দেখে মনে হচ্ছে প্রম্পট না করে আমার পাসফ্রেজটি সেভাবে থাকতে পারে। ধন্যবাদ!

আর সাথে -passin 'pass:YOUR_PASSWORD'? - ডক: openssl.org/docs/man1.0.2/apps/...
andras.tim

5

গৃহীত উত্তরের কয়েকটি ছোট সংশোধন দরকার needs ইসি লাইনস:

-newkey ec
-pkeyopt ec_paramgen_curve:prime256v1

হতে হবে:

 -newkey ec \
 -pkeyopt ec_paramgen_curve:prime256v1 \

ম্যাকোজে - ওপেনএসএসএল 1.0.2f ব্রিউয়ের মাধ্যমে ইনস্টল করেছি নীচে বর্ণিত হিসাবে গ্রহণযোগ্য উত্তরটি যাচাই করেছি

  • উপলব্ধ উপবৃত্তাকার বক্ররেখা তালিকা করতে:

    $ openssl ecparam -list_curves
    
  • একটি মূল ফাইল তৈরি করতে:

    $ openssl ecparam -name secp256k1 -out secp256k1.pem
    
  • পাসওয়ার্ড প্রম্পট ছাড়াই শংসাপত্রটি তৈরি করতে:

    openssl req \
        -new \
        -newkey ec:secp256k1.pem \
        -days 365 \
        -nodes \
        -x509 \
        -subj "/C=US/ST=FL/L=Ocala/O=Home/CN=example.com" \
        -keyout server.key \
        -out server.crt
    
  • শংসাপত্রটি দেখতে:

    $ openssl x509 -noout -text -in server.crt
    

এটি কীভাবে গৃহীত উত্তর থেকে আলাদা?
রামহাউন্ড

1
একমাত্র গুরুত্বপূর্ণ পার্থক্যটি হ'ল আমি স্পষ্টভাবে পেম ফাইল তৈরির ধাপটি তালিকাভুক্ত করছি। গৃহীত উত্তরটি দুটি \ অক্ষর অনুপস্থিত এবং এটি আমাকে ভাবতে বাধ্য করেছে যে আদেশটি ভুল।
আন্দ্রে সূরা

1
আপনি সেই সত্যটি উল্লেখ করতে চাইতে পারেন। যদি স্বীকৃত উত্তরটি প্রকৃতপক্ষে অসম্পূর্ণ থাকে এবং অক্ষরগুলি অনুপস্থিত থাকে তবে পার্থক্যগুলি হাইলাইট করা গুরুত্বপূর্ণ এবং কীভাবে আপনার উত্তরটিতে গুরুত্বপূর্ণ উল্লেখযোগ্য তথ্য রয়েছে।
রামহাউন্ড

3

নিম্নলিখিত কমান্ড চেষ্টা করুন:

openssl genrsa -des3 -out user.key -passout pass:foo 1024

কুঁদন অংশ: -passout pass:foo


2

@ বাহামাটির দুর্দান্ত উত্তর রয়েছে। দুর্ভাগ্যক্রমে ওপেনসেলের কয়েকটি সংস্করণ একটি কমান্ড সহ ইসিডিএসএ শংসাপত্র তৈরি করার চেষ্টা করার সময় ত্রুটি ফেলে throw ত্রুটিটি এরকম কিছু হয়:

routines:EVP_PKEY_CTX_ctrl:invalid operation:pmeth_lib.c:404

আমি ব্যবহার করছিলেন openssl 1.0.1e-fipsউপর CentOS 7

নিম্নলিখিত 3 টি কমান্ড দিয়ে আপনার শংসাপত্র তৈরি করা কার্যকর বলে মনে হচ্ছে:

openssl ecparam -genkey -name prime256v1 -out key.pem
openssl req -new -key key.pem -out csr.pem -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"
openssl req -x509 -days 365 -key key.pem -in csr.pem -out certificate.pem

শেষ লাইনের সাথে শেষ হওয়া উচিত নয় server.crt?
ᴠɪɴᴄᴇɴᴛ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.