ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejs Expressで自己署名httpsサーバーを構成する手順の詳細な説明

Nodejs Expressで自己署名httpsサーバーを構成する手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-24 10:04:341679ブラウズ

今回は、nodejs Expressで自己署名httpsサーバーを構成する手順について詳しく説明します。nodejs Expressで自己署名httpsサーバーを構成する際の注意事項は何ですか。見てください。

nodejs でフレームワークを構築するために Express を使用するのは非常に簡単で便利ですが、一般に http サーバーはデフォルトで作成されます。つまり、http プロトコル経由でのみアクセスできます。最近では https が開発のトレンドになっており、時代の流れに従う必要があります。この記事では、自己署名方式を使用して証明書を作成し、次に Express フレームワークを使用して https サーバーを構築し、最後にブラウザーまたは クライアントがアクセスに https プロトコルを使用できるようにします。

まず、証明書ファイルを生成する必要があります:

(1) 秘密鍵キー ファイルを生成します (以下のパスは、保存するファイル パスの場所を示します)

openssl genrsa 1024 > /pathway/private.pem

(2)上記で生成された秘密鍵ファイル

 openssl req -new -key /pathway/private.pem -out csr.pem

(3) 上記の秘密鍵ファイルと CSR 証明書の署名を使用して証明書ファイルを生成します

コードをコピーします コードは次のとおりです:

openssl x509 -req -days 365 -in csr .pem -signkey /pathway/private.pem - out /pathway/file.crt

この時点で生成される 3 つのファイルは次のとおりです。

これら 3 つのファイルを、nodejs プロジェクト ディレクトリにコピーします。プロジェクトのルート ディレクトリに新しい証明書ファイルを直接作成し、次の 3 つのファイルを追加します。

上記の手順を完了したら、プロジェクトのスタートアップ ファイルを変更します。ここでは app.js を使用します。次のコード実装は同じです:

var express = require('express'); // 项目服务端使用express框架 
var app = express(); 
var path = require('path'); 
var fs = require('fs'); 
 
//使用nodejs自带的http、https模块 
var http = require('http'); 
var https = require('https'); 
 
//根据项目的路径导入生成的证书文件 
var privateKey = fs.readFileSync(path.join(dirname, './certificate/private.pem'), 'utf8'); 
var certificate = fs.readFileSync(path.join(dirname, './certificate/file.crt'), 'utf8'); 
var credentials = {key: privateKey, cert: certificate}; 
 
var httpServer = http.createServer(app); 
var httpsServer = https.createServer(credentials, app); 
 
//可以分别设置http、https的访问端口号 
var PORT = 8000; 
var SSLPORT = 8001; 
 
//创建http服务器 
httpServer.listen(PORT, function() { 
  console.log('HTTP Server is running on: http://localhost:%s', PORT); 
}); 
 
//创建https服务器 
httpsServer.listen(SSLPORT, function() { 
  console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT); 
}); 
 
//可以根据请求判断是http还是https 
app.get('/', function (req, res) { 
  if(req.protocol === 'https') { 
    res.status(200).send('This is https visit!'); 
  } 
  else { 
    res.status(200).send('This is http visit!'); 
  } 
});

コードが実装されたら、app.js スクリプトを開始します。「node app.js」コマンドを使用して開始するか、実行します。他の IDE にアクセスし、ブラウザでアクセスします (Express はシステムの組み込みモジュールではないため、npm を介してインストールする必要があることに注意してください) :

http visit:

https visit:

https を使用してサーバーにアクセスできていることがわかりますが、Chrome ブラウザには赤色の「安全ではありません」と表示されます。これは、この証明書が自分たちで作成したものであり、サードパーティ組織によって検証されていないためです。という警告が表示されます。認定証の申請方法については次回のブログで紹介します。

Chrome ブラウザで開発者モードを開くと、以下に示すように、[セキュリティ] ページで現在のページの証明書情報が表示されます:

[証明書の表示] をクリックして、証明書の詳細を確認します:

詳細を展開すると、証明書の作成時に入力したさまざまな証明書情報が表示されます。

同時に、Postman を使用してクライアントのリクエストをシミュレートすることもできます (実際の開発では、サーバーの学生が証明書をクライアントの学生に送信でき、簡単な設定後に https 通信を実現できます):

http リクエスト:

https リクエスト:

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

centos でゴースト ブログを構築する手順を共有する


Node.js での https ユースケースの分析

Chart.js 軽量HTML5チャート描画ツールライブラリの使用手順を詳しく解説

以上がNodejs Expressで自己署名httpsサーバーを構成する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。