লোকালহোস্টের জন্য একটি বিশ্বস্ত স্ব-স্বাক্ষরিত এসএসএল শংসাপত্র তৈরি করুন (এক্সপ্রেস / নোডের সাথে ব্যবহারের জন্য)


130

লোকালহোস্টের সাথে ব্যবহারের জন্য স্ব-স্বাক্ষরিত শংসাপত্র তৈরির বিষয়ে বিভিন্ন নির্দেশনা অনুসরণ করার চেষ্টা করা হচ্ছে, বেশিরভাগ নির্দেশাবলী আইআইএসের মনে হয় তবে আমি নোডেজ / এক্সপ্রেস ব্যবহার করার চেষ্টা করছি। এগুলির কোনওটিই সঠিকভাবে কাজ করে না কারণ শংসাপত্রটি ইনস্টল হওয়ার পরে এটি বিশ্বাসযোগ্য নয়। এখানে আমি চেষ্টা করেছি যা ব্যর্থ হয়েছে:

কেউ কি কোনও ওয়ার্কফ্লো অফার করতে পারেন যা এটি করতে পারে? আমি একটি শংসাপত্র ইনস্টল করতে পারি , তবে ক্রোম (ভি 32) বা আইই (ভি 10) এর মধ্যে বিশ্বাসযোগ্য হতে আমি সার্টিফিকেটটি পেতে পারি না।

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


স্ব স্বাক্ষরিত শংসাপত্রগুলির কোনওটিকেই ওয়েব ব্রাউজারগুলির জন্য বিশ্বস্ত করা যায় না। তারা বিশ্বস্ত স্বাক্ষরকারী কর্তৃপক্ষের দ্বারা স্বাক্ষরিত নয়।

1
এটি সত্য নয়: আপনি নিজের স্বাক্ষরিত শংসাপত্রকে বিশ্বাসযোগ্য করতে একটি মূল শংসাপত্র ইনস্টল করতে পারেন। তবে আমি এটি সঠিকভাবে করতে পারে বলে মনে হয় না। আমি পড়েছি আপনি আইই (ক্রোমে নয়) এ সার্টিফিকেট চেইন ইনস্টল করতে পারেন, তাই আমি চেষ্টা করেছিলাম তবে এটি এখনও স্বীকৃত হয়নি। আমি জানি না কারণ এটি লোকালহোস্ট বিশেষ বা স্ব-স্বাক্ষরিত সার্টিটি ঠিক সঠিক নয় কিনা।
জেসনস

3
আমি কখনও ক্রোমের মতো ব্রাউজারগুলির সাথে কাজ করে স্ব-স্বাক্ষরিত সার্টিফিকেট পাইনি। এখানে আমার কার্যনির্বাহী: আমি লোকাল জন্য একটি ডিএনএস এন্ট্রি তৈরি করেছি M MYDOMAIN.com 127.0.0.1 (লোকালহোস্ট) এর দিকে নির্দেশ করে এবং তারপরে কেবল আমার প্রোডাকশন শংসাপত্রটি ব্যবহার করুন। আপনার প্রযোজনার
শংসাপত্র

উত্তর:


86

উপরের উত্তরগুলি আংশিক ছিল। আমি এই কাজ পেতে অনেক সময় ব্যয় করেছি, এটি উন্মাদ। আমার ভবিষ্যতের স্বরে নোট করুন, আপনার যা করা দরকার তা এখানে:

আমি ক্রোম 65 এর সাথে উইন্ডোজ 10-এ কাজ করছি Firef ফায়ারফক্স ভাল আচরণ করছে - কেবলমাত্র স্থানীয় হোস্টকে সুরক্ষা ব্যতিক্রম হিসাবে নিশ্চিত করুন এবং এটি কার্যকর হবে। ক্রোম তা করে না:

পদক্ষেপ 1. আপনার ব্যাকএন্ডে, বলা একটি ফোল্ডার তৈরি করুন security। আমরা এটি ভিতরে কাজ করবে।

পদক্ষেপ 2.req.cnf নিম্নলিখিত বিষয়বস্তু সহ একটি অনুরোধ কনফিগারেশন ফাইল তৈরি করুন (ক্রেডিট যায়: @ আনশুল )

req.cnf:

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = Country initials like US, RO, GE
ST = State
L = Location
O = Organization Name
OU = Organizational Unit 
CN = www.localhost.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.localhost.com
DNS.2 = localhost.com
DNS.3 = localhost

এই ক্ষেত্রগুলির একটি ব্যাখ্যা এখানে

পদক্ষেপ 3. টার্মিনালের সুরক্ষা ফোল্ডারে নেভিগেট করুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256

পদক্ষেপ ৪. তারপরে securityফোল্ডারের বাইরে আপনার এক্সপ্রেস অ্যাপ্লিকেশনটিতে এরকম কিছু করুন: (ক্রেডিট @ ডিয়েগো মেলোর কাছে যায়)

backend 
 /security
 /server.js

server.js:

const express = require('express')
const app = express()
const https = require('https')
const fs = require('fs')
const port = 3000

app.get('/', (req, res) => {
    res.send("IT'S WORKING!")
})

const httpsOptions = {
    key: fs.readFileSync('./security/cert.key'),
    cert: fs.readFileSync('./security/cert.pem')
}
const server = https.createServer(httpsOptions, app)
    .listen(port, () => {
        console.log('server running at ' + port)
    })

পদক্ষেপ 5. সার্ভারটি শুরু করুন node server.js, এবং https: // লোকালহোস্ট: 3000 এ যান

এই মুহুর্তে আমাদের সার্ভার সেটআপ আছে। তবে ব্রাউজারটি একটি সতর্কতা বার্তা প্রদর্শন করা উচিত।

ক্রোম / উইন্ডোজ শংসাপত্রের দোকানে সিএ বিশ্বস্ত শংসাপত্র কর্তৃপক্ষ হিসাবে আমাদের স্ব-স্বাক্ষরিত শংসাপত্রটি আমাদের নিবন্ধিত করতে হবে। (ক্রোম এটি উইন্ডোতেও সংরক্ষণ করে,)

পদক্ষেপ ch. ক্রোমে দেব সরঞ্জামগুলি খুলুন, সুরক্ষা প্যানেলে যান, তারপরে দেখুন শংসাপত্রের উপর ক্লিক করুন। এখানে চিত্র বর্ণনা লিখুন

পদক্ষেপ Details. বিশদ প্যানেলে যান, ফাইল অনুলিপি করুন ক্লিক করুন, তারপরে শংসাপত্র এক্সপোর্ট উইজার্ড প্রদর্শিত হবে, নীচের মত পরবর্তী ক্লিক করুন:

বিশদে যান - কপি ফাইল - এক্সপোর্ট উইজার্ডের পরবর্তী

পদক্ষেপ ৮. ডিইআর এনকোডিং ছেড়ে যান, তারপরে ক্লিক করুন, পছন্দ করুন Browse, এটিকে ডেস্কটপের মতো অ্যাক্সেসের ফোল্ডারে রাখুন এবং শংসাপত্রটির নাম দিনlocalhost.cer, then click Save and then Finish. । আপনি ডেস্কটপে আপনার শংসাপত্রটি দেখতে সক্ষম হবেন।

পদক্ষেপ 9.chrome://settings/ এটি ইউআরএল বাক্সে প্রবেশ করে খুলুন । নীচে নীচে, ক্লিক করুন Advanced / Advanced Options, তারপরে সন্ধান করতে নীচে স্ক্রোল করুন Manage Certificates

শংসাপত্র পরিচালনা নির্বাচন করুন

পদক্ষেপ 10. বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষ প্যানেলে যান, এবং আমদানি ক্লিক করুন।

বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষ প্যানেলে যান এবং আমদানি ক্লিক করুন

আমরা localhost.cerসবেমাত্র 8 ম রফতানি শেষ করে শংসাপত্র আমদানি করব ।

পদক্ষেপ ১১। ব্রাউজ ক্লিক করুন, সন্ধান করুন localhost.cer, ডিফল্ট মানগুলি ছেড়ে দিন কয়েকবার ক্লিক করুন - এই সতর্কতাটি উপস্থিত না হওয়া পর্যন্ত হ্যাঁ ক্লিক করুন।

সুরক্ষা ব্যতিক্রম নিশ্চিত করুন

পদক্ষেপ 12. সমস্ত কিছু বন্ধ করুন এবং ক্রোম পুনরায় চালু করুন। তারপরে, https://localhost:3000আপনার কাছে যাওয়ার সময় দেখতে হবে: সবুজ ভালবাসা


হাই, আমি যখন খুলি সমস্ত পদক্ষেপ শেষ করি https://localhost:3000এবং ক্রোম লোডিংয়ে আটকে যায়। যে কেউ বলতে পারে এর কারণ কী হতে পারে?
co.zohar

@ co.zohar কনসোলে কোনও বার্তা আছে? কনসোলটি খুলতে crl+shift+iবা টিপুন F12
আইয়ন

1
আপনি যদি কোনও নেটওয়ার্কে কোনও ঠিকানার জন্য এটি করছেন তবে আমি দেখতে পেয়েছি যে হোস্টনামে শংসাপত্র ডিএনএস স্থাপন করা যেমন:: DNS.1 = server.local সংযোগকারী মেশিনে হোস্টনামে সার্ভারের আইপি ঠিকানাটি নির্দেশ করতে HOSTS ফাইল আপডেট করুন: উদাহরণস্বরূপ: 192.168.0.50 server.localএটি হবে শংসাপত্র এবং ঠিকানাটির সাথে মেলে এবং শংসাপত্রটি বৈধতা দেয়।
রসকেল্ড

@ আইওন কনসোল কিছুই দেখায় না। পৃষ্ঠাটি কেবল দেখায়: "লোকালহোস্টের জন্য অপেক্ষা করা হচ্ছে ..."। আপনি হোস্ট ফাইলটিতে কিছু কনফিগার করেছেন?
co.zohar

1
আমি আমার নিজের প্রশ্নের একটি আধিকারিক উত্তর পেয়েছি: আপনি যদি সিএন এবং ডিএনএস ১ কে "লোকালকম" এর মতো কোনও কিছুতে এবং সার্ভারে অ্যাক্সেসের প্রয়োজন হয় এমন প্রতিটি কম্পিউটারে, স্থানীয় / নির্দেশক ফাইল / ফাইলগুলি পরিবর্তন করে থাকেন .com সার্ভারের আইপিতে, এটি কাজ করে।
38

111

সবচেয়ে ছোট উপায়। MacOS এ পরীক্ষিত, তবে অন্য OS এ একইভাবে কাজ করতে পারে।

পেম তৈরি করুন

> openssl req -x509 -newkey rsa:2048 -keyout keytmp.pem -out cert.pem -days 365

> openssl rsa -in keytmp.pem -out key.pem

আপনার এক্সপ্রেস সার্ভার

const express = require('express')
const app = express()
const https = require('https')
const fs = require('fs')
const port = 3000

app.get('/', (req, res) => {
  res.send('WORKING!')
})

const httpsOptions = {
  key: fs.readFileSync('./key.pem'),
  cert: fs.readFileSync('./cert.pem')
}
const server = https.createServer(httpsOptions, app).listen(port, () => {
  console.log('server running at ' + port)
})
  • https://localhost:3000গুগল ক্রোমে খুলুন এবং আপনি দেখতে পাবেন যে এটি নিরাপদ নয়। এখনো!
  • বিকাশকারী সরঞ্জামগুলিতে> সুরক্ষা> শংসাপত্র দেখুন: আপনার ডেস্কটপে চিত্রটি টানুন এবং এটিতে ডাবল ক্লিক করুন।
  • 'যোগ' ক্লিক করুন
  • কীচেইন অ্যাক্সেসে এটি সন্ধান করুন এবং এটিতে ডাবল ক্লিক করুন
  • 'বিশ্বাস' প্রসারিত করুন এবং 'এই শংসাপত্রটি ব্যবহার করার সময়' সর্বদা বিশ্বাস 'তে পরিবর্তন করুন।
  • আপনাকে প্রমাণীকরণের জন্য অনুরোধ করা যেতে পারে।
  • আপনার সার্ভার পুনরায় চালু করুন।
  • আপনার ব্রাউজার রিফ্রেশ
  • উপভোগ করুন! :)

1
আপনি যদি ম্যাকটিতে এটি করতে চান তবে এখানে অন্য লিঙ্কটি রয়েছে: certsimple.com/blog/localhost-ssl-fix
জন

সুন্দর! এই কাজ! আমি যুক্ত করতে চাই: এখান থেকে ওপেনএসএসএল ইনস্টল করুন: indy.fulgan.com/SSL/?C=M ; O=A । এখান থেকে .cnf ফাইল পান: এবং তারপর, এখান থেকে এটি কনফিগার করুন: gist.githubusercontent.com/pandurang90/dbe6a67339747ef5bacf/raw/... ও কনফিগার OpenSSL এখান থেকে: stackoverflow.com/questions/7360602/...
জোসে একটি

2
আমি ক্রোম 58+ এর জন্য এটি যুক্ত করতে চাই, আপনি একটি ত্রুটি "সাবজেক্টিভ বিকল্প নাম অনুপস্থিত" পেতে চলেছেন। stackoverflow.com/a/42917227/1057052 । আরও সহায়তার জন্য নীচের উত্তরগুলি চেক করুন: stackoverflow.com/a/43666288/1057052 , stackoverflow.com/a/44398368/1057052
জোসে এ

14
Drag image to your desktop and double click it-> আমি আমার ডেস্কটপে কিছু টেনে আনতে পারি না, টেনে নেওয়া যায় না .. আপনি imageআকরিক সম্পর্কে ঠিক কী বলছেন?
আইয়ন

7
Chrome এ "বিষয় বিকল্প নাম অনুপস্থিত" কাটিয়ে উঠতে, openssl req -newkey rsa:2048 -x509 -nodes -keyout keytmp.pem -new -out cert.pem -subj /CN=localhost -reqexts SAN -extensions SAN -config <(cat /System/Library/OpenSSL/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:localhost')) -sha256 -days 3650আপনি প্রস্তাবিত প্রথম লাইনের পরিবর্তে করতে পারেন । এবং এছাড়াও এই প্রক্রিয়াটিতে কম প্রশ্ন জিজ্ঞাসা করবে ...
মাইকেল লিটভিন

78

আপনি শংসাপত্র তৈরি করতে ওপেনএসএসএল চেষ্টা করতে পারেন। এই একবার দেখুন ।

আপনার জেএস এক্সপ্রেস সার্ভার নোডে এইচটিটিপিএস যুক্ত করতে একটি .key এবং .crt ফাইলের প্রয়োজন হবে। আপনি এটি তৈরি করার পরে সার্ভারে এইচটিটিপিএস যুক্ত করতে এই কোডটি ব্যবহার করুন।

var https = require('https');
var fs = require('fs');
var express = require('express');

var options = {
    key: fs.readFileSync('/etc/apache2/ssl/server.key'),
    cert: fs.readFileSync('/etc/apache2/ssl/server.crt'),
    requestCert: false,
    rejectUnauthorized: false
};


var app = express();

var server = https.createServer(options, app).listen(3000, function(){
    console.log("server started at port 3000");
});

এটি আমার লোকাল মেশিনের পাশাপাশি সেই সার্ভারেও যেখানে আমি এটি মোতায়েন করেছি ঠিক তেমন কাজ করছে। আমার সার্ভারে থাকা একটিটি গোড্যাডি থেকে কিনেছিল তবে লোকালহোস্টের স্ব স্বাক্ষরিত শংসাপত্র ছিল।

তবে, প্রতিটি ব্রাউজার একটি ত্রুটি ছুঁড়ে বলেছিল সংযোগটি বিশ্বাসযোগ্য নয়, আপনি কি চালিয়ে যেতে চান? আমি চালিয়ে যাওয়া ক্লিক করার পরে, এটি দুর্দান্ত কাজ করেছে।

যদি স্ব স্ব স্বাক্ষরিত শংসাপত্রের সাথে কেউ যদি এই ত্রুটিটি বাইপাস করে থাকে তবে দয়া করে আলোকিত করুন।


9
আপনার শংসাপত্রটি এখনও বিশ্বাসযোগ্য নয়, সুতরাং আমি আপনার বর্ণনা করছি একই সমস্যা। কোনও ওয়েব সার্ভিস সঠিকভাবে পরীক্ষা / ডিবাগ করার জন্য আমার এটি বিশ্বাস করা উচিত।
জেসনস

1
সুতরাং আপনি চান যে এই শংসাপত্রটি আপনার স্থানীয় মেশিনে কেবল নেটওয়ার্কে নয়?

1
উত্তরের উপরের লিঙ্কটি 1024 বিট 3DES এনক্রিপশন পুনরুদ্ধার করে, যা পুরানো। আরও openssl genrsa -out key.pem 2048ভাল কী জন্য ব্যবহার করা ভাল।
স্টিম্পওয়ার্ড হয়েছে

3
আপনার শংসাপত্র এখনও বিশ্বাসযোগ্য নয়।
দিয়েগো মেলো

2
উপরের এক্সপ্রেস কোডটি স্থানীয় সিএ / বিশ্বস্ত সার্ট তৈরি করতে github.com/FiloSottil/mkcert ( ওপেনএসএসএল পরিবর্তে) ব্যবহার করে works সবুজ সবুজ বার।
সোম 22

11

লোকালহোস্টের জন্য কীভাবে একটি এসএসএল শংসাপত্র তৈরি করবেন: লিঙ্ক

openssl genrsa -des3 -out server.key 1024

আপনাকে এখানে একটি পাসওয়ার্ড প্রবেশ করতে হবে যা আপনাকে নিম্নলিখিত পদক্ষেপগুলিতে পুনরায় টাইপ করতে হবে

openssl req -new -key server.key -out server.csr

যখন জিজ্ঞাসা করা হয় "সাধারণ নাম" টাইপ করুন: লোকালহোস্ট

openssl x509 -req -days 1024 -in server.csr -signkey server.key -out server.crt

1
এটিই গত 2 ঘন্টা ধরে ইন্টারনেটে স্কোল করা সমাধান solution উবুন্টুতে যে কারও জন্য cp server.crt /usr/local/share/ca-certificates/.চালনা করুন এবং চালান sudo update-ca-certificatesতারপরে লোকালহোস্ট https অনুরোধগুলি নোডজেএস 8+ এর অধীনে কাজ করে। 1024 to 2048
আইডিটিও

6

আমার জন্য কি কাজ করছে তা এখানে

উইন্ডোতে

1) এটি আপনার% WINDIR% \ System32 \ ড্রাইভার \ ইত্যাদি \ হোস্ট ফাইলটিতে যুক্ত করুন: 127.0.0.1 লোকালদেব OUR আপনার ওয়েবসাইটটি নেটওয়্যার (কারণ ব্রাউজারে 'লোকালহোস্ট' (ক্রস অরিজিন স্ক্রিপ্টিংয়ের জন্য সমস্যা রয়েছে)

উইন্ডোজ ভিস্তা এবং উইন্ডোজ 7 ভিস্তা এবং উইন্ডোজ 7 ইউজার অ্যাকাউন্ট কন্ট্রোল (ইউএসি) ব্যবহার করে তাই নোটপ্যাড অবশ্যই প্রশাসক হিসাবে চালানো উচিত।

  1. শুরু -> সমস্ত প্রোগ্রাম -> আনুষাঙ্গিক ক্লিক করুন

  2. নোটপ্যাডে ডান ক্লিক করুন এবং প্রশাসক হিসাবে রান নির্বাচন করুন

  3. "উইন্ডোজ আপনার অনুমতি প্রয়োজন" ইউএসি উইন্ডোতে চালিয়ে যান ক্লিক করুন।

  4. নোটপ্যাড খুললে ফাইল -> খুলুন ক্লিক করুন

  5. ফাইলের নাম ক্ষেত্রে সি: \ উইন্ডোজ \ সিস্টেম 32 \ ড্রাইভার \ ইত্যাদি \ হোস্ট টাইপ করুন

  6. ওপেন ক্লিক করুন

  7. এটি আপনার% WINDIR% \ System32 \ ড্রাইভার \ ইত্যাদি \ হোস্ট ফাইলটিতে যুক্ত করুন: 127.0.0.1 স্থানীয়দেব Y YYSITE.net

  8. সংরক্ষণ

  9. ব্রাউজারগুলি বন্ধ এবং পুনঃসূচনা করুন

ম্যাক বা লিনাক্সে:

  1. suঅনুমতি সহ / ইত্যাদি / হোস্টগুলি খুলুন
  2. যোগ 127.0.0.1 localdev.YOURSITE.net
  3. এটি সংরক্ষণ করুন

বিকাশের সময় আপনি লোকালহেস্টের পরিবর্তে লোকালদেব.ওয়াইওয়ারসিটইএন ব্যবহার করেন তাই আপনি যদি আপনার আইডিতে রান / ডিবাগ কনফিগারেশন ব্যবহার করেন তবে এটি আপডেট করার বিষয়ে নিশ্চিত হন।

কুকিএম তৈরি করার সময় ".YOURSITE.net" কে কুকিডোমাইন হিসাবে ব্যবহার করুন (শুরুতে একটি বিন্দু দিয়ে) তখন এটি সমস্ত সাবডোমেনগুলির সাথে কাজ করা উচিত।

2) সেই লোকালদেভ.আরল ব্যবহার করে শংসাপত্র তৈরি করুন

টিপ: আপনার যদি উইন্ডোতে শংসাপত্র উত্পন্ন করার সমস্যা থাকে তবে পরিবর্তে ভার্চুয়ালবক্স বা ভিএমওয়্যার মেশিন ব্যবহার করুন।

3) http://www.charlesproxy.com/docamentation/used-charles/ssl-cer ર્ટates/ এ বর্ণিত শংসাপত্রটি আমদানি করুন


হাই ট্রয়, এই ভাগ করে নেওয়ার জন্য ধন্যবাদ। এটি কাজ করে কি না তা নিয়ে অন্য কাউকে মন্তব্য করতে হবে। আমার কার্যনির্বাহী: আমি আমার হোস্ট ফাইলটিতে dev.phantomjscloud.com যুক্ত করে শেষ করেছি এবং তারপরে আমার প্রোডাকশন শংসাপত্রটি ব্যবহার করছি। এটি কেবল তখনই কার্যকর যদি আপনি চান আপনার প্রোডাকশন কীগুলি আপনার ডেভ বাক্সে উপলভ্য, সুতরাং আমি মনে করি আপনার সমাধানটি এখনও কার্যকর হতে পারে, যদি অন্য কেউ দয়া করে যাচাই করতে পারেন
জেসনস

এটি আমার এবং আমার দলের পক্ষে কাজ করে, বিভিন্ন উপায়ে একটি মিশ্রণে, স্থানীয় সার্ভারে স্থানীয় উত্পাদন থেকে সার্ভারে সুরক্ষিত করতে নিরাপদ।
ট্রয় ওয়ার্কস

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

6

@ ফিলোসটাইল থেকে এমকিসার্ট এই প্রক্রিয়াটিকে অসীম সহজ করে তুলেছে:

  1. Mkcert ইনস্টল করুন , ম্যাকোস / উইন্ডোজ / লিনাক্সের জন্য নির্দেশাবলী রয়েছে
  2. mkcert -install একটি স্থানীয় সিএ তৈরি করতে
  3. mkcert localhost 127.0.0.1 ::1 বর্তমান ডিরেক্টরিতে লোকালহোস্টের জন্য একটি বিশ্বস্ত শংসাপত্র তৈরি করতে
  4. আপনি নোড ব্যবহার করছেন (যা সিস্টেমের মূল স্টোর ব্যবহার করে না), তাই আপনাকে পরিবেশের পরিবর্তনশীল ক্ষেত্রে স্পষ্টভাবে সিএ নির্দিষ্ট করতে হবে , যেমন:export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
  5. অবশেষে অন্যান্য বিভিন্ন উত্তরে বর্ণিত সেটআপ ব্যবহার করে আপনার এক্সপ্রেস সার্ভারটি চালান (উদাহরণস্বরূপ নীচে)
  6. গম্ভীর গর্জন। লোকালহোস্টের সাঁতার সবুজ

বেসিক নোড সেটআপ:

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();    
const server = https.createServer({
    key: fs.readFileSync('/XXX/localhost+2-key.pem'), // where's me key?
    cert: fs.readFileSync('/XXX/localhost+2.pem'), // where's me cert?
    requestCert: false,
    rejectUnauthorized: false,
}, app).listen(10443); // get creative

ব্যাপকভাবে কাজ করে! এই পদ্ধতির সাথে ক্রোম / উইন্ডোজ শংসাপত্রের দোকানে আমাদের সিএ বিশ্বস্ত শংসাপত্র কর্তৃপক্ষ হিসাবে স্ব স্বাক্ষরিত শংসাপত্রের নিবন্ধকরণ করার দরকার নেই। অন্যান্য উত্তরে যেমন উল্লেখ করা হয়েছে।
জহির

4

আপনি যদি ওএসএক্স / ক্রোমে থাকেন তবে এখানে বর্ণিত হিসাবে আপনি নিজের সিস্টেম কীচেইনে স্ব-স্বাক্ষরিত SSL শংসাপত্র যুক্ত করতে পারেন: http://www.robpeck.com/2010/10/google-chrome-mac-os-x-and -self সাইন-SSL-সার্টিফিকেট

এটি একটি ম্যানুয়াল প্রক্রিয়া, তবে আমি শেষ পর্যন্ত এটি কাজ করে চলেছি। কেবল নিশ্চিত করুন যে সাধারণ নাম (সিএন) "লোকালহোস্ট" (বন্দর ছাড়াই) তে সেট করা আছে এবং শংসাপত্রটি যুক্ত হওয়ার পরে নিশ্চিত হয়ে নিন যে শংসাপত্রের সমস্ত ট্রাস্ট বিকল্পগুলি "সর্বদা বিশ্বাস" তে সেট করা আছে। এছাড়াও আপনি এটি "সিস্টেম" কীচেইনে যুক্ত করেছেন এবং "লগইন" কীচেইন নয় তা নিশ্চিত করুন।


তিনি আইই উল্লেখ করেছেন যার অর্থ তিনি উইন্ডোজ ব্যবহার করছেন।
2 বিট 15

3

আপনি যদি নোড ব্যবহার করছেন তবে নোড দিয়ে কেন এগুলি উত্পন্ন করবেন না? এই মডিউলটি বেশ পুরো বৈশিষ্ট্যযুক্ত বলে মনে হচ্ছে:

মনে রাখবেন যে আমি উড়তে উত্পন্ন করব না। কিছু ধরণের বিল্ড স্ক্রিপ্ট তৈরি করুন যাতে আপনার একটি ধারাবাহিক শংসাপত্র এবং কী থাকে। অন্যথায় আপনাকে নতুন উত্পন্ন স্ব-স্বাক্ষরিত শংসাপত্রটি প্রতিবার অনুমোদিত করতে হবে।


3

পোস্ট করা উত্তরগুলির কয়েকটিতে টুকরো রয়েছে যা আমার এই সমস্যাটিও কাটিয়ে উঠতে খুব দরকারী। যাইহোক, আমি নূন্যতম পদক্ষেপের জন্য এবং আদর্শভাবে ওপেনএসএসএল (উইন্ডোজ 10 এ) এড়ানোতে আগ্রহী ছিলাম ।

সুতরাং, উত্তরগুলির একটি গুরুত্বপূর্ণ টুকরো (ক্রেডিট: @ ট্রয় ওয়ার্কস ) হ'ল আপনাকে একটি কল্পিত সার্ভার তৈরি করতে আপনার HOSTS ফাইলটি সম্পাদনা করতে হবে এবং সেটি 127.0.0.1 এ মানচিত্র করা উচিত। এটি ধরে নিয়েছে যে আপনি স্থানীয় উন্নয়ন করতে যাচ্ছেন।

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

New-SelfSignedCertificate -DnsName "gandalf.dummy.dev" -FriendlyName "gandalf" -CertStoreLocation "cert:\LocalMachine\My"

এটি পিএস অ্যাডমিন কনসোলে চালাতে হবে, তবে এটি সহজভাবে কাজ করে এবং সার্টিফিকেট লোকালমাচিন শংসাপত্রের স্টোরের "ব্যক্তিগত" বিভাগে রাখে। এটি নির্বাহ করে আপনি যাচাই করতে পারেন:

ls cert:\LocalMachine\My 

এটি বিশ্বাস করতে, কেবল এটিকে অনুলিপি করুন এবং শংসাপত্র ব্যবস্থাপক (এটি নিশ্চিত করুন যে আপনি স্থানীয় মেশিনের শংসাপত্রগুলি দেখছেন, বর্তমান ব্যবহারকারী নয়!) ব্যবহার করে "বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষগুলিতে" পেস্ট করুন।

আপনি যদি আইআইএসে এই শংসাপত্রের সাথে আবদ্ধ হন তবে আপনার https://gandalf.dummy.dev/ এ আঘাত করতে এবং কোনও সতর্কতা ছাড়াই একটি নিরাপদ সংযোগ পেতে সক্ষম হওয়া উচিত ।

এটি নোডজেএস-এ ব্যবহার করে চূড়ান্ত টুকরোটি উপরে এবং অন্যান্য এসও উত্তরে বর্ণিত হয়েছে, সুতরাং আমি কেবল এটি উইন্ডোতে যুক্ত করব, একটি পিএফএক্স ফাইলের সাথে কাজ করা সহজ যা সার্টি এবং ব্যক্তিগত কী সংযুক্ত করে। আপনি শংসাপত্র ব্যবস্থাপক থেকে সহজেই একটি পিএফএক্স রফতানি করতে পারেন তবে আপনি এটি নোডজেএসে কীভাবে ব্যবহার করবেন তা প্রভাবিত করে। 'Https' মডিউলটি ব্যবহার করে কোনও সার্ভার ইনস্ট্যান্ট করার সময় আপনি যে বিকল্পগুলি ব্যবহার করবেন ('কী' এবং 'সার্টিটির পরিবর্তে' হবে) পিএফএক্স এবং 'পাসফ্রেজ' হবে, যেমন:

var https = require('https');
var options = { 
    pfx: fs.readFileSync('mypfxfile'), 
    passphrase: 'foo' 
};
var server = https.createServer(options);

2

উইন্ডোজগুলিতে আমি এমএমসি (শুরু> রান> মিমি) ব্যবহার করে আইআইএস বিকাশ শংসাপত্রকে বিশ্বস্ত করে তুলেছি, তারপরে শংসাপত্র স্ন্যাপিন যুক্ত করুন, "স্থানীয় কম্পিউটার" চয়ন করে এবং ডিফল্ট গ্রহণ করে। সেই শংসাপত্রের স্ন্যাপিপ যুক্ত হয়ে গেলে ব্যক্তিগত অধীনে দেখতে স্থানীয় কম্পিউটার শংসাপত্র গাছটি প্রসারিত করুন, লোকালহোস্ট শংসাপত্রটি নির্বাচন করুন,> সমস্ত টাস্ক> রফতানীতে ডান ক্লিক করুন। রফতানি উইজার্ডে সমস্ত ডিফল্ট গ্রহণ করুন।

সেই ফাইলটি সেভ হয়ে গেলে, বিশ্বস্ত শংসাপত্রগুলি প্রসারিত করুন এবং আপনার সবেমাত্র রফতানি করা শংসাপত্রটি আমদানি করতে শুরু করুন। https://localhostসুরক্ষার কোনও সতর্কতা না থাকা ক্রোমে এখন বিশ্বস্ত।

আমি এমএসডিএন ব্লগ থেকে এই গাইড রেজোলিউশন # 2 ব্যবহার করেছি , ওপেন এমএমসি ব্যবহার করা উচিত সে সম্পর্কে তার প্রশ্নের একটি লিঙ্কও ভাগ করেছেন তবে এটি আমার জন্য কাজ করেছে। রেজোলিউশন # 2


2

যাও: chrome://flags/

সক্ষম করুন: লোকালহোস্ট থেকে লোড হওয়া সংস্থার জন্য অবৈধ শংসাপত্রগুলির মঞ্জুরি দিন।

আপনার সবুজ সুরক্ষা নেই, তবে আপনাকে সর্বদা ক্রোমে https: // লোকালহোস্টের জন্য অনুমোদিত ।


2

এর আরও দিক রয়েছে।

আপনি স্বাক্ষরিত কিনা বা একটি শংসাপত্রের সাথে টিএলএস (কেউ কেউ এসএসএল বলে রাখছেন) অর্জন করতে পারেন।

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

এই সম্পদ স্থানীয় হোস্ট একটি সবুজ বার দেখানোর ক্ষেত্রে ক্রোম, ফায়ারফক্স এবং এজ উভয় CA শংসাপত্র এবং একটি সার্ভার শংসাপত্র সৃষ্টির জুড়ে এবং আমার সেটআপ ফলে https://ram.k0a1a.net/self-signed_https_cert_after_chrome_58

দয়া করে নোট করুন: ক্রোমে আপনাকে আপনার বিশ্বস্ত কর্তৃপক্ষগুলিতে CA শংসাপত্র যুক্ত করতে হবে।


0

আপনার যদি অ্যালোন এর বিস্তারিত পদক্ষেপের চেয়ে আরও এক ধাপ এগিয়ে যেতে হয় এবং স্ব স্বাক্ষরিত সিএও তৈরি করতে হয়:

https.createServer({
  key: fs.readFileSync(NODE_SSL_KEY),
  cert: fs.readFileSync(NODE_SSL_CERT),
  ca: fs.readFileSync(NODE_SSL_CA),
}, app).listen(PORT, () => {});

package.json

"setup:https": "openssl genrsa -out src/server/ssl/localhost.key 2048
&& openssl req -new -x509 -key src/server/ssl/localhost.key -out src/server/ssl/localhost.crt -config src/server/ssl/localhost.cnf
&& openssl req -new -out src/server/ssl/localhost.csr -config src/server/ssl/localhost.cnf
&& openssl x509 -req -in src/server/ssl/localhost.csr -CA src/server/ssl/localhost.crt -CAkey src/server/ssl/localhost.key -CAcreateserial -out src/server/ssl/ca.crt",

স্থানীয়হোস্ট.সিএনএফ ব্যবহার করা হিসাবে বর্ণিত:

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = UK
ST = State
L = Location
O = Organization Name
OU = Organizational Unit 
CN = www.localhost.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.localhost.com
DNS.2 = localhost.com
DNS.3 = localhost
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.