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 実装コード (border メソッド)

1. 単純な三角形を実装するCSS ボックス モデルの境界線を使用すると、次のような三角形を実現で...

Win10 での MySQL 8.0 ログインでユーザー 'root'@'localhost' のアクセスが拒否される (パスワード使用: YES) 問題の解決方法

最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...

テキストの展開と折りたたみの効果を実現するJavaScript

リスト形式のテキストの展開と折りたたみの実装は参考までに。具体的な内容は以下のとおりです。必要: 1...

CSS3アニメーションを使用した簡単な指クリックアニメーションの実装例

この記事では主に、CSS3 アニメーションで簡単な指クリックアニメーションを実装する例を紹介し、皆さ...

Vue の要素カレンダー コンポーネントを使用したサンプル コード

まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...

docker によってプルされたイメージがどこに保存されるかの詳細な説明

docker によってプルされたコマンドは、デフォルトでは /var/lib/docker/ フォル...

ウェブページ HTML 特殊記号 HTML 特殊文字比較表

特殊記号名前付きエンティティ10進数エンコード特殊記号名前付きエンティティ10進数エンコードアルファ...

VUE ユニアプリテンプレート構文についての簡単な説明

1.v-bind(略称:)コンポーネント プロパティのデータで定義されたデータ変数を使用するか、コン...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

HTML の類似タグと属性の違いの詳細な説明

【1】<i></i>タグと<em></em>タグ同じ...

Vue の計算プロパティの詳細な説明

目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...

IdeaはリモートDockerをデプロイし、ファイルを構成する

1. LinuxサーバーのDocker構成ファイルを変更する vim /usr/lib/system...

VueはGraphVisを使用して無限に拡張された関係グラフを開発します

1. GraphVis 公式サイトにアクセスして、対応する js をダウンロードします。js の新し...

簡単な約束を段階的に実行する方法を教えます

目次ステップ1: フレームワークを構築するステップ2 構築されたPromiseフレームワークに入力す...

jQueryで大画面スクロール再生効果を実現

この記事では、大画面スクロール効果を実現するためのjQueryの具体的なコードを参考までに紹介します...