スポンサーリンク
スポンサーリンク

https -> Nginx+SSL -> リバースプロキシ -> http -> ASP.NET Core を構築する手順

.NET CoreASP.NET CoreLinux・ShellNginxOpenSSLセキュリティ対策

外部からの接続はhttpsで処理し、NginxからASP.NET Coreへの内部接続はhttpで処理する。
Nginx -> リバースプロキシ -> ASP.NET Core の環境では、NginxだけSSLに対応すれば良く、ASP.NET Coreプロジェクトをhttps構成にする必要は無い。
リバースプロキシサーバーはパフォーマンスの面から、ApacheではなくNginxを使うのが望ましい。

【環境】
OS: CentOS Linux release 7.6.1810 (Core)
Nginx: nginx.x86_64 1:1.17.2-1.el7.ngx
ASP.NET Core: 2.2.6
マシンIP: 192.168.11.31

【手順】

1. workディレクトリ作成

1-1. Webアプリデプロイ先のフォルダ作成。

1-2. ssl key 配置用。

2. ユーザ追加

nginxの実行ユーザ変更用にユーザを追加。
nologinを指定して、コンソールからnginxuserユーザでログインはさせない。

3. ファイアウォール無効化

一旦、無効にしておく。

3-1. firewalld自動起動停止

4. SELinux無効化

一旦、無効にしておく。

5. OS再起動

6. SSL証明書 作成

テスト用のSSL証明書をopensslで作成する。

7. ASP.NET Coreインストール

7-1. Add the dotnet product feed

7-2. Install the .NET Runtime

8. デプロイ(httpサイト)

Visual Studio で「ASP.NET Core Web アプリケーション」の新しいプロジェクト作成。
その際、「HTTPS用の構成」はチェックを外す。

プロジェクトの発行方法は「ファイルシステム」にして発行する。

9. WinSCPを使い、発行したファイルをWebアプリ配下にドッグ&ドロップして展開。

10. ASP.NET Core Webアプリ起動。

11. Nginx インストール

11-1. Nginxのリポジトリ情報を登録する

11-2. yumでインストール

11-3. 起動設定

Nginx のインストールが完了したら、コンピュータ起動時に自動的に Nginx が起動するように設定。

11-4. 起動

11-5. nginx.conf 設定

11-6. バーチャルホスト設定

11-7. 構文に問題が無いか確認。

11-8. nginx設定ファイル再読込み

12. 接続確認

12-1. 内部接続確認

別コンソールからWebページを表示。Htmlを標準出力に出力。
※UseUrls()をプログラムで設定していないので、ASP.NET Core Webアプリに外部から直接接続はできない。

12-2. 外部接続確認

 

コメント

タイトルとURLをコピーしました