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 只有一個命令:https。 沒有選項的 dotnet dev-certs https 命令會檢查電腦上目前使用者的憑證存放區中是否有開發憑證。 如果命令找到開發憑證,則會顯示類似下列範例的訊息:

    A valid HTTPS certificate is already present.
    

    如果命令找不到開發憑證,則會在目前使用者的憑證存放區中建立一個。該存放區名為 My,位於 CurrentUser。 憑證的實體位置是 .NET 執行階段的實作詳細資料,可以隨時變更。 在 macOS 上的 .NET 7.0 中,憑證會儲存在使用者金鑰鏈中,並以 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 選項建立的任何實體檔案。 在 macOS 上的 .NET 7.0 中,dotnet dev-certs 命令會在磁碟上的路徑建立憑證,而清除作業會移除該憑證檔案。

    如果憑證存放區中至少有一個憑證,命令會顯示類似下列範例的訊息:

    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 開發憑證匯入本機電腦。 您也必須指定 --clean 選項,以清除任何現有的 HTTPS 開發人員憑證。

    PATH 會指定 PFX 憑證檔案的路徑。 請使用 --password 選項提供密碼。

  • -np|--no-password

    將憑證匯出為 PEM 格式檔案時,不會使用金鑰的密碼。 金鑰檔案會以純文字匯出。 此選項不適用於 PFX 檔案,僅供內部測試使用。

  • -p|--password

    指定要使用的密碼:

    • 將開發憑證匯出為 PFX 或 PEM 檔案時。
    • 匯入 PFX 檔案時。

    使用 --format PEM 匯出時,憑證的公開和私密部分會匯出為 PEM 格式的一組檔案。 金鑰檔案的副檔名會是 .key,並受到指定密碼的保護。 除了為 --export-path 選項指定的檔案名稱之外,命令還會在相同目錄中建立另一個名稱相同、但副檔名為 .key 的檔案。 例如,下列命令會在 /home/user 目錄中,產生一個名為 localhost.pem 的檔案,和一個名為 localhost.key 的檔案:

    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
    

另請參閱