Angular CLI で HTTPS 経由で ng serve を実行する方法: Nginx または Apache で Web サーバーをセットアップ
Angular CLI で HTTPS 経由で ng serve を実行する方法
このチュートリアルでは、Angular CLI を使って HTTPS 経由で ng serve コマンドを実行する方法を説明します。
前提条件
- Node.js と npm がインストールされていること
- Angular CLI がインストールされていること
- SSL 証明書と鍵を持っていること
手順
- SSL 証明書と鍵を生成する
まだ SSL 証明書と鍵を持っていない場合は、 OpenSSL のようなツールを使用して自己署名証明書を生成する必要があります。
- ng serve コマンドを実行する
以下のコマンドを実行して、HTTPS 経由で ng serve を起動します。
ng serve --ssl --ssl-cert path/to/your-certificate.pem --ssl-key path/to/your-key.pem
--ssl
フラグは、HTTPS を使用することを指示します。--ssl-cert
フラグは、SSL 証明書へのパスを指定します。
例
以下のコマンドは、my-certificate.pem
ファイルと my-key.pem
ファイルを使用して、ポート 443 で HTTPS 経由で ng serve を起動します。
ng serve --ssl --ssl-cert my-certificate.pem --ssl-key my-key.pem --port 443
- デフォルトでは、ng serve は HTTP ポート 4200 で起動します。
- HTTPS を使用すると、開発サーバーへの接続がより安全になります。
- 自己署名証明書を使用している場合は、ブラウザで警告が表示される場合があります。 これは正常な動作なので、無視して問題ありません。
トラブルシューティング
問題が発生している場合は、以下の点を確認してください。
- SSL 証明書と鍵が正しい場所にあり、有効であること
- ng serve コマンドが正しい構文で使用されていること
- ブラウザが HTTPS 接続をサポートしていること
ng serve --ssl --ssl-cert my-certificate.pem --ssl-key my-key.pem --port 443
説明
--port
フラグは、開発サーバーが使用するポートを指定します。
この例では、my-app
という名前の Angular アプリケーションを開発しています。
- 以下のコマンドを実行して、SSL 証明書と鍵を生成します。
openssl req -x509 -newkey rsa:4096 -keyout my-key.pem -out my-certificate.pem -days 365
ng serve --ssl --ssl-cert my-certificate.pem --ssl-key my-key.pem --port 443
ブラウザで https://localhost:443
にアクセスすると、Angular アプリケーションが表示されます。
- この例では、自己署名証明書を使用しています。 本番環境では、信頼できる認証局から発行された証明書を使用する必要があります。
- ポート 443 は、HTTPS のデフォルトポートです。 他のポートを使用したい場合は、
--port
フラグを使用して指定できます。
Nginx または Apache などの Web サーバーをセットアップして、HTTPS 経由で Angular アプリケーションを提供することができます。
この方法の利点は、以下のとおりです。
- SSL 証明書と鍵を ng serve コマンドで指定する必要がない
- アプリケーションを複数のドメインまたはサブドメインで提供できる
Webpack Dev Server を使用する
Webpack Dev Server は、開発時に Webpack を使用するためのツールです。 Webpack Dev Server は HTTPS をサポートしており、ng serve コマンドよりも多くの機能を提供しています。
Webpack Dev Server を使用するには、以下の手順が必要です。
- Webpack Dev Server をインストールします。
npm install webpack-dev-server --save-dev
webpack.config.js
ファイルを作成します。
const webpack = require('webpack');
const devServer = require('webpack-dev-server');
module.exports = {
mode: 'development',
devServer: {
https: true,
port: 443,
sslCert: path.resolve(__dirname, 'my-certificate.pem'),
sslKey: path.resolve(__dirname, 'my-key.pem'),
},
// ... その他の Webpack 設定
};
- 以下のコマンドを実行して、Webpack Dev Server を起動します。
npx webpack-dev-server
Cloud プラットフォームを使用する
Firebase Hosting や Netlify などの Cloud プラットフォームを使用して、Angular アプリケーションをホストすることができます。
これらのプラットフォームは、HTTPS を含め、アプリケーションのデプロイとホスティングを簡単にする多くの機能を提供しています。
どの方法を選択するかは、ニーズと要件によって異なります。
- シンプルで簡単な方法を探している場合は、ng serve コマンドと自己署名証明書 を使用する方がよいでしょう。
- アプリケーションを複数のドメインまたはサブドメインで提供したい、またはリバースプロキシやキャッシュなどの機能を利用したい場合は、Nginx または Apache を使用する方がよいでしょう。
- より多くの機能と柔軟性を備えた開発サーバーが必要な場合は、Webpack Dev Server を使用する方がよいでしょう。
- アプリケーションを簡単にデプロイしてホスティングしたい場合は、Cloud プラットフォーム を使用する方がよいでしょう。
angular ssl https