ASP.NET Core MVCのアプリケーションからHerokuのPostgerSQLに接続するときにハマったためメモを残す。
環境
Heroku
- Region:United States
- Stack:container
- Framework:Container
- Heroku Postgres
ASP.NET Core MVC
- TargetFramework:netcoreapp3.1
- Microsoft.EntityFrameworkCore:3.1.8
- Npgsql.EntityFrameworkCore.PostgreSQL:3.1.4
現象
HerokuにデプロイしたアプリケーションからPostgreSQLに接続する際に下記の例外が発生した。(シークレットはXXXXXXXに書き換えている)
|
|
解決方法
調べたところHerokuのPostgerSQLに接続するときにはSSLが必須とドキュメントに記載されている。
SSL接続にはSSL検証する方法としない方法がある。
ここではSSL検証しない方法を記載する。
ASP.NET Core MVCアプリケーションのPostgreSQL接続にはNpgsqlを使用している。
SSL接続は接続文字列で有効にできる。
接続文字列を
appsettings.json
に記述する場合は以下のようになる。
|
|
- ポイントは
SSL Mode=Require;
とTrust Server Certificate=true;
の2つ。 - SSL接続を有効にするため
SSL Mode=Require;
を記述する。 - また、SSL検証をしない場合は
Trust Server Certificate=true;
が必要だとNpgsqlのドキュメントに記載されている。
以上