热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

作者主签名的时间戳发现了一个建链问题:UntrustedRoot:证书链中的自签名证书

在我的.NETCore项目上执行dockerbuild时,我在所有NuGet上都收到以下错误:80.19/app/GradingTo

在我的 .NET Core 项目上执行 docker build 时,我在所有 NuGet 上都收到以下错误:

80.19 /app/GradingTool.Tests/GradingTool.Tests.csproj:错误 NU3028:来自源“https://api.nuget.org/v3/index.json”的包“Microsoft.EntityFrameworkCore 5.0.0”:作者主要签名时间戳发现链构建问题:UntrustedRoot:证书链中的自签名证书[/app/GradingTool.sln]

#12 80.20 /app/GradingTool.Tests/GradingTool.Tests.csproj:错误 NU3037:来自“https://api.nuget.org/v3/index.json”的包“Microsoft.EntityFrameworkCore 5.0.0”:作者主签名有效期已过。[/app/GradingTool.sln]

#12 80.20 /app/GradingTool.Tests/GradingTool.Tests.csproj:错误 NU3028:来自源“https://api.nuget.org/v3/index.json”的包“Microsoft.EntityFrameworkCore 5.0.0”:存储库会签的时间戳发现链构建问题:UntrustedRoot:证书链中的自签名证书 [/app/GradingTool.sln]

我以前从未遇到过这个错误,有人可以帮我找出问题所在吗?

Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:latest AS build-env
WORKDIR /app
RUN apt-get update -yq
&& apt-get install curl gnupg -yq
&& curl -sL https://deb.nodesource.com/setup_10.x | bash
&& apt-get install nodejs -yq
# Copy csproj and restore as distinct layers
COPY . ./
RUN dotnet restore
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:latest
RUN apt-get update
&& apt-get install -y --no-install-recommends libgdiplus libc6-dev
&& apt-get clean
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build-env /app/out .
ENV ASPNETCORE_URLS="http://+:4200"
ENV ASPNETCORE_ENVIROnMENT="Production"
ENV GOOGLE_APPLICATION_CREDENTIALS="Credentials/SchoolTools-e9f260bdf56e.json"
ENV VIRTUAL_HOST="eva.schooltools.lu,www.eva.schooltools.lu,schooltools.lu,www.schooltools.lu"
ENV LETSENCRYPT_HOST="eva.schooltools.lu,www.eva.schooltools.lu,schooltools.lu,www.schooltools.lu"
ENV LETSENCRYPT_EMAIL="wilson.silva@edutec.lu"
EXPOSE 4200
ENTRYPOINT ["dotnet", "GradingTool.dll"]

回答


更新:查看此公告:https : //github.com/NuGet/Announcements/issues/49

目前该问题似乎与 Debian 映像有关。

切换到基于 Ubuntu 或 Alpine 的映像:

FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build-env

按照https://github.com/NuGet/Home/issues/10491获取更新。





回答


在Dockerfile文件中,我从

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim

FROM mcr.microsoft.com/dotnet/sdk:5.0-alpine

这对我有用!



  • It's worth highlighting that this moves from a Debian based to Alpine based docker-image so there may be slight differences in the base packages etc so this may get rid of the immediate error but could introduce harder to track down issues in the long run.




回答


简答

代替 mcr.microsoft.com/dotnet/sdk:latest

mcr.microsoft.com/dotnet/sdk:5.0.102-ca-patch-buster-slim-amd64

一旦他们正式修补了证书问题,请返回 :latest。

长答案

这是因为您使用的 Debian docker 映像中存在问题:

mcr.microsoft.com/dotnet/sdk:latest

:latest 标签使用的是 Debian 映像 (5.0.102-1-buster-slim-amd64),Debian 发布了一个会产生证书问题的补丁。

NuGet 团队发布了新的预发布 Debian 映像,以缓解 ca 证书问题。在此处查看未解决的问题和图像替换解决方法:

https://github.com/NuGet/Announcements/issues/49#issuecomment-768766265

稍后他们将发布 SDK 映像的发布版本(一旦 Debian ca-certificates 包在 Debian 10 Buster 中发布)。

使用 :focal 标签 (Ubuntu) 也可以解决 .NET 应用程序的问题,但您必须考虑不再使用 Debian。

最新更新:

微软使用传统标签(如 sdk:5.0)发布了修补的 docker 镜像。从 :5.0.102-ca-patch-buster-slim-amd64 恢复到 :5.0 是安全的





回答


我认为 nuget.org 的证书存在一些问题。我目前正在从 nuget.org 获取所有 NuGet 包的以下内容

错误 NU3037:来自源“https://api.nuget.org/v3/index.json”的包“Microsoft.NETCore.Platforms 3.1.0”:作者主要签名有效期已过期。

错误 NU3028:来自源“https://api.nuget.org/v3/index.json”的包“Microsoft.AspNetCore.Metadata 3.1.2”:存储库会签的时间戳发现链构建问题:UntrustedRoot:自签名证书证书链




  • Yes, In their GitHub Repo under Issues there are many people having the same issue as us so hopefully they will fix it soon enough! Thanks for your response though!




回答


如前所述,可以在此处跟踪问题的当前更新:

https : //github.com/NuGet/Home/issues/10491

缩短您的旅程

已知的解决方法包括:


  • 降级到 .NET Core 3.1

  • 如果使用 docker,请将基本映像从“FROM mcr.microsoft.com/dotnet/sdk:5.0”更改为“FROM mcr.microsoft.com/dotnet/sdk:5.0-focal”或“FROM mcr.microsoft.com/dotnet” /sdk:5.0-高山"

  • 将其放在 nuget.config 的标记内以完全禁用验证(适用于 dotnet restore):


您还可以在此处查看状态:https : //status.nuget.org/





回答


此更改也有效:

FROM mcr.microsoft.com/dotnet/sdk:5.0-focal





回答


最好从 Debian 转到 Ubuntu 并跳过 Alpine,因为 Alpine 缺少 .net 区域和文化!即 sdk:5.0-focal 是您最好的选择,并且确实解决了这个问题。






推荐阅读
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 字节码开发笔记:深入解析与应用技巧 ... [详细]
author-avatar
jizi456
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有