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

推薦する

CSS セレクタのグループ化の簡単な分析

セレクタのグループ化h2 要素と段落の両方を灰色にしたいとします。これを行う最も簡単な方法は、次のス...

MySQLのビューの詳細な説明

ビュー: MySQL のビューはテーブルと多くの類似点があります。ビューも複数のフィールドと複数のレ...

Windows7 での Mysql5.7 my.ini ファイルの読み込みパスとデータの場所の変更方法

更新: MySQL の公式 Web サイトにアクセスして MySQL インストーラーをインストールし...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...

Vueプラグインの書き方を説明する記事

目次プラグインとはプラグインの作成プラグインの使用要約するプラグインとはVue フレームワークでは、...

CSSは複数の要素をボックスの両端に揃える効果を実現します

要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

MySQL 8.0.19 インストール詳細チュートリアル (Windows 64 ビット)

目次MySQLを初期化するMySQL サービスをインストール + MySQL サービスを開始MySQ...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

CSS3 を使用して 3D テキスト ホバー効果を実装するサンプル コード

この記事では、3D テキストのホバー変更効果を実現するための CSS3 のサンプル コードを紹介しま...

Docker コンテナで ASP.NET Core を実行する手順

最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamari...

TypeScript のクラス

目次1. 概要2. シンプルなクラスを定義する3. 継承4. public、private、prot...

テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

MySQL 5.7.18 インストーラーのインストール ダウンロード グラフィック チュートリアル

この記事では、MySQL 5.7.18インストーラーの詳細なインストールチュートリアルを参考までに記...

JavaScriptの無限ループを検出して防止する方法の詳細な説明

目次序文for文の無限ループを修正while文の無限ループを修正要約する序文Js デッド ループはど...