首页 > 其他分享 >记一次unable to find valid certification path to requested target异常排查

记一次unable to find valid certification path to requested target异常排查

时间:2024-01-23 09:44:51浏览次数:31  
标签:requested 浏览器 crt 证书 certification uat unable https 我们

前言

最近因为uat环境https过期,后边进行证书续期,发现通过浏览器访问可以正常访问,但是接口调用该地址,却出现

unable to find valid certification path to requested target

网上的大部分针对java解决方案可以归类如下两种

1、在jdk证书库里添加该域名的公钥证书

注: 该方案比较繁琐,此外我们的接口不仅是要提供给java系语言,还要提供给其他非java系语言调用,其次因为我们的证书并非自签发,而是真金白银买的,理论上不应该有问题。所以该方案一开始就没纳入我重点考虑范围内

2、忽略证书认证,信任所有请求链接

该方案其实也不可取,因为有安全隐患,不过该方案确实能解决问题

对上述两种方案的具体落地方案,感兴趣的朋友可以查看如下链接
https://yiyige.blog.csdn.net/article/details/116049218

排查思路

我们通过postman调用,发现接口调不通,然后postman那边有个提示让我们禁用ssl校验,禁用掉确实能访问。
后来我们通过curl访问,出现如下提示


圈红的意思是证书的颁发者无法识别,那就大体可以说明我们证书确实出了点问题。

接着我们做了这么一件事,我们将uat环境https证书和可以正常访问的https证书做了个对比

我们uat的证书形如下

正常访问的证书形如下
在这里插入图片描述
大家一眼都可以看出问题了,我们UAT的证书少了一段内容,其实加上这段内容就构成了一个证书链。

证书链的相关科普介绍可以查看如下文章
https://www.anxinssl.com/9801.html

解决方案

因为之前运维提供给我们都是构成一个完整证书链的证书,而这次估计是太忙忘了,仅提供用户域名证书,仅仅这个证书是不够。后面我们找了运维要了完整证书资料


ca-bundle.crt 文件存储了各大证书颁发证的根证书交叉文件。我们需要ca-bundle.crt里面的内容追加到用户证书内容后面(即截图uat.crt)。示例

如果是linux环境,则可以执行文件合并操作命令

cat uat.crt ca_bundle.crt >> uat.crt

执行完后,将证书重新替换,问题就解决了。如果没有ca_bundle.crt,我们也可以通过浏览器(注: 从浏览器我们可以拿到完整的证书链),把相应的中间证书下载下来,追加到我们用户证书后面。

具体操作步骤(以360浏览器为例,其他浏览器大同小异)

1、点击浏览器旁边的小锁

2、点击证书信息,选择详细信息

3、将中间证书导出

4、将中间证书的内容追加到用户证书后面

注: 如果追加中间证书后,证书还是有问题,则按上步骤,把根证书下下来,再次追加到用户证书后面。

总结

整体的解决方案,就是将根证书、中间证书追加到用户证书后面,如果是自签发的证书,该方案就没法使用,就尝试一下其他方案。

另外推荐一下阿里的通义灵码,确实挺厉害。我们尝试让它解决一下上述问题


它提供的方案基本上可以满足我们要求

标签:requested,浏览器,crt,证书,certification,uat,unable,https,我们
From: https://www.cnblogs.com/linyb-geek/p/17804971.html

相关文章

  • sudo: unable to resolve host xxxx: Name or service not known
    前言在Linux环境中,我使用sudo执行命令,发生报错:sudo:unabletoresolvehostxxxx:Nameorservicenotknown解决这个错误通常发生在更改主机名后,使用sudo命令时出现问题。sudo命令会尝试解析主机名,但如果无法解析,就会出现"sudo:unabletoresolvehost"的错误。然而......
  • android开发编译出错:Unable to find method ''org.gradle.api.file.RegularFileProper
    Unabletofindmethod''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProperty(org.gradle.api.provider.Provider)'''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProp......
  • scoop设置代理 , 解决”scoop fatal: unable to access“问题
    报错提示UpdatingScoop...fatal:unabletoaccess'https://github.com/ScoopInstaller/Scoop/':Failedtoconnecttogithub.comport443after21091ms:Couldn'tconnecttoserverRemove-Item:找不到路径“C:\Users\kai\scoop\apps\scoop\new”,因为该路......
  • `git push` 报错:error: remote unpack failed: unable to create temporary object di
    祸首:wsl:检测到localhost代理配置,但未镜像到WSL。NAT模式下的WSL不支持localhost代理;修改:NAT改镜像问题1:在自己的服务器上新建git仓库时,推送就一直报错;最开始一直推送失败,怀疑是WSL的网关由NAT改为镜像了......
  • No 'Access-Control-Allow-Origin' header is present on the requested resource', 跨
    https://blog.csdn.net/dear_little_bear/article/details/839993911.当请求不在同一域名下的资源文件(ip地址+端口号)时,会报如下错误:“No‘Access-Control-Allow-Origin’headerispresentontherequestedresource.Origin‘http://localhost:8080’isthereforenotall......
  • Dynamics 365 导入Excel报错:Server was unable to process request.
    Dynamics365导入Excel报错:Serverwasunabletoprocessrequest. F12查看调用,发现是调用GetImportMapXml报错,于是到高级设置-数据管理-导入去试试,提示字段Industry未找到,后来找一下字段Industry,居然又3个,一下子就清晰了,是因为有3个字段一样的显示名称,映射不了导致报错 ......
  • EF CodeFirst mysql 迁移异常Unable to create a 'DbContext' of type
    问题过程终端执行dotnetefmigrationsaddinit出现如下错误:Pomelo.EntityFrameworkCore.MySqlMicrosoft.EntityFrameworkCore.ToolsUnabletocreatea'DbContext'oftype''.Theexception'Methodnotfound:'VoidCoreTypeMappingParameters......
  • Xcode真机调试之unable to install
     当连接真机运行,xcode出现unabletolaunchxxx,此时我们可以点击detail来查看详情。DetailsUnabletoinstall"XXX"Domain:com.apple.dt.MobileDeviceErrorDomainCode:-402653103--Couldnotinspecttheapplicationpackage.Domain:com.apple.dt.MobileDeviceEr......
  • swagger报错Unable to render this definition
    问题描述:访问swagger时,报错endofthestreamoradocumentseparatorisexpected,UnabletorenderthisdefinitionTheprovideddefinitiondoesnotspecifyavalidversionfield.PleaseindicateavalidSwaggerorOpenAPIversionfield.Supportedversionfields......
  • [Jenkins] FATAL: Unable to produce a script file
    错误10:17:34FATAL:Unabletoproduceascriptfile10:17:34Also:hudson.remoting.Channel$CallSiteStackTrace:Remotecalltoxxxxxxx10:17:34 athudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)10:17:34 athudson.remoting.UserRequ......