シンプルアプリケーションサーバーにドメイン名がバインドされている場合は、そのドメイン名に対して HTTPS アクセスを有効にすることができます。 この方法で、データ転送プロトコルを低コストで HTTP から HTTPS に変換し、Web サイトの認証と暗号化データ転送を実装できます。 これにより、データ転送中のデータの改ざんや漏洩を防ぎます。 このトピックでは、Node.js ランタイム環境がインストールされているシンプルアプリケーションサーバーに SSL 証明書をインストールし、HTTPS アクセスを有効にする方法について説明します。
前提条件
ドメイン名が購入されていること。 Alibaba Cloud からドメイン名を購入する方法の詳細については、「汎用ドメイン名を登録する」をご参照ください。
シンプルアプリケーションサーバーが中国本土リージョンにある場合は、シンプルアプリケーションサーバーにバインドされているドメイン名に対してインターネットコンテンツプロバイダー(ICP)ファイリングを取得する必要があります。 詳細については、「ICP ファイリングとは」をご参照ください。
ドメイン名がシンプルアプリケーションサーバーにバインドされ、解決されていること。 詳細については、「ドメイン名をバインドして解決する」をご参照ください。
背景情報
Node.js は、高速でスケーラブルなネットワークアプリケーションを簡単に構築するために Chrome V8 の JavaScript ランタイム上に構築されたプラットフォームです。 Node.js は、イベント駆動型でノンブロッキング I/O モデルを使用しており、軽量で効率的です。 Node.js は、分散デバイス上で実行されるデータ集約型のリアルタイムアプリケーションに最適です。 詳細については、「Node.js 公式 Web サイト」をご参照ください。
Alibaba Cloud Certificate Management Service を使用して証明書を申請および購入し、Web サーバーにデプロイすると、Web サービスは HTTPS 経由でデータを転送します。 HTTPS を使用すると、SSL 経由の暗号化チャネルがアクティブ化され、クライアントブラウザから Web サーバーにデータが転送されます。 これにより、単方向の暗号化転送が可能になり、転送中のデータが改ざんされたり傍受されたりするのを防ぎます。 HTTPS 転送は、App Store やアプリケーションエコシステムで公開されるアプリ、ミニプログラム、プログラム、およびコントロールの必須機能です。 HTTPS 転送は、Web サイトに次の利点をもたらします。
セキュリティコンプライアンス:HTTPS 転送により、Web サイトは App Store やアプリケーションエコシステムの要件を満たすことができます。
ネットワークデータの暗号化転送:HTTPS 転送は、ユーザーと Web サイト間のデータ通信を暗号化し、転送されるデータが傍受、改ざん、盗聴されるのを防ぎ、転送されるデータのセキュリティを確保します。
Web サイトの高いセキュリティ:HTTPS 転送は、フィッシングイベントを防ぎます。 ユーザーが Web サイトにアクセスすると、ブラウザは Web サイトが安全で信頼できることを示すメッセージを表示します。 これにより、Web サイトの信頼性、アクセストラフィック、検索ランキングを向上させることができます。
詳細については、「Certificate Management Service とは」をご参照ください。
ステップ 1:Node.js シンプルアプリケーションサーバーを作成する
シンプルアプリケーションサーバーコンソールの Servers ページ に移動します。
[サーバーの作成] を [サーバー] ページの右上隅でクリックします。 シンプルアプリケーションサーバーの購入ページで、ビジネス要件に基づいてパラメーターを設定します。
詳細については、「シンプルアプリケーションサーバーを作成する」をご参照ください。
[イメージ] セクションの [アプリイメージ] タブで、Node.js 16.5.0 アプリケーションイメージを選択する必要があります。
ステップ 2: SSL 証明書の購入
証明書の購入
証明書管理サービスコンソールの 今すぐ購入 ページにアクセスします。
ビジネス要件に基づいて、購入する証明書の仕様を選択します。
パラメーター
説明
例
証明書の種類
証明書をバインドするドメイン名 の種類を指定します。有効な値:
単一ドメイン: この値を選択した場合、証明書を単一のドメイン名にバインドできます。
ワイルドカードドメイン: 同じレベルのワイルドカードサブドメインを使用する複数のサーバーがある場合は、1 つの証明書のみを購入してインストールする必要があります。サブドメインごとに証明書を購入してインストールする必要はありません。
ワイルドカードドメイン名の照合ルールを以下に示します。
同じレベルのサブドメインのみが照合されます。異なるレベルのサブドメインは照合されません。たとえば、証明書を *.aliyundoc.com にバインドすると、demo.aliyundoc.com や learn.aliyundoc.com などのサブドメインが照合されます。guide.demo.aliyundoc.com や developer.demo.aliyundoc.com などのサブドメインは照合されません。
1 つのワイルドカードドメイン名にバインドされた証明書を申請できます。複数のワイルドカードドメイン名にバインドされた証明書を申請することはできません。複数のワイルドカードドメイン名を証明書にバインドする場合は、同じブランドと種類の複数の証明書を組み合わせて、マルチドメインワイルドカード証明書を生成できます。詳細については、「証明書の組み合わせ」をご参照ください。
複数ドメイン: この値を選択した場合、複数の単一ドメイン名を証明書にバインドできます。1 つの証明書に最大 5 つの単一ドメイン名をバインドできます。
説明SSL 証明書を正常に購入した後、無料ドメイン名のルールに準拠している場合、Alibaba Cloud は対応する無料ドメイン名を提供します。
単一ドメイン
ブランド
証明書のブランドを選択します。証明書のブランドは、証明書を発行する認証局 (CA) です。
証明書のブランドの詳細については、「SSL 証明書の選択」をご参照ください。
Digicert
証明書の仕様
証明書の仕様を選択します。
証明書の仕様の詳細については、「SSL 証明書の選択」をご参照ください。
DV SSL
ドメイン名
このパラメーターは、[証明書の種類] パラメーターを [複数ドメイン] に設定した場合にのみ必須です。証明書をバインドするドメイン名 の数を指定します。
1
数量
購入する証明書 の数を指定します。デフォルト値は 1 で、変更できません。複数の証明書を購入する場合は、[サービス期間] パラメーターを設定します。たとえば、[サービス期間] パラメーターを [2 年] に設定すると、2 つの証明書が提供されます。各証明書の有効期間は 1 年です。
1
サービス期間
証明書サービスの有効期間を選択します。有効な値:
1 年: 証明書サービスを 1 年間使用できます。このサービスは、有効期間が 1 年の証明書を提供します。証明書のデフォルトの有効期間は 1 年です。証明書の有効期限が切れたら、新しい証明書を購入するために新しい注文を行う必要があります。
2 年: 証明書サービスを 2 年間使用できます。証明書サービスは、2 つの証明書と 1 つのホスティングクォータを提供します。各証明書の有効期間は 1 年です。
証明書ホスティング機能の詳細については、「証明書ホスティング機能の概要」をご参照ください。
3 年: 証明書サービスを 3 年間使用できます。証明書サービスは、3 つの証明書と 2 つのホスティングクォータを提供します。各証明書の有効期間は 1 年です。
1 年
[今すぐ購入] をクリックし、支払いを完了します。
証明書の申請
証明書管理サービスコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[SSL 証明書] ページの 公式証明書 タブで、申請する証明書を見つけ、[アクション] 列の 証明書申請 をクリックします。
証明書申請 パネルで、ビジネス要件に基づいてパラメーターを設定し、[クイック発行] チェックボックスをオンにして、[送信] をクリックします。
パラメーター
説明または例
証明書タイプ
単一ドメイン
証明書の仕様
DigiCert DV
ドメイン名
証明書をバインドする Node.js シンプル アプリケーション サーバー のドメイン名を入力します。例: aliyundoc.com。
年
1
クイック発行
ドメイン検証方法
証明書の申請者の Alibaba Cloud アカウント内で Alibaba Cloud DNS が有効になっている場合、証明書を申請すると、証明書管理サービスは自動的にドメイン名を識別します。DNS 自動検証 が自動的に選択され、変更できません。証明書が発行されるまで待ちます。
証明書の申請者の Alibaba Cloud アカウント内で Alibaba Cloud DNS が有効になっていない場合、次のいずれかの方法を使用してドメイン名の所有権を確認できます。
DNS 手動検証: 検証を完了するには、DNS サービス プロバイダー のシステムで、ドメイン名 の TXT レコードを手動で追加する必要があります。
ファイル検証: 証明書管理サービスコンソールから専用の検証ファイルをダウンロードし、Web サーバー の必要な検証ディレクトリにファイルをアップロードする必要があります。
連絡先
[連絡先] ドロップダウンリストで、[連絡先の作成] をクリックして、証明書の申請の連絡先を作成します。既存の連絡先を選択することもできます。
連絡先情報が正確で有効であることを確認してください。
場所
証明書の申請者の市区町村または地域を選択します。
暗号化アルゴリズム
証明書の暗号化アルゴリズムを指定します。デフォルト値は RSA で、変更できません。Rivest-Shamir-Adleman (RSA) アルゴリズムは、広く使用されている非対称アルゴリズムであり、高い互換性を提供します。
CSR 生成
証明書署名リクエスト (CSR) ファイルを生成する方法を指定します。CSR ファイルは、証明書の申請者のサーバーと会社情報を含むリクエストファイルです。証明書を申請する場合は、CA が審査するための CSR ファイルを準備する必要があります。
[自動] を選択すると、証明書管理サービスは設定した暗号化アルゴリズムを使用して CSR ファイルを生成します。
[ドメイン検証方法] パラメーターが [DNS 自動検証] に設定されている場合、システムは DNS 検証を完了し、証明書が発行されるまで待つだけです。[ドメイン検証方法] パラメーターが [DNS 手動検証] または [ファイル検証] に設定されている場合は、[情報の検証] パラメーターに基づいてドメイン名 の所有権を手動で検証する必要があります。詳細と一般的なエラーについては、「ドメイン名の所有権の検証」をご参照ください。
申請を送信した後、CA が申請を審査して証明書を発行するまで約 30 分待ちます。証明書が発行されると、証明書のステータスは [発行済み] に変わります。
ステップ 3:SSL 証明書を設定する
証明書が発行されると、証明書の[ステータス] の値が[発行済み] に変わります。証明書をダウンロードして設定する必要があります。詳細については、「SSL 証明書をデプロイする」をご参照ください。
証明書をダウンロードします。
[公式証明書] タブの [SSL 証明書] [管理] ページで、ダウンロードする証明書を見つけ、証明書リストの下部にある [ダウンロード] をクリックします。
説明[発行済み]、[期限切れ間近]、または [期限切れ] 状態の SSL 証明書のみダウンロードできます。
[証明書の一括ダウンロード] ダイアログボックスで、サーバーの種類に基づいてパッケージをダウンロードします。
このトピックでは、NGINX を使用してデータを転送するために NGINX パッケージをダウンロードします。
警告パッケージをダウンロードしたら、証明書の漏洩による Web サイトへの攻撃を防ぐために、適切に保管してください。

パッケージを解凍すると、次の図に示すように、2 つのファイルが表示されます。

WinSCP や Xshell などのツールを使用して、.key 証明書ファイルと .pem 証明書ファイルを、Node.js シンプルアプリケーションサーバーの /home などの指定されたディレクトリにアップロードします。
シンプルアプリケーションサーバーに接続します。詳細については、「Linux サーバーに接続する」をご参照ください。
次のコマンドを実行して、https_server_test.js という名前のファイルを作成します。
cd /home sudo touch https_server_test.js次のコマンドを実行して、https_server_test.js ファイルを変更します。
vim https_server_test.jsi キーを押して編集モードに入り、https_server_test.js ファイルに次のサンプルコンテンツを追加します。
// https サービスを開始するには、https パッケージが必要です。 // ファイルを読み取るには、fs パッケージが必要です。 const https = require('https'); const fs = require('fs'); // ファイルを読み取り、options オブジェクトに書き込みます。 // readFileSync() メソッドを使用してファイルを読み取り、https サービスを開始します。 const options = { key: fs.readFileSync('/home/cert-file-name.key'), cert: fs.readFileSync('/home/cert-file-name.pem') }; // サーバーを作成し、サーバーを起動し、サーバーのリスニングポート番号を設定します。 https.createServer(options, (req, res) => { res.end('hello world\n'); }).listen(443);パラメータの説明:
/home/cert-file-name.key: .key 証明書ファイルの絶対パス。
/home/cert-file-name.pem: .pem 証明書ファイルの絶対パス。
重要証明書を正しく設定し、HTTPS 経由でアクセスできるようにするには、証明書ファイルのパスを正しく設定する必要があります。
上記のコンテンツを追加した後、
Escキーを押して編集モードを終了します。次に、:wqと入力し、Enterキーを押してファイルを保存して終了します。次のコマンドを実行して、証明書をアクティブにします。
sudo node https_server_test.jsブラウザを使用して
https://<シンプルアプリケーションサーバーのドメイン名>にアクセスします。ブラウザのアドレスバーにロックアイコンが表示されている場合は、証明書がインストールされています。

ドメイン名に HTTPS 経由でアクセスできない場合は、ポート 443 が有効になっており、シンプルアプリケーションサーバー上の他のツールによってブロックされていないことを確認してください。ポート 443 を有効にする方法の詳細については、「シンプルアプリケーションサーバーのファイアウォールを管理する」をご参照ください。