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

推薦する

Centos Docker ブリッジ モードでホスト Redis サービスにアクセスできないというトラブルシューティングの経験

背景:以前、コンテナ内のホストが提供する Redis サービスにアクセスする必要があるプロジェクトを...

HTML の表のフレームとルール属性の詳細な説明

テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...

Linux に MySQL 8.0.19 をインストールするための詳細な手順と問題解決方法

最近Tencent Cloudサーバーを購入し、環境を構築しました。このメモは、これまで MySQL...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...

MySQLトランザクションを実行するための構文とプロセスの詳細な説明

概要: MySQL は、トランザクションをサポートするためにさまざまなストレージ エンジンを提供しま...

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

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

Nginx を使用してグレースケール リリースを実装する

グレースケールリリースとは、白と黒をスムーズに移行できるリリース方法を指します。 ABテストとは、グ...

mysqlreplicate を使って MySQL マスタースレーブを素早く構築する方法

導入mysql-utilities ツールセットは、DBA のツールボックスとも言えるさまざまなツー...

Centos 7.4 でリモート アクセス制御を実装する方法

1. SSHリモート管理SSH はセキュア チャネル プロトコルであり、主にリモート ログイン、リモ...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

Vue3における非親子コンポーネント通信の詳細な説明

目次最初の方法アプリ.vueホーム.vueホームコンテンツ.vueデータの応答性レスポンシブプロパテ...

MySQL 学習ノート: データ エンジン

現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...

CSSカスタムプロパティの予備的な理解

現在、CSS プリプロセッサは Web 開発の標準となっています。 プリプロセッサの主な利点の 1 ...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...