Https ওয়েব সার্ভারের জন্য .pem ফাইলগুলি কীভাবে তৈরি করবেন


90

ওয়েব সার্ভার তৈরি করতে আমি নোড.জেজে এক্সপ্রেস কাঠামোটি ব্যবহার করছি। আমি চাই পরিবহনটি এসএসএল ভিত্তিক।

Https ওয়েব সার্ভার তৈরি করার কোডটি নীচের মতো।

var app = express.createServer({
  key: fs.readFileSync('./conf/key.pem'),
  cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;

প্রশ্ন: এক্সপ্রেসের দ্বারা প্রয়োজনীয় কী.পেম এবং সারটি.পিএম কীভাবে তৈরি করবেন?

উত্তর:


201

আপনার দুটি ফাইল দরকার যা একটি পিইএম এনকোডড এসএসএল শংসাপত্র এবং ব্যক্তিগত কী। পিইএম এনকোডেড শংসাপত্র এবং কীগুলি বেস / -----BEGIN RSA PRIVATE KEY-----অনুরূপ দেখতে অনুরূপ দেখতে শুরু / শেষ ডিলিমিটারগুলির সাথে বেস 64 এনকোডযুক্ত পাঠ্য ।

একটি এসএসএল শংসাপত্র তৈরি করতে আপনার প্রথমে একটি ব্যক্তিগত কী এবং একটি শংসাপত্র স্বাক্ষর করার অনুরোধ, বা সিএসআর (এতে আপনার সার্বজনীন কী রয়েছে) উত্পন্ন করতে হবে You আপনি বিভিন্ন উপায়ে এটি করতে পারেন তবে ওপেনএসএসএল এখানে কীভাবে রয়েছে তা এখানে।

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem

এটি আপনাকে একটি 2048-বিট আরএসএ প্রাইভেট কী এবং একটি সিএসআর তৈরি করার জন্য একটি ইন্টারেক্টিভ প্রম্পট প্রবেশ করিয়ে দেবে যা প্রম্পটে আপনার প্রবেশের জন্য বেছে নেওয়া সমস্ত তথ্য রয়েছে। ( দ্রষ্টব্য: আপনার নাম অ্যাক্সেস করতে আপনি যে ডোমেন নামটি ব্যবহার করবেন সেটিই সাধারণ নামটি রয়েছে )) এটি করা হয়ে গেলে আপনি সাধারণত এই সিএসআরটিকে একটি বিশ্বস্ত শংসাপত্র কর্তৃপক্ষের কাছে জমা দেবেন এবং একবার তারা বৈধ হয়ে গেলে would আপনার অনুরোধ আপনি একটি শংসাপত্র পাবেন।

আপনি যদি নিজের শংসাপত্রটি বিশ্বস্ত হওয়ার বিষয়ে চিন্তা না করেন (সাধারণত উন্নয়নের উদ্দেশ্যে ক্ষেত্রে) তবে আপনি কেবল স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে পারেন। এটি করার জন্য, আমরা প্রায় একই লাইনটি ব্যবহার করতে পারি তবে আমরা দুটি অতিরিক্ত পরামিতি পাস করব।

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

এটি আপনাকে একটি শংসাপত্র (10 বছরের জন্য বৈধ) এবং কী জুটি দেবে যা আপনি পোস্ট করা কোড স্নিপেটে ব্যবহার করতে পারেন।


4
ক্লায়েন্ট শংসাপত্র এবং কী সম্পর্কে কি?
nkint

4
এই পোস্টটি সম্পূর্ণ হয়েছে, কীগুলি + সার্ট জিততে তিনি যে দুটি কমান্ড আটকিয়েছিলেন তা দু'টিই চালান। ক্লায়েন্ট বিশ্বাস স্থাপন করে না, কেবল সার্ভার।
নিনজাক্সর

@ পল আপনি দয়া করে আমাকে বলতে পারেন এই .পিএম কী এবং শংসাপত্রটি কোথায় তৈরি করা হয়েছে? মানে কোন ডিরেক্টরি? আমি উবুন্টু 14
স্টর্মট্রোপার

4
তারা আপনার শেলের বর্তমান কার্যকারী ডিরেক্টরিতে লিখবে।
পল কেহের

4
মনে রাখবেন যে স্ব-স্বাক্ষরিত শংসাপত্রটি এইভাবে উত্পন্ন হয়েছে সংস্করণ 1, সিএন রয়েছে, তবে কোনও এসএন নেই। "৫৮ সংস্করণ থেকে ক্রোমের কাছে জনপ্রিয় প্রচলিত নাম (সিএন) এর পরিবর্তে এসএন (সাবজেক্ট বিকল্প নাম) ব্যবহারের জন্য এসএসএল শংসাপত্রের প্রয়োজন, সুতরাং সিএন সমর্থন সরানো হয়েছে" " ([যখন স্ব স্বাক্ষরিত সার্টিফিকেট ব্যবহার করে Chrome 58+ [OpenSSL সঙ্গে missing_subjectAltName] স্থির] alexanderzeitler.com/articles/... )
Zhiyong

11

কেবল এই পদ্ধতিটি অনুসরণ করুন:

  1. আপনি নিজের কী ও শংসাপত্রটি যেখানে সংরক্ষণ করতে চান সেখানে ফোল্ডারটি তৈরি করুন:

    mkdir conf


  1. যে ডিরেক্টরিতে যান:

    cd conf


  1. ca.cnfএকটি কনফিগারেশন শর্টকাট হিসাবে ব্যবহার করতে এই ফাইলটি ধরুন:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf


  1. এই কনফিগারেশনটি ব্যবহার করে একটি নতুন শংসাপত্র কর্তৃপক্ষ তৈরি করুন:

    openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem


  1. এখন আমাদের সার্টিফিকেট কর্তৃপক্ষ রয়েছে ca-key.pemএবং তাই ca-cert.pem, সার্ভারের জন্য একটি প্রাইভেট কী তৈরি করা যাক:

    openssl genrsa -out key.pem 4096


  1. server.cnfএকটি কনফিগারেশন শর্টকাট হিসাবে ব্যবহার করতে এই ফাইলটি ধরুন:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf


  1. এই কনফিগারেশনটি ব্যবহার করে শংসাপত্র স্বাক্ষরের অনুরোধ উত্পন্ন করুন:

    openssl req -new -config server.cnf -key key.pem -out csr.pem


  1. অনুরোধ স্বাক্ষর করুন:

    openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem

এই শংসাপত্রগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের সাথে আমি এই পদ্ধতিটি এখানে পেয়েছি ।

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