次の方法で共有


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 と共に使用する場合は、エクスポートされる証明書ファイルの形式を指定します。 有効な値は PFXPEM です。大文字と小文字は区別されません。 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
    

こちらもご覧ください