Share via


Advertencia de NuGet NU3042

NuGet 6.6.0+ solo en Linux y macOS

The following X.509 root certificate is untrusted because it is not present in the certificate bundle at <file-path>.  For more information, see documentation for NU3042.
    Subject:  <certificate subject>
    Fingerprint (SHA-256):  <certificate fingerprint>
    Certificate (PEM):
<PEM-encoded certificate>

Problema

La advertencia NU3042 se genera cuando se produjo un error en la comprobación del paquete firmado porque no se encontró un certificado raíz en el conjunto de certificados raíz de confianza adecuado, ya sea la firma de código o la marca de tiempo. Esta advertencia solo se generará en Linux y macOS cuando la comprobación del paquete firmado esté habilitada, nunca en Windows. NU3042 debe acompañar a NU3018 o NU3028.

Cada versión del SDK de .NET 7+ contiene dos agrupaciones de certificados raíz procedentes del Programa raíz de confianza de Microsoft. Un paquete de certificados contiene todas las raíces de confianza válidas para la firma de código, mientras que la otra contiene todas las raíces de confianza válidas para la marca de tiempo. NuGet usa estos conjuntos de certificados en Linux y macOS cuando está habilitada la comprobación del paquete firmado.

En Linux, NuGet preferirá un paquete de certificados de firma de código de todo el sistema al paquete de certificados de firma de código del SDK .NET.

La causa principal de NU3042 es probablemente una de las siguientes:

  • (Solo Linux) El conjunto de certificados de firma de código en todo el sistema no contiene el certificado raíz al que se hace referencia en la advertencia.
  • Los paquetes de certificados del SDK de .NET no están actualizados.

Para obtener más información, consulte Comprobación del paquete firmado de NuGet.

Solución

En Linux, si confía en el certificado y usa una agrupación de certificados de firma de código en todo el sistema, considere la posibilidad de agregar el certificado raíz a la agrupación. Esta solución puede no ser adecuada porque concederá confianza en todo el sistema.

Si los paquetes de certificados del SDK de .NET están obsoletos, actualice a una versión más reciente del SDK de .NET.

Si se produce un error en todo lo demás, opte por no realizar la comprobación del paquete firmado estableciendo la variable de entorno DOTNET_NUGET_SIGNATURE_VERIFICATION en false y abra un problema con el equipo de NuGet para sugerir cómo se puede mejorar la comprobación del paquete firmado en la plataforma.

Para obtener más información, consulte Comprobación del paquete firmado de NuGet.