java - 如何在 okhttp 上添加证书
问题描述
我正在 Spring 中构建一个应用程序。该应用程序应该对 Starling 的沙盒/开发人员公开的 API 进行一些 REST 调用。
我正在尝试调用 Starlings api,但由于它在 HTTPS 下,我得到以下信息:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
阅读 Starlings 文档后,它确实提供了我需要的证书以及以下说明:
您需要在开发过程中嵌入证书并将其与我们的域相关联。然后,在与我们进行 SSL 质询期间,您的应用程序应使用证书验证我们的身份。几乎所有语言和平台都可以使用执行此操作的库,例如 iOS 上的 TrustKit 和 Java 上的 okhttp。
我正在使用 okhttp 拨打电话,但我不知道如何让 okhttp 接受证书。我确实遇到了这个问题并尝试实现它,但不确定要为主机名的值添加什么。在答案中:
.add(hostname, "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
... sha56/AAAAA 应该是证书的内容吗?
编辑:我尝试将证书的内容放在“sha56/AAA”区域并得到以下信息:
java.lang.IllegalArgumentException:引脚必须以“sha256/”或“sha1/”开头:MIIGQDCCBSigAwIBAgIMA/4EOE5OkRQN7SNQMA0GCSqGSIb3DQEBCwUAMFAxCzAJ
所以我猜我需要以某种方式使用证书生成sha?
解决方案
推荐阅读
- java - 用坐标、长度、宽度和角度计算矩形的中心
- python - 如何将 arg 从命令传递到子命令 Discord py
- c# - 将文件上传到 Blob 存储错误 get_NetworkTimeout 没有实现
- typoscript - Typo3:语言没有 isoCodeA2
- pyparsing - 将文本“DA23.3445 DC15.445”解析为 [“DA”、“23.3445”、“DC”、“15.445”]
- python - matplotlib 中未定义 ax
- html - 如何将所有 html 组件移动到页面的中心?
- powerbi - Power BI - 作为值和百分比的每日差异
- flutter - 在另一个文件小部件中颤动更新值
- python - 在 python 中使用 lambda 函数以交互方式构建“多步”函数