dotnet dev-certs
この記事の対象: ✔️ .NET Core 3.1 SDK 以降のバージョン
名前
dotnet dev-certs
- 自己署名証明書が生成され、開発中に HTTPS を使用できるようになります。
構文
dotnet dev-certs https
[-c|--check] [--clean] [-ep|--export-path <PATH>]
[--format] [-i|--import] [-np|--no-password]
[-p|--password] [-q|--quiet] [-t|--trust]
[-v|--verbose] [--version]
dotnet dev-certs https -h|--help
説明
dotnet dev-certs
コマンドを使うと、自己署名証明書を管理し、ローカル Web アプリ開発中に HTTPS を使用できるようになります。 その主な機能は次のとおりです。
- 開発中に HTTPS エンドポイントで使用する証明書を生成する。
- ローカル コンピューターで生成した証明書を信頼する。
- ローカル コンピューターから生成した証明書を削除する。
- 証明書をさまざまな形式でエクスポートして、他のツールで使用できるようにする。
- ツールによって生成された既存の証明書をローカル コンピューターにインポートする。
コマンド
https
dotnet dev-certs
には 1 つのコマンドhttps
しかありません。 オプションを指定しないdotnet dev-certs https
コマンドでは、開発証明書がマシン上の現在のユーザーの証明書ストアに存在するかどうかを確認します。 コマンドで開発証明書が見つかると、次の例のようなメッセージが表示されます。A valid HTTPS certificate is already present.
コマンドで開発証明書が見つからない場合は、現在のユーザーの証明書ストア (
CurrentUser
という場所にあるMy
という名前のストア) に開発証明書が作成されます。 証明書の物理的な場所は、.NET ランタイムの実装の詳細であり、いつでも変更できます。 .NET 7.0 の macOS では、証明書はユーザー キー チェーンに、PFX ファイルとして格納されます (~/.aspnet/https-aspnetcore-localhost-<Thumbprint[0..5]>.pfx)。証明書の作成後、コマンドでは次の例のようなメッセージが表示されます。
The HTTPS developer certificate was generated successfully.
既定では、新しく作成された証明書は信頼されていません。 証明書を信頼するには、
--trust
オプションを使用します。他のツールで使用できるファイルを作成するには、
--export-path
オプションを使用します。
オプション
-c|--check
開発証明書の存在を確認しますが、何のアクションも実行しません。 このオプションを
--trust
オプションと共に使用すると、証明書が有効であるかだけでなく、信頼されているかどうかも確認できます。--clean
.NET 証明書ストア API を使って、証明書ストアからすべての HTTPS 開発証明書を削除します。
--export-path
オプションを使用して作成された物理ファイルは削除されません。 .NET 7.0 の macOS では、dotnet dev-certs
コマンドを実行するとディスク上のパスに証明書が作成され、クリーン操作ではその証明書ファイルが削除されます。証明書ストアに少なくとも 1 つの証明書がある場合、コマンドでは次の例のようなメッセージが表示されます。
Cleaning HTTPS development certificates from the machine. A prompt might get displayed to confirm the removal of some of the certificates. HTTPS development certificates successfully removed from the machine.
-ep|--export-path <PATH>
証明書をファイルにエクスポートして、他のツールで使用できるようにします。 エクスポートされた証明書ファイルへの完全なパスを指定します (ファイル名を含む)。 含まれるディレクトリは既に存在し、それらに対するアクセスを制限する必要があります。 作成される証明書ファイルの種類は、
--export-path
と共に使用するオプションによって異なります。オプション エクスポートされるもの --export-path
PFX ファイルとしての証明書の公開部分。 --export-path --format PEM
PEM 形式での証明書の公開部分。 個別の .key ファイルは作成されません。 --export-path --password
PFX ファイルとしての証明書の公開部分と非公開部分。 --export-path --password --format PEM
PEM 形式のファイルのペアとしての証明書の公開部分と非公開部分。 キー ファイルの拡張子は .key で、指定したパスワードで保護されます。 --export-path --no-password --format PEM
PEM 形式のファイルのペアとしての証明書の公開部分と非公開部分。 キー ファイルの拡張子は .key で、プレーンテキストでエクスポートされます。 --no-password
オプションは、内部テストのために使うことのみを目的としています。--format
--export-path
と共に使用する場合は、エクスポートされる証明書ファイルの形式を指定します。 有効な値はPFX
とPEM
です。大文字と小文字は区別されません。PFX
が既定値です。ファイル形式は、ファイル名拡張子とは無関係です。 たとえば、
--format pfx
と--export-path ./cert.pem
を指定すると、cert.pem という名前のファイルがPFX
形式で生成されます。このオプションを
--password
、--no-password
と共に使用した場合、またはこれらのオプションなしで使用した場合の効果については、この記事で前述した「--export-path」を参照してください。-i|--import <PATH>
指定した HTTPS 開発証明書をローカル コンピューターにインポートします。 既存の HTTPS 開発者証明書をクリアする
--clean
オプションも指定する必要があります。PATH
により、PFX 証明書ファイルへのパスを指定します。--password
オプションを使用してパスワードを指定します。-np|--no-password
証明書を PEM 形式のファイルにエクスポートする場合、キーに対してパスワードが使用されません。 キー ファイルはプレーンテキストでエクスポートされます。 このオプションは PFX ファイルには適用されず、内部テストのために使うことのみを目的としています。
-p|--password
次の場合に使用するパスワードを指定します。
- 開発証明書を PFX または PEM ファイルにエクスポートする場合。
- PFX ファイルをインポートする場合。
--format PEM
を指定してエクスポートする場合、証明書の公開部分と非公開部分は PEM 形式のファイルのペアとしてエクスポートされます。 キー ファイルの拡張子は .key で、指定したパスワードで保護されます。 このコマンドでは、--export-path
オプションに指定したファイル名に加えて、同じ名前で .key 拡張子を持つ別のファイルが同じディレクトリ内に作成されます。 たとえば、次のコマンドを実行すると、localhost.pem という名前のファイルと localhost.key という名前のファイルが /home/user ディレクトリに生成されます。dotnet dev-certs https --format pem -ep /home/user/localhost.pem -p $CREDENTIAL_PLACEHOLDER$
この例では、
$CREDENTIAL_PLACEHOLDER$
はパスワードを表します。-q|--quiet
警告とエラーのみを表示します。
-t|--trust
ローカル コンピューターで証明書を信頼します。
このオプションを指定しない場合、証明書は証明書ストアに追加されますが、信頼済みリストには追加されません。
--check
オプションと組み合わせると、証明書が信頼されていることを検証できます。-v|--verbose
デバッグ情報を表示します。
例
開発証明書が存在するかどうかを確認し、まだ存在しない場合は既定の証明書ストアに作成します。 ただし、証明書は信頼されません。
dotnet dev-certs https
ローカル コンピューターに既に存在する開発証明書をすべて削除します。
dotnet dev-certs https --clean
PFX ファイルをインポートします。
dotnet dev-certs https --clean --import ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$
前の例では、
$CREDENTIAL_PLACEHOLDER$
はパスワードを表します。信頼された開発証明書がローカル コンピューターに存在するかどうかを確認します。
dotnet dev-certs https --check --trust
証明書を作成し、信頼し、PFX ファイルにエクスポートします。
dotnet dev-certs https -ep ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$ --trust
証明書を作成し、信頼し、PEM ファイルにエクスポートします。
dotnet dev-certs https -ep ./certificate.crt --trust --format PEM
証明書を作成し、信頼し、秘密キーを含む PEM ファイルにエクスポートします。
dotnet dev-certs https -ep ./certificate.crt -p $CREDENTIAL_PLACEHOLDER$ --trust --format PEM
こちらもご覧ください
.NET