解决:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcep—SSL证书导入Java信任库

一、前言背景

        笔者使用第三方SDK实现API调用,本地开发及测试均OK。但是现场服务器没有外网,需要使用内外网代理实现API的调用。

        常规情况为了省事我们都会使用一行代码来跳过SSL校验:SslUtil.ignoreSsl();

        可这次用的是SDK,它内部封装了okhttp的对象,无法使用公共方式跳过SSL校验,于是就有了这篇笔记,记录“阳光大道”下顺利通过证书校验。

二、发现问题

        现场使用nginx进行代理转发,没有配置证书的情况下后台直接报错:

        错误信息:{"statusCode":-1,"message":"SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target","code":"network error","isJson":false}

        大体意思就是找不到对应SSL证书,排查Nginx日志为空,可以确认该报错是Java自己内部拦截并提示的。按照不走代理的情况下是可以直接访问API,所以这种情况一定是Java去找Nginx要证书,结果Nginx没给,或者给了个驴头不对马嘴的自签证书。

        Java:用户要访问阿里云API,给我一下 aliyuncs.com的证书

        Nginx:给——https.crt

        Java:不是哥们,你这证书保真吗?看着像是个自签证书啊

        Nginx:你是找事儿啊还是验证书啊,我一个代理网络的能给你假证书吗?

        Java:行行,那你给我包起来返回吧

        Nginx:(骂骂咧咧嘟囔着返回了证书信息)

        Java:unable to find valid certification path,用户请求了但是没找到证书,去和我的 rm刀解释吧!

三、解决方案

        Nginx的证书不仅被Java “ 砍 ” 了,Nginx自己都差点 “嘎” 了。

        回归正题,Nginx自己签发的证书是不被第三方API认可的,所以还是得想办法找到第三方API请求地址对应的证书文件,单个域名可以直接使用openssl导出证书。

--根据域名导出crt证书 D:\OpenSSL-Win64\bin\openssl.exe s_client -connect dashscope.aliyuncs.com:443 -servername dashscope.aliyuncs.com <NUL 2>NUL | D:\OpenSSL-Win64\bin\openssl.exe x509 -outform PEM -out F:/dashscope.crt

        如果有多个请求地址需要生成组合域名的证书文件:

        参考地址:Nginx多域名HTTPS配置全攻略:从证书生成到客户端安装

        好了,这下我们拿到的证书文件,接下来就要把它交给Java信任库,不然它自己还是不认可这个证书,所以必须:请求地址证书、Java信任库证书、Nginx证书,三者保持一致才可以。

--证书添加到java信任库,密码changeit keytool -import -alias amapaliyun-www -keystore "D:\JDK1.8\jre\lib\security\cacerts" -file "D:\nginx-1.19.7_B\conf\cert\amapaliyun.crt" -storepass changeit -noprompt
--查看信任库中的证书 keytool -list -keystore "D:\JDK1.8\jre\lib\security\cacerts" -alias amapaliyun-www -storepass changeit

        至此,我们就把证书全部配置完成,然后重新启动服务,重新启动Nginx进行测试验证即可。

四、总结回顾

        写这篇笔记总共花了二十分钟,其中五分钟还是在找华强砍瓜的图片,但实际排查问题解决问题足足花了三个多小时。这里总结回顾主要是想记录一下,遇到问题后一定要先定位问题点而不是乱猜乱试。比如本文的问题,只有定位到那个报错是Java返回的就已经解决了一大半,剩下的只要正向推理尝试便不会再耽误时间。而笔者却在生成的证书上花了很长时间确认它是否有问题,其实只需要查看Nginx日志便可以划分出来,记录,共勉。

Read more

不止“996”!曝硅谷AI创业圈「极限工作制」:每天16小时、凌晨3点下班、周末也在写代码

不止“996”!曝硅谷AI创业圈「极限工作制」:每天16小时、凌晨3点下班、周末也在写代码

编译 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) “如果你周日去旧金山的咖啡馆,会发现几乎每个人都在工作。” 这是 AI 创业公司 Mythril 联合创始人 Sanju Lokuhitige 最近最直观的感受。去年 11 月,他特地搬到旧金山,只为了更接近 AI 创业浪潮的中心。但很快,他也被卷入了这股浪潮带来的另一面——一种越来越极端的工作文化。 Lokuhitige 坦言,他现在几乎每天工作 12 小时,每周 7 天。除了每周少数几场刻意安排的社交活动(主要是为了和创业者们建立联系),其余时间几乎都在写代码、做产品。 “有时候我整整一天都在编程,”他说,“我基本没有什么工作与生活的平衡。”而这样的生活,在如今的 AI 创业圈里并不算罕见。 旧金山 AI 创业圈的真实日常 一位在旧金山一家 AI

By Ne0inhk
黄仁勋公开发文:传统软件开发模式终结,参与AI不必非得拥有计算机博士学位

黄仁勋公开发文:传统软件开发模式终结,参与AI不必非得拥有计算机博士学位

AI 究竟是什么?在 NVIDIA CEO 黄仁勋看来,它早已不只是聊天机器人或某个大模型,而是一种正在迅速成形的“新型基础设施”。 近日,黄仁勋在英伟达官网发布了一篇长文,提出一个颇具形象的比喻——AI 就像一块“五层蛋糕”。从最底层的能源,到芯片、基础设施、模型,再到最上层的应用,人工智能正在形成一整套完整的产业技术栈,并像电力和互联网一样,逐渐成为现代社会的底层能力。 这也是黄仁勋自 2016 年以来公开发表的第七篇长文。在这篇文章中,他从计算机发展史与第一性原理出发,试图解释 AI 技术栈为何会演化成如今的形态,以及为什么全球正在掀起一场规模空前的 AI 基础设施建设。 在他看来,过去几十年的软件大多是预先编写好的程序:人类设计好算法,计算机按指令执行,数据被结构化存储在数据库中,通过精确查询调用。而 AI 的出现打破了这一模式——计算机开始能够理解图像、文本和声音,并根据上下文实时生成答案、推理结果甚至新的内容。 正因为智能不再是预先写好的代码,而是实时生成的能力,支撑它运行的整个计算体系也必须被重新设计。

By Ne0inhk
猛裁1.6万人后,网站再崩6小时、一周4次重大事故!官方“紧急复盘”:跟裁员无关,也不是AI写代码的锅

猛裁1.6万人后,网站再崩6小时、一周4次重大事故!官方“紧急复盘”:跟裁员无关,也不是AI写代码的锅

整理 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) 过去几年里,科技公司几乎都在同一件事上加速:让 AI 参与写代码。 从自动补全、自动生成函数,到直接修改系统配置,生成式 AI 已经逐渐走进真实生产环境。但最近发生在亚马逊的一连串事故,却给整个行业泼了一盆冷水——当 AI 开始真正参与生产环境开发时,事情可能远比想象复杂。 最近,多家媒体披露,本周二亚马逊内部紧急召开了一场工程“深度复盘(deep dive)”会议,专门讨论最近频繁出现的系统故障——其中,一个被反复提及的关键词是:AI 辅助代码。 一周 4 次严重事故,亚马逊内部紧急复盘 事情的起点,是最近一段时间亚马逊系统稳定性明显下降。 负责亚马逊网站技术架构的高级副总裁 Dave Treadwell 在一封内部邮件中坦言:“各位,正如大家可能已经知道的,最近网站及相关基础设施的可用性确实不太理想。” 为此,公司决定把原本每周例行举行的技术会议

By Ne0inhk
这回真的“装”到了!来OpenClaw全国纵深行,你只需要带一台电脑……

这回真的“装”到了!来OpenClaw全国纵深行,你只需要带一台电脑……

AI Agent 的风,已经从 GitHub 吹到了线下。 过去几个月,越来越多开发者开始讨论一个问题: 当 AI 不再只是聊天,而是可以执行任务,软件会变成什么样? 在这股浪潮中,一个开源项目迅速进入开发者视野——OpenClaw,在 GitHub 上获得大量关注,相关教程、实践案例不断出现。有人用它自动整理资料,有人用它管理开发流程,还有人尝试让它执行复杂的工作流。 很多开发者第一次意识到: AI 不只是工具,它可能成为“执行者”。 不过,在技术社区之外,大多数人对 Agent 的理解仍停留在概念层面。 * AI Agent 到底是什么? * 如何在自己的电脑上运行? * 普通开发者能否真正用起来? 带着这些问题,一场围绕 OpenClaw 的开发者城市行动正在展开。 ZEEKLOG 发起的OpenClaw 全国纵深行将走进 20 个城市,用最直接的方式回答一个问题——如果

By Ne0inhk