koa2 サービスに SSL を設定する方法

koa2 サービスに SSL を設定する方法

I. はじめに

1: SSL証明書

私のドメイン名は Tencent Cloud にあります。第 3 レベルのドメイン名 (aaa.jiangw1.com と仮定) を作成するたびに、1 年間の SSL が付与されます。申請が成功すると、次のように SSL 証明書をダウンロードできます。

各種サーバーファイルが用意されていることがわかります。赤丸で囲った共通SSLファイルはノードサービスに使用できます。

2: 分析

aaa.jiangw1.com: レコードタイプにA、レコード値にサーバーのパブリックIPを入力します。

2: コード

以下のコードは koa2 プロジェクトに限定されており、他のノード プロジェクトでも同様です。

1: 依存関係をインストールする

npm をインストールします。
npm インストール koa2-cors

2: app.js を追加

const app = new Koa();
koa2-cors を require します。
sslify を require('koa-sslify').default に設定します。

// SSL を使用する
app.use(sslify());

// クロスドメイン設定 app.use(cors({
  原点: 関数 (ctx) {
    ctx.header.origin を返します。
  }
}))

3: binフォルダの変更

新しい ssl フォルダーを作成し、.key ファイルと .pem ファイルを SSL 証明書に配置します。

bin/www を次のように変更します。

var https = require("https");
var fs = require("fs");
var パス = require("パス");
/**
 * HTTP サーバーを作成します。
 */
// SSL オプション
var オプション = {
  キー: fs.readFileSync(path.join(__dirname, './ssl/aaa.jiangw1.com.key')),
  証明書: fs.readFileSync(path.join(__dirname, './ssl/aaa.jiangw1.com.pem'))
};
// var server = http.createServer(app.callback());
var httpsServer = https.createServer(options, app.callback());
httpsServer.listen(ポート、(エラー) => {
  もし(エラー){
    console.log('サーバー初期化エラー', err);
  } それ以外 {
    console.log('サーバーはポートで実行されています:' + ポート);
  }
});
httpsServer.on('エラー', onError);
httpsServer.on('listening', onListening);
/**
 * HTTP サーバーの「リスニング」イベントのイベント リスナー。
 */
関数 onListening() {
  // var addr = server.address();
  var addr = httpsServer.address();
  var bind = typeof addr === '文字列'
    ? 'パイプ' + アドレス
    : 'ポート' + addr.port;
  debug(' ' + bind でリッスン中);
}

4: 開始

ローカルスタートアップ:
ブラウザを開き、https://localhost:3010 にアクセスします。アクセスできれば、ローカル構成が成功したことを意味します。ドメイン名が無効であることを示すメッセージが表示されます。
サーバーの起動:
ソースコードをアップロードしたら、pm2 でサービスを起動し、ブラウザで aaa.jiangw1.com にアクセスします。アクセスできれば、ローカル構成が成功していることになります。

3: メモ

  • Linuxサーバーはポート443を開く必要がある
  • SSL証明書ファイルは正確に設定する必要があります
  • ノードサービスのポートを公開する必要がある
  • ドメイン名解決は正確に入力する必要があります

koa2 サービスの SSL 設定方法についてはこれで終わりです。koa2 サービスの SSL 設定の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • axios の Cookie 設定の詳細説明 (axios+koa)
  • Vue SSR (Vue2 + Koa2 + Webpack4) 設定ガイドの詳細説明
  • Vue+Koa に基づく pm2 構成の詳細な説明
  • クライアント(vueフレームワーク)とサーバー(koaフレームワーク)の通信とサーバーのクロスドメイン構成の詳細な説明

<<:  MySQL ビッグデータ クエリ最適化エクスペリエンスの共有 (推奨)

>>:  Spark と Scala を使用して Apache アクセス ログを分析する方法

推薦する

JavaScript 関数構文の説明

目次1. 通常の機能2. 矢印関数3. データパケットJSON 4. オブジェクト5. 約束6. 非...

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作...

今日、私は非常に奇妙なクリックの問題に遭遇し、自分で解決しました

...こんな感じで、今日はポップアップウィンドウを作ろうと思ったのですが、バックエンド PHP によ...

スクロールバーを非表示にしてコンテンツをスクロールする CSS サンプルコード

序文ページの HTML 構造にネストされたボックスが多数含まれている場合、ページに複数の垂直スクロー...

MySQL 8.0.25 解凍版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

[LeetCode] 175.2つのテーブルを結合する表: 人物+-------------+--...

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

MySQL Community Server 8.0.12 のインストールと設定方法のグラフィックチュートリアル

MySQL 8 は、NoSQL、JSON などのサポートなど、まったく新しいエクスペリエンスをもたら...

CentOS7.4 に MySQL 5.7.26 をインストールするための詳細なチュートリアル

CentOS にはデフォルトで MariaDB がインストールされていますが、これは MySQL の...

HTML における iFrame タグの 2 つの使用法

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

VirtualBox は CentOS7 仮想マシンと拡張ツールをインストールします (画像とテキスト)

コンピュータシステム: win7この記事は主に写真に基づいており、多くの写真が含まれていますCent...

ローカル yum ソースの設定、国内 yum ソースの設定、epel ソースの設定を行う Linux の手順

1. ローカルyumソースを設定する1. ISOイメージをマウントする マウント -o loop /...

JavaScript は自由に移動するウィンドウのマウス制御を実装します

この記事では、フリーウィンドウのマウス制御を実現するためのJavaScriptの具体的なコードを参考...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...