এক্সপ্রেস.জেজে HTTPS সক্ষম করা হচ্ছে


408

আমি নোডের জন্য এক্সপ্রেস.জেএসএইচটিপিএসে কাজ করার চেষ্টা করছি, এবং আমি এটি বের করতে পারি না।

এটি আমার app.jsকোড।

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

var privateKey = fs.readFileSync('sslcert/server.key');
var certificate = fs.readFileSync('sslcert/server.crt');

var credentials = {key: privateKey, cert: certificate};


var app = express.createServer(credentials);

app.get('/', function(req,res) {
    res.send('hello');
});

app.listen(8000);

আমি যখন এটি চালনা করি তখন মনে হয় কেবলমাত্র এইচটিটিপি অনুরোধের প্রতিক্রিয়া দেখাবে।

আমি সহজ ভ্যানিলা node.jsভিত্তিক এইচটিটিপিএস অ্যাপ লিখেছি :

var   fs = require("fs"),
      http = require("https");

var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();

var credentials = {key: privateKey, cert: certificate};

var server = http.createServer(credentials,function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
});

server.listen(8000);

আর যখন আমি এই অ্যাপটি চালাতে, এটা করে HTTPS দ্বারা অনুরোধ সাড়া। নোট করুন যে আমি fs ফলাফল সম্পর্কিত বিষয়ে স্ট্রিং () মনে করি না, কারণ আমি উভয়ের সংমিশ্রণ ব্যবহার করেছি এবং এখনও কোনও বুয়েনো নেই।


যোগ করুন সম্পাদনা করুন:

উত্পাদন সিস্টেমগুলির জন্য, আপনি সম্ভবত আপনার নোডেজ অ্যাপ্লিকেশনটিতে প্রক্সি অনুরোধগুলিতে Nginx বা HAProxy ব্যবহার করা ভাল। আপনি এসএসএল অনুরোধগুলি পরিচালনা করতে nginx সেটআপ করতে পারেন এবং আপনার নোড অ্যাপ.জেএস-তে ঠিক এইচটিপি বলতে পারেন।

সম্পাদনা করুন (4/6/2015)

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



3
: Succinctly উত্তর এখানে দেওয়া stackoverflow.com/a/23894573/1882064
arcseldon

এডাব্লুএস-এর সর্বশেষ মন্তব্য সম্পর্কে: এটি কি যে https মডিউলটি দিয়ে কোনও সার্ভার তৈরি করার দরকার নেই? আমার শংসাপত্রগুলি জেনকিন্সের মাধ্যমে এডাব্লুএসে আপলোড করা হয় এবং এআরএন দিয়ে পরিচালিত হয়; আমার কাছে ব্যবহারের জন্য কোনও ফাইল পাথ নেই (https বিকল্পগুলিতে)
sqldoug

@ এসকিএলডগ আমি নিশ্চিত না যে আমি প্রশ্নটি বুঝতে পেরেছি। এইডাব্লুএস ইএলবিগুলি এইচটিটিপিএস সংযোগগুলি গ্রহণ করতে এবং এসএসএল সমাপ্তি পয়েন্ট হিসাবে কাজ করার জন্য কনফিগার করা যেতে পারে। এটি হ'ল নিয়মিত এইচটিটিপি-র মাধ্যমে তারা আপনার অ্যাপ সার্ভারের সাথে কথা বলে। সাধারণত এসএসএলের সাথে নোডেজ চুক্তি করার কোনও কারণ নেই, কারণ এটি কেবলমাত্র অতিরিক্ত প্রক্রিয়াজাতকরণ ওভারহেড যা ELB স্তরে বা HTTP প্রক্সি স্তরে স্ট্যাকটি পরিচালনা করতে পারে।
অ্যালান

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

উত্তর:


671

এক্সপ্রেস.জেজে (সংস্করণ 3 থেকে) আপনার সেই বাক্য গঠনটি ব্যবহার করা উচিত:

var fs = require('fs');
var http = require('http');
var https = require('https');
var privateKey  = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');

var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();

// your express configuration here

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

httpServer.listen(8080);
httpsServer.listen(8443);

এইভাবে আপনি নেটিভ http / https সার্ভারে এক্সপ্রেস মিডলওয়্যার সরবরাহ করেন

আপনি যদি নিজের অ্যাপ্লিকেশনটি 1024 এর নীচে পোর্টগুলিতে চলতে চান তবে আপনাকে sudoকমান্ডটি ব্যবহার করতে হবে (প্রস্তাবিত নয়) বা একটি বিপরীত প্রক্সি ব্যবহার করতে হবে (যেমন এনগিনেক্স, হ্যাপ্রোক্সি)।


2
: সমস্ত এখানে লেখা আছে github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x অনুচ্ছেদ অ্যাপ্লিকেশন ফাংশন
codename-

74
মনে রাখবেন যে যদিও এইচটিটিপিএসের জন্য 443 ডিফল্ট বন্দর, বিকাশের সময় আপনি সম্ভবত 8443 এর মতো কিছু ব্যবহার করতে চান কারণ বেশিরভাগ সিস্টেমে কম সংখ্যাযুক্ত পোর্টগুলিতে নন-রুট শ্রোতাদের মঞ্জুরি দেয় না।
ইবোহলমান

1
ম্যান, এটি ম্যাজিকের মতো কাজ করে :) এটি পিপি ফাইলগুলিকেও গ্রহণ করে, পাশাপাশি এটি হওয়া উচিত
মার্সেলো

5
4 প্রকাশ করুন এটি কাজ করে না, এটি কাজ করে localhost:80তবে তা নয়https://localhost:443
মুহাম্মদ উমার

13
যদি আপনি বিপরীত প্রক্সিটির জন্য এনজিনেক্স ব্যবহার করতে চলেছেন তবে নোডের পরিবর্তে এটি আপনার জন্য এসএসএল শংসাপত্রগুলি পরিচালনা করতে পারে
Gianfranco P.

48

প্রথমত, আপনাকে নিজের থেকে স্বাক্ষরিত.কি এবং স্ব- স্বাক্ষরিত সিআরটি ফাইল তৈরি করতে হবে । একটি স্ব-স্বাক্ষরিত SSL শংসাপত্র তৈরি করতে যান বা নিম্নলিখিত পদক্ষেপগুলি করুন।

টার্মিনালে যান এবং নিম্নলিখিত কমান্ড চালান।

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./selfsigned.key -out selfsigned.crt

  • এর পরে নিম্নলিখিত তথ্য রাখুন
  • দেশের নাম (২ টি বর্ণ কোড) [এউ]: মার্কিন US
  • রাজ্য বা প্রদেশের নাম (পুরো নাম) [কিছু-রাজ্য]: এনওয়াই
  • লোকালয়ের নাম (যেমন, শহর) []: এনওয়াই
  • সংস্থার নাম (যেমন, সংস্থা) [ইন্টারনেট উইজেটস পিটিআই লিমিটেড]: xyz (আপনার - সংস্থা)
  • সাংগঠনিক ইউনিটের নাম (যেমন, বিভাগ) []: xyz (আপনার ইউনিটের নাম)
  • সাধারণ নাম (যেমন সার্ভার FQDN বা আপনার নাম) []: www.xyz.com (আপনার ইউআরএল)
  • ইমেল ঠিকানা []: আপনার ইমেল

তৈরির পরে আপনার কোডে কী & শংসাপত্র ফাইল যুক্ত করে এবং সার্ভারে বিকল্পগুলি পাস করে।

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

var key = fs.readFileSync(__dirname + '/../certs/selfsigned.key');
var cert = fs.readFileSync(__dirname + '/../certs/selfsigned.crt');
var options = {
  key: key,
  cert: cert
};

app = express()
app.get('/', (req, res) => {
   res.send('Now using https..');
});

var server = https.createServer(options, app);

server.listen(port, () => {
  console.log("server starting on port : " + port)
});
  • শেষ পর্যন্ত https ব্যবহার করে আপনার অ্যাপ্লিকেশনটি চালান ।

আরও তথ্য https://github.com/sagardere/set-up-SSL-in-nodejs


প্রয়োজন ছাড়া sudo ব্যবহার নিরুৎসাহিত করা উচিত। আমি কেবল সুডো ব্যবহার না করেই এই প্রক্রিয়াটি পেরেছি, তবে আমি মেশিনে অ্যাডমিন হিসাবে লগ ইন করেছি।
ঝিকোক

27

443 বন্দর ব্যতীত অন্য কোনও বন্দরে এসএসএল পাওয়ার ক্ষেত্রে আমি একই ধরণের সমস্যায় পড়েছি my আমার ক্ষেত্রে আমার একটি বান্ডিল শংসাপত্র পাশাপাশি একটি শংসাপত্র এবং কী ছিল। বান্ডেল শংসাপত্র এমন একটি ফাইল যা একাধিক শংসাপত্র রাখে, নোডের দরকার হয় আপনি সেই শংসাপত্রগুলিকে একটি অ্যারের পৃথক উপাদানগুলিতে বিভক্ত করুন।

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

    var options = {
      ca: [fs.readFileSync(PATH_TO_BUNDLE_CERT_1), fs.readFileSync(PATH_TO_BUNDLE_CERT_2)],
      cert: fs.readFileSync(PATH_TO_CERT),
      key: fs.readFileSync(PATH_TO_KEY)
    };

    app = express()

    app.get('/', function(req,res) {
        res.send('hello');
    });

    var server = https.createServer(options, app);

    server.listen(8001, function(){
        console.log("server running at https://IP_ADDRESS:8001/")
    });

App.js এ আপনাকে https নির্দিষ্ট করতে হবে এবং সে অনুযায়ী সার্ভার তৈরি করতে হবে। এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি যে বন্দরটি ব্যবহার করার চেষ্টা করছেন সেটি আসলে অভ্যন্তরীণ ট্র্যাফিকের অনুমতি দিচ্ছে।


আমার কাছে একটি কী এবং একটি বান্ডিলযুক্ত শংসাপত্র রয়েছে, আমি নিশ্চিত নই: কী সার্টিট: fs.readFileSync (PATH_TO_CERT) হবে, এবং বান্ডেল করা সার্টটি কীভাবে "ব্রেক" করা যায়, আপনি আমাকে জিজ্ঞাসা করলে সারিতে 20+ কী জাতীয় থাকে:
মুহাম্মদ উমর

@ মুহাম্মাদ উমর আপনাকে বান্ডিলটি ভেঙে ফেলতে হবে না বা এটি নির্দিষ্ট করতে হবে না যদি আপনার কাছে এটি না থাকে তবে প্রযোজ্য হলে আপনার কাছে একটি বান্ডিল শংসাপত্র থাকবে, এবং শংসাপত্র (পাবলিক কী) এবং কী (প্রাইভেট কী)
হ্যাডেন থ্রিং

@ ইমোটো ধন্যবাদ কুঁড়ি! এটি সেরা, আপনি আমার যে উদাহরণটি প্রয়োজন তা পুরোপুরি পেরেক দিয়েছিলেন
হেডেন থ্রিং

11

পয়েন্ট সহ:

  1. এসএসএল সেটআপ
    1. কনফিগারেশন / স্থানীয়.জেএস এ
    2. কনফিগারেশন / এনভি / প্রোডাকশন.জেএস এ

এইচটিটিপি এবং ডাব্লুএস হ্যান্ডলিং

  1. অ্যাপ্লিকেশনটি অবশ্যই HTTP- তে বিকাশে চলতে হবে যাতে আমরা সহজেই আমাদের অ্যাপটি ডিবাগ করতে পারি।
  2. অ্যাপ্লিকেশনটি সুরক্ষা উদ্বেগের জন্য উত্পাদনে HTTPS এ চলতে হবে।
  3. অ্যাপ্লিকেশন উত্পাদন HTTP অনুরোধটি সর্বদা https এ পুনঃনির্দেশ করা উচিত।

এসএসএল কনফিগারেশন

সেলসজগুলিতে সমস্ত স্টাফ কনফিগার করার দুটি উপায় রয়েছে, প্রথমে কনফিগার ফোল্ডারে কনফিগার করা প্রত্যেকের আলাদা আলাদা ফাইল রয়েছে (যেমন সেটিংস সম্পর্কিত ডাটাবেস সংযোগ যেমন সংযোগ.জেএস এর মধ্যে রয়েছে)। এবং দ্বিতীয়টি হল এনভায়রনমেন্ট বেস ফাইল স্ট্রাকচারের উপর কনফিগার করা, প্রতিটি এনভায়রনমেন্ট ফাইল config/envফোল্ডারে উপস্থাপন করে এবং প্রতিটি ফাইলে নির্দিষ্ট এনভির জন্য সেটিংস থাকে।

সেলগুলি প্রথমে কনফিগারেশন / এনএভিডি ফোল্ডারে দেখায় এবং তারপরে কনফিগারেশন / * .js এ প্রত্যাশায়

এখন এসএসএল সেটআপ করতে দিন config/local.js

var local = {
   port: process.env.PORT || 1337,
   environment: process.env.NODE_ENV || 'development'
};

if (process.env.NODE_ENV == 'production') {
    local.ssl = {
        secureProtocol: 'SSLv23_method',
        secureOptions: require('constants').SSL_OP_NO_SSLv3,
        ca: require('fs').readFileSync(__dirname + '/path/to/ca.crt','ascii'),
        key: require('fs').readFileSync(__dirname + '/path/to/jsbot.key','ascii'),
        cert: require('fs').readFileSync(__dirname + '/path/to/jsbot.crt','ascii')
    };
    local.port = 443; // This port should be different than your default port
}

module.exports = local;

বিকল্প আপনি এটি কনফিগারেশন / env / product.js এ যুক্ত করতে পারেন । (এই স্নিপেটটি একাধিক সিআরআউট সার্টিটি হ্যান্ডেল করার পদ্ধতিটিও দেখায়)

বা উত্পাদন. js এ

module.exports = {
    port: 443,
    ssl: {
        secureProtocol: 'SSLv23_method',
        secureOptions: require('constants').SSL_OP_NO_SSLv3,
        ca: [
            require('fs').readFileSync(__dirname + '/path/to/AddTrustExternalCARoot.crt', 'ascii'),
            require('fs').readFileSync(__dirname + '/path/to/COMODORSAAddTrustCA.crt', 'ascii'),
            require('fs').readFileSync(__dirname + '/path/to/COMODORSADomainValidationSecureServerCA.crt', 'ascii')
        ],
        key: require('fs').readFileSync(__dirname + '/path/to/jsbot.key', 'ascii'),
        cert: require('fs').readFileSync(__dirname + '/path/to/jsbot.crt', 'ascii')
    }
};

http / https & ws / wss পুনঃনির্দেশ

এখানে ডাব্লুএস ওয়েব সকেট এবং ডাব্লুএসএস সিকিউর ওয়েব সকেটকে উপস্থাপন করে, যেমনটি আমরা এখন এসএসএল সেটআপ করি এখনই এইচটিএসপি এবং ডাব্লুএসএস উভয় অনুরোধগুলি সুরক্ষিত হয়ে যথাক্রমে https এবং wss এ রূপান্তরিত হয়।

আমাদের অ্যাপ্লিকেশন থেকে অনেক উত্স আছে যে কোনও ব্লগ পোস্ট, সোশ্যাল মিডিয়া পোস্টের মতো অনুরোধ পাবেন তবে আমাদের সার্ভারটি কেবলমাত্র https এ চলবে তাই যখন কোনও অনুরোধ HTTP থেকে আসে তখন এটি ক্লায়েন্ট ব্রাউজারে "এই সাইটে পৌঁছানো যায় না" ত্রুটি দেয়। এবং আমরা আমাদের ওয়েবসাইট ট্র্যাফিক ক্ষতিগ্রস্ত। সুতরাং আমাদের অবশ্যই HTTP র অনুরোধটি https এ পুনঃনির্দেশিত করতে হবে, একই নিয়মগুলি ওয়েবসকেটের জন্য অনুমতি দেয় অন্যথায় সকেট ব্যর্থ হবে।

সুতরাং আমাদের 80 (HTTP) পোর্টে একই সার্ভার চালানো এবং 443 (https) পোর্টে সমস্ত অনুরোধ ডাইভার্ট করা দরকার। সার্ভার তোলার আগে কনফিগারেশন / বুটস্ট্র্যাপ.জেএস ফাইলটি প্রথমে সংযুক্ত করে ails এখানে আমরা পোর্ট 80 এ আমাদের এক্সপ্রেস সার্ভারটি শুরু করতে পারি।

কনফিগারেশন / বুটস্ট্র্যাপ.জেজে (HTTP সার্ভার তৈরি করুন এবং সমস্ত অনুরোধ https এ পুনঃনির্দেশ করুন)

module.exports.bootstrap = function(cb) {
    var express = require("express"),
        app = express();

    app.get('*', function(req, res) {  
        if (req.isSocket) 
            return res.redirect('wss://' + req.headers.host + req.url)  

        return res.redirect('https://' + req.headers.host + req.url)  
    }).listen(80);
    cb();
};

এখন আপনি http://www.yourdomain.com দেখতে পারেন , এটি https://www.yourdomain.com এ পুনঃনির্দেশিত হবে


8

গ্রিনলক-এক্সপ্রেস ব্যবহার করুন: ফ্রি এসএসএল, অটোমেটেড এইচটিটিপিএস

গ্রিনলক শংসাপত্র জারি করা এবং পুনর্নবীকরণ (লেটস এনক্রিপ্টের মাধ্যমে) এবং বক্সের বাইরে http => https পুনর্নির্দেশ পরিচালনা করে।

express-app.js:

var express = require('express');
var app = express();

app.use('/', function (req, res) {
  res.send({ msg: "Hello, Encrypted World!" })
});

// DO NOT DO app.listen()
// Instead export your app:
module.exports = app;

server.js:

require('greenlock-express').create({
  // Let's Encrypt v2 is ACME draft 11
  version: 'draft-11'
, server: 'https://acme-v02.api.letsencrypt.org/directory'

  // You MUST change these to valid email and domains
, email: 'john.doe@example.com'
, approveDomains: [ 'example.com', 'www.example.com' ]
, agreeTos: true
, configDir: "/path/to/project/acme/"

, app: require('./express-app.j')

, communityMember: true // Get notified of important updates
, telemetry: true       // Contribute telemetry data to the project
}).listen(80, 443);

স্কীনকাস্ট

কুইকস্টার্ট বিক্ষোভ দেখুন: https://youtu.be/e8vaR4CEZ5s

লোকালহোস্টের জন্য

এই সামনের সময়ের উত্তর দেওয়া কারণ এটি একটি সাধারণ ফলো-আপ প্রশ্ন:

লোকালহোস্টে আপনার SSL সার্টিফিকেট থাকতে পারে না। তবে আপনি টেলিবিটের মতো কিছু ব্যবহার করতে পারেন যা আপনাকে স্থানীয় অ্যাপ্লিকেশনগুলি বাস্তব হিসাবে চালানোর অনুমতি দেবে।

আপনি ডিএনএস -01 চ্যালেঞ্জের মাধ্যমে গ্রিনলকের সাথে ব্যক্তিগত ডোমেনগুলিও ব্যবহার করতে পারেন, যা বিভিন্ন প্লাগইন সমর্থন করে যা README তে উল্লেখ রয়েছে।

অ-মানক বন্দরগুলি (অর্থাত্ 80/443 নয়)

লোকালহোস্ট সম্পর্কে উপরের নোটটি পড়ুন - আপনি লেটস এনক্রিপ্ট সহ অ-মানক পোর্ট ব্যবহার করতে পারবেন না।

তবে আপনি পোর্ট-ফরোয়ার্ড, সনি-রুট হয়ে আপনার অভ্যন্তরীণ-মানক বন্দরগুলি বহিরাগত মানক বন্দর হিসাবে প্রকাশ করতে পারেন, বা টেলিবিটের মতো এমন কিছু ব্যবহার করতে পারেন যা আপনার জন্য এসএনআই-রাউটিং এবং পোর্ট-ফরোয়ার্ডিং / রিলে করে does

আপনি ডিএনএস -01 চ্যালেঞ্জগুলিও ব্যবহার করতে পারেন এমন ক্ষেত্রে আপনার পোর্টকে একেবারে প্রকাশ করার প্রয়োজন হবে না এবং আপনি ব্যক্তিগত নেটওয়ার্কগুলিতেও এইভাবে ডোমেনগুলি সুরক্ষিত করতে পারেন।


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

সংশোধন: " লোকালহোস্টে আপনার বৈধ SSL শংসাপত্র থাকতে পারে না "।
CoolAJ86

6

এটি আমার জন্য এটি কাজ করে। ব্যবহৃত পুনঃনির্দেশটি সমস্ত সাধারণ httpকেও পুনঃনির্দেশ করবে।

const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const http = require('http');
const app = express();
var request = require('request');
//For https
const https = require('https');
var fs = require('fs');
var options = {
  key: fs.readFileSync('certificates/private.key'),
  cert: fs.readFileSync('certificates/certificate.crt'),
  ca: fs.readFileSync('certificates/ca_bundle.crt')
};

// API file for interacting with MongoDB
const api = require('./server/routes/api');

// Parsers
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// Angular DIST output folder
app.use(express.static(path.join(__dirname, 'dist')));

// API location
app.use('/api', api);

// Send all other requests to the Angular app
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/index.html'));
});
app.use(function(req,resp,next){
  if (req.headers['x-forwarded-proto'] == 'http') {
      return resp.redirect(301, 'https://' + req.headers.host + '/');
  } else {
      return next();
  }
});


http.createServer(app).listen(80)
https.createServer(options, app).listen(443);

0

এক্সপ্রেস ৪.০ এর জন্য এটি আমার কাজের কোড

এক্সপ্রেস ৪.০ 3.0 এবং অন্যদের থেকে খুব আলাদা।

৪.০ আপনার / বিন / www ফাইল রয়েছে যা আপনি এখানে https যুক্ত করতে যাচ্ছেন।

"এনপিএম স্টার্ট" হ'ল স্ট্যান্ডার্ড উপায় আপনি 4.0.০ সার্ভার এক্সপ্রেস শুরু করেন।

readFileSync () ফাংশনটিতে __ ডিরেক্টরি ব্যবহার করে বর্তমান ডিরেক্টরি পাওয়া উচিত

যখন প্রয়োজন () ব্যবহার করুন। / বর্তমান ডিরেক্টরি দেখুন।

প্রথমে আপনি private.key এবং public.cert ফাইলটিকে / বিন ফোল্ডারের নীচে রাখবেন, এটি ডাব্লুডাব্লুডাব্লু ফাইলের মতো একই ফোল্ডার

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