共用方式為


dotnet nuget sign

此文章適用於:✔️ .NET 6 SDK 與更新版本

名稱

dotnet nuget sign:使用憑證簽署所有符合第一個引數的 NuGet 套件。

概要

dotnet nuget sign [<package-path(s)>]
    [--certificate-path <PATH>]
    [--certificate-store-name <STORENAME>]
    [--certificate-store-location <STORELOCATION>]
    [--certificate-subject-name <SUBJECTNAME>]
    [--certificate-fingerprint <FINGERPRINT>]
    [--certificate-password <PASSWORD>]
    [--hash-algorithm <HASHALGORITHM>]
    [-o|--output <OUTPUT DIRECTORY>]
    [--overwrite]
    [--timestamp-hash-algorithm <HASHALGORITHM>]
    [--timestamper <TIMESTAMPINGSERVER>]
    [-v|--verbosity <LEVEL>]

dotnet nuget sign -h|--help

描述

dotnet nuget sign 命令會使用憑證簽署所有符合第一個引數的 NuGet 套件。 只要提供主體名稱或 SHA-1 指紋,即可從檔案或安裝在憑證存放區的憑證取得具有私密金鑰的憑證。

注意

此命令必須使用適用程式碼簽署和時間戳記的憑證根存放區。 此外,某些作業系統和 .NET SDK 組合可能不支援此命令。 如需詳細資訊,請參閱 NuGet 簽署套件驗證

引數

  • package-path(s)

    指定要簽署的套件所在的檔案路徑。 您可以傳入多個引數,以簽署多個套件。

選項。

  • --certificate-path <PATH>

    指定簽署套件時要使用的憑證的檔案路徑。

    注意

    此選項目前僅支援包含憑證私密金鑰的 PKCS12 (PFX) 檔案。

  • --certificate-store-name <STORENAME>

    指定用於搜尋憑證的 X.509 憑證存放區的名稱。 預設值為 "My",個人憑證的 X.509 憑證存放區。 若要透過 --certificate-subject-name--certificate-fingerprint 選項指定憑證,就必須使用此選項。

  • --certificate-store-location <STORELOCATION>

    指定用於搜尋憑證的 X.509 憑證存放區。 預設值為 "CurrentUser",目前使用者所用的 X.509 憑證存放區。 若要透過 --certificate-subject-name--certificate-fingerprint 選項指定憑證,就必須使用此選項。

  • --certificate-subject-name <SUBJECTNAME>

    指定用於在本機憑證存放區中搜尋憑證的憑證主體名稱。 搜尋是使用提供的值不區分大小寫的字串比較,它會尋找包含該字串之主體名稱的所有憑證,而不論其他主體值為何。 您可透過 --certificate-store-name--certificate-store-location 選項指定憑證存放區。

    注意

    此選項目前僅支援結果中的單一相符憑證。 若結果中有多個相符憑證,或者沒有任何相符憑證,sign 命令就會失敗。

  • --certificate-fingerprint <FINGERPRINT>

    指定用來搜尋憑證本機證書存儲之憑證的指紋。

    從 .NET 9 開始,此選項可用來指定憑證的SHA-1、SHA-256、SHA-384或SHA-512指紋。 不過, NU3043 使用SHA-1 憑證指紋時,會引發警告,因為它不再被視為安全。

    所有舊版 .NET SDK 都會繼續只接受 SHA-1 憑證指紋。

  • --certificate-password <PASSWORD>

    視需要指定憑證密碼。 如果憑證受到密碼保護,但未提供密碼,sign 命令就會失敗。

    注意

    sign 命令僅支援非互動模式。 執行階段中不會出現任何密碼提示。

  • --hash-algorithm <HASHALGORITHM>

    要用於簽署套件的雜湊演算法。 預設為 SHA256。 可能的值包含 SHA256、SHA384 與 SHA512。

  • -o|--output

    指定已簽署套件應儲存至哪個目錄。 如果未指定此選項,預設會覆寫已簽署套件的原始套件。

  • --overwrite

    指出應覆寫目前的簽章。 根據預設,如果套件已有簽章,此命令會失敗。

  • --timestamp-hash-algorithm <HASHALGORITHM>

    RFC 3161 時間戳記伺服器要使用的雜湊演算法。 預設為 SHA256。

  • --timestamper <TIMESTAMPINGSERVER>

    RFC 3161 時間戳記伺服器的 URL。

  • -v|--verbosity <LEVEL>

    設定命令的詳細資訊層級。 允許的值為 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 預設為 minimal。 如需詳細資訊,請參閱LoggerVerbosity

  • -?|-h|--help

    列印如何使用命令的描述。

範例

  • 使用 cert.pfx 憑證 (未受密碼保護) 簽署 foo.nupkg

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx
    
  • 使用 cert.pfx 憑證 (受密碼保護) 簽署 foo.nupkg

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
    
  • 使用符合預設憑證存放區 (CurrentUser\My) 中指定 SHA-1 指紋的憑證 (受密碼保護) 簽署 foo.nupkg

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
    
  • 使用符合預設憑證存放區 (CurrentUser\My) 中指定主體名稱 "Test certificate for testing signing" 的憑證 (受密碼保護) 簽署 foo.nupkg

    dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
    
  • 使用符合憑證存放區 CurrentUser\Root 中指定 SHA-1 指紋的憑證 (受密碼保護) 簽署 foo.nupkg

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
    
  • 簽署多個 NuGet 套件:foo.nupkg 與使用 cert.pfx 憑證所指定的目錄中所有 .nupkg 檔案

    dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
    
  • 使用 cert.pfx 憑證 (受密碼保護) 簽署 foo.nupkg,並使用 http://timestamp.test 加上時間戳記:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
    
  • 使用 cert.pfx 憑證 (未受密碼保護) 簽署 foo.nupkg,並將已簽署的套件儲存在指定目錄下:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
    
  • 使用 cert.pfx 憑證 (未受密碼保護) 簽署foo.nupkg;若套件已簽署,則覆寫目前的簽章:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite