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 アクセス ログを分析する方法

推薦する

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

Ubuntu Dockerのインストールと使い方

目次1. 公式インストールスクリプトを使用した自動インストール手動インストール古いバージョンをアンイ...

ウェブサイトはいつ広告を掲載すべきでしょうか?

最近、インターネットのベテランと「広告」について議論したのですが、彼から非常に興味深い意見を聞きまし...

Alibaba Cloud centos7にmysql8.0.22をインストールする詳細なチュートリアル

1. MySQLインストールパッケージをダウンロードするまず、https://dev.mysql.c...

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

タブステータスバーの切り替え効果を実現するための js と jQuery

今日は、タブ バーをクリックして切り替えるという目的を実現するために、js と jQuery を使用...

WeChatアプレットのスクロールビューは、プルアップ時にデータの読み込みを重複させるソリューションを実装しています。

WeChat アプレットのスクロール ビューでは、プルアップして読み込むときにバグが多く発生します...

JS でシンプルな画像カルーセル効果を実現

この記事では、シンプルな画像カルーセル効果を実現するためのJSの具体的なコードを参考までに紹介します...

JavaScript オブジェクト指向クラス継承ケースの説明

1. オブジェクト指向のクラス継承これまでの章では、JavaScript のオブジェクト モデルがプ...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

ウェブページの最も基本的なコード

◆お気に入りに追加例示するクリックすると、ブラウザのお気に入りメニューにウェブサイトが追加されます...

Centos7環境でMySQL 5.6のインスタンスを複数作成する方法の詳細な説明

この記事では、CentOS 7 環境で MySQL 5.6 の複数のインスタンスを作成する方法につい...

HTMLでカスタムタグを使用する方法

カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...

Vue でメニュー権限制御を実装するためのサンプルコード

バックエンド管理システムで作業している場合、通常、メニュー権限制御に関連する問題に遭遇します。もちろ...