网站建设详情页打开全网搜索

pingmian/2026/1/26 7:29:19/文章来源:
网站建设详情页,打开全网搜索,哈尔滨做网站费用报价,下载网站模板怎么使用教程minio sdk使用自签名https证书错误处理 1.问题描述1.1 报错日志1.2 maven 依赖配置1.3 当前spring MinioClient配置 2.问题分析3.问题解决3.1 使用受信任的证书3.2 忽略证书验证3.2.1 minio客户端3.2.2 minio sdk 忽略证书验证3.2.2.1 拓展: 补充minioclient请求日志 4. 问题总… minio sdk使用自签名https证书错误处理 1.问题描述1.1 报错日志1.2 maven 依赖配置1.3 当前spring MinioClient配置 2.问题分析3.问题解决3.1 使用受信任的证书3.2 忽略证书验证3.2.1 minio客户端3.2.2 minio sdk 忽略证书验证3.2.2.1 拓展: 补充minioclient请求日志 4. 问题总结5.附录 1.问题描述 minio 8.4.4 使用自签名的https的api连接会报错证书错误 1.1 报错日志 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target1.2 maven 依赖配置 !--minio java sdk--dependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion8.4.4/versionexclusionsexclusiongroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactId/exclusion/exclusions/dependencydependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactIdversion4.10.0/version/dependency1.3 当前spring MinioClient配置 Configuration EnableConfigurationProperties(MinioProperties.class) public class MinioConfig {Beanpublic MinioClient minioClient(MinioProperties properties){properties.check();return MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).build();} }2.问题分析 通常是因为MinIO默认情况下会验证服务器的TLS证书。在生产环境中使用自签名证书并不推荐因为它们不受信任的证书颁发机构CA签署可能会导致安全问题。 3.问题解决 3.1 使用受信任的证书 为了在生产环境中确保安全性建议获取一个受信任的SSL证书可以从证书颁发机构CA购买或者使用免费的证书颁发机构例如Let’s Encrypt获取SSL证书。 3.2 忽略证书验证 3.2.1 minio客户端 在MinIO客户端例如mc命令行工具中可以使用–insecure选项来忽略证书验证。例如 mc --insecure command这会告诉MinIO客户端不要验证服务器的TLS证书。请注意这种做法会降低安全性不建议在生产环境中使用。 3.2.2 minio sdk 忽略证书验证 在使用Java SDK与自签名证书的服务器进行通信时一般可以通过自定义SSLContext来忽略证书验证。 MinIO的Java SDKversion 8.0.6及以上允许自定义OkHttpClient我们可以使用httpClient方法传递一个自定义的OkHttpClient实例。以便在HTTP、正常HTTPS和自签名HTTPS之间实现兼容性 下面是如何使用自定义的OkHttpClient实现对HTTP、正常HTTPS和自签名HTTPS的兼容性 Configuration EnableConfigurationProperties(MinioProperties.class) public class MinioConfig {private static final Logger LOGGER LoggerFactory.getLogger(MinioConfig.class);Beanpublic MinioClient minioClient(MinioProperties properties){properties.check();// Create a trust manager that does not validate certificate chainsTrustManager[] trustAllCerts new TrustManager[] {new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}public void checkClientTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any client certificate)}public void checkServerTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any server certificate)}}};// Install the all-trusting trust managerSSLContext sslContext null;try {sslContext SSLContext.getInstance(SSL);sslContext.init(null, trustAllCerts, new java.security.SecureRandom());} catch (Exception e) {LOGGER.error(Install the all-trusting trust manager error:{}, e.getMessage());}// Create a custom OkHttpClient that trusts all certificatesOkHttpClient customHttpClient new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]).hostnameVerifier((hostname, session) - true).build();// Set the custom SSLContext for MinioClientreturn MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).httpClient(customHttpClient).build();}} 在上面的代码中我们创建了一个SSLContext其中的X509TrustManager会信任所有证书无论其是否由信任的证书颁发机构CA签署。创建了一个自定义的OkHttpClient该客户端信任所有证书。然后我们使用MinioClient.builder()方法将自定义的OkHttpClient传递给httpClient()方法 这种方法会将所有证书都视为受信任的因此请仅在非生产环境中使用此方法以确保通信的安全性和完整性。在生产环境中建议使用受信任的SSL证书。 3.2.2.1 拓展: 补充minioclient请求日志 之前minioclient与服务器端交互使用默认的httpclient的客户端,请求没有打印详细日志. 既然上面自定义自己的httpclient那么可以补充自定义拦截器打印日志 public class CustomLoggingInterceptor implements Interceptor {Overridepublic Response intercept(Chain chain) throws IOException {Request request chain.request();long startTime System.nanoTime();System.out.println(Sending request request.url() on chain.connection() \n request.headers());Response response chain.proceed(request);long endTime System.nanoTime();System.out.println(Received response for response.request().url() in ((endTime - startTime) / 1e6) ms\n response.headers());MediaType contentType response.body().contentType();String content response.body().string();System.out.println(Response body:\n content);ResponseBody wrappedBody ResponseBody.create(contentType, content);return response.newBuilder().body(wrappedBody).build();} }修改MinioConfig增加okhttp拦截器 // Create a custom OkHttpClient that trusts all certificatesOkHttpClient customHttpClient new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]).hostnameVerifier((hostname, session) - true).addInterceptor(new CustomLoggingInterceptor()) // Add custom interceptor here.build();效果 4. 问题总结 minio客户端本质使用httpclient与服务端交互,因此证书问题处理其实只是httpclient对证书的兼容处理。该处理方式可以运用到其他使用到httpclient的场景。 5.附录 代码优化 Configuration EnableConfigurationProperties(MinioProperties.class) public class MinioConfig {private static final Logger LOGGER LoggerFactory.getLogger(MinioConfig.class);Beanpublic MinioClient minioClient(MinioProperties properties){properties.check();OkHttpClient customHttpClient null;if (properties.getEndpoint().startsWith(https://)) {// 如果是HTTPS使用自定义的OkHttpClient处理自签名的HTTPS请求customHttpClient createCustomOkHttpClient();}MinioClient minioClient;if (customHttpClient ! null) {// 如果使用了自定义的OkHttpClientminioClient MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).httpClient(customHttpClient).build();} else {// 如果是普通HTTP使用默认的OkHttpClientminioClient MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).build();}return minioClient;}/*** Set the custom SSLContext for MinioClient* return*/private static OkHttpClient createCustomOkHttpClient() {// 创建自定义的OkHttpClient用于处理自签名的HTTPS请求// Create a trust manager that does not validate certificate chainsTrustManager[] trustAllCerts new TrustManager[] {new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}public void checkClientTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any client certificate)}public void checkServerTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any server certificate)}}};// Install the all-trusting trust managerSSLContext sslContext null;try {sslContext SSLContext.getInstance(SSL);sslContext.init(null, trustAllCerts, new java.security.SecureRandom());} catch (Exception e) {LOGGER.error(Install the all-trusting trust manager error:{}, e.getMessage());}// Create a custom OkHttpClient that trusts all certificatesOkHttpClient customHttpClient new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]).hostnameVerifier((hostname, session) - true)// 增加minio http请求日志打印//.addInterceptor(new CustomLoggingInterceptor()) // Add custom interceptor here.build();return customHttpClient;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自适应网站建设哪家好试客网站 源码

1 知识图谱应用场景 1、数据可视化 2、基于图谱的问答系统 3、基于图谱的关系推理 4、便捷的关系查询,给模型提供更多数据特征 2 知识图谱的构建 非结构化数据源中的实体识别:一般来说是一个sequence labeling的任务。 非结构化数据源中的关系抽取&am…

网站编辑超链接怎么做越秀金融大厦地址

从 Windows Server 2008 开始,管理员可以选择安装具有特定功能但不包含任何不必要功能的 Windows Server 的最小安装服务器核心(Server Core),它为一些特定服务的正常运行提供了一个最小的环境,从而减少了其他服务和管理工具可能造成的***和风…

招聘网站开发工程师在线做爰视频网站

http://blog.csdn.net/vshuang/article/details/39647167 Android 内存管理 &Memory Leak & OOM 分析 单个应用可用的最大内存 Android设备出厂以后,java虚拟机对单个应用的最大内存分配就确定下来了,超出这个值就会OOM。这个属性值是定义在…

福州网站建设营销q479185700刷屏ssh wordpress

实验背景 某公司总部在厦门,北京、上海都有分部,网络结构如图所示: 一、网络连接描述: 厦门总部:内部网络使用SW1、SW2、SW3三台交换机,SW1为作为核心交换机,SW2、SW3作为接入层交换机&#x…

做移动网站开发做钓鱼网站会被抓判刑吗

分类:声卡驱动问题:设备管理器中声卡驱动安装不正确描述:电脑没有声音,有部分朋友是因为声卡驱动没有正确安装,除了我们常见到的设备管理器出现黄色感叹号之外,另一种情况就是让一般人很难发现的问题&#…

莱芜招聘的网站中国建筑装饰网 郭金辉

干程序这行比较辛苦的就是要随时更新自己的知识。闷~~为了让自己能够更加深入的学习GUN和LINUX。在简单了解了shell以后决定学习Python。--------&#xff0d…

网站开发的软件介绍建设微信商城网站的公司

广州大专自主招生有哪些学校自主招生又称自主选拔,是高校选拔录取工作改革的重要环节。包括国家重点大学自主招生与高职自主招生两大类。以下小编为大家整理了广州大专院校自主招生的学校,希望对大家有所帮助!广东专科自主招生学校名单1、广东…

大连小型网站建设北京代理记账财务公司

QWebChannel 是 Qt 框架中用于在 Web 页面和 Qt 应用程序之间进行通信的类。 QWebChannel 类提供了一种机制,使得 Web 页面可以与 Qt 应用程序进行双向通信。通过 QWebChannel,可以将 Qt 应用程序中的对象暴露给 Web 页面,并通过信号和槽机制…

如何用wordpress做一个企业网站如何创办公司

从源码学习final的使用 final的作用 ​ final字面意思,意为最终的、不可变的。在Java中,final可以用来修饰类、方法和变量,可以分别起到不同的作用。 final修饰类:表示该类不可以被继承;final修饰方法:表…

做市场的逛的网站重庆梁平网站建设哪家便宜

微信公众号:有宝物的柜子编辑:落水无波2020-06-28 原创有时候在分析一些数据时,既需要观察整体又需要局部观测,那么怎么才能做到同时查看呢,就类似上面这样。这样就很容易的去发现有没有峰位偏移,同时查看与…

福州网站建设企业广州 电商网站建设

对于每个Linux管理员来说,熟练使用各种命令行是他们的特性。但对于普通用户来说,可能还是有难度,您需要继续练习Linux命令,并找到使该任务更有效的方法。实现这个特定目标的一种方法是学习一些技巧,这些技巧可以提高发…

网站开发目的一般网站建设需求有哪些方面

一、本文介绍 本文给大家带来的改进机制是由北大和北航联合提出的FFA-net: Feature Fusion Attention Network for Single Image Dehazing图像增强去雾网络,该网络的主要思想是利用特征融合注意力网络(Feature Fusion Attention Network)直接恢复无雾图像,FFA-Net通过特征…

几何背景生成器网站广西临桂建设局网站

二、MOSFET参数 1、电气参数 (1)VGS :加在栅源两极之间的最大电压,一般为:-20V-+20V。 VGS额定电压是栅源两极间可以施加的最大电压。设定该额定电压的主要目的是防止电压过高导致的栅氧化层损伤。实际栅氧化层可承受的电压远高于额定电压,但是会随制造工艺的不同而改变…

永春县建设局网站南宁最新消息今天

1.概念 1.1 HTML标准格式 <html><body><p>Hello World</p></body> </html>1.2 编辑方式 新建一个笔记本文件&#xff0c;将html语法格式的内容写入。保存后将记事本的.txt后缀换成.html,就可以在浏览器里运行了 1.3 中文问题 为了避…

大众团购网站怎么做什么是电商?电商怎么做

此为平衡树系列第二道&#xff1a;文艺平衡树您需要写一种数据结构&#xff0c;来维护一个有序数列&#xff0c;其中需要提供以下操作&#xff1a; 翻转一个区间&#xff0c;例如原有序序列是5 4 3 2 1&#xff0c;翻转区间是[2,4]的话&#xff0c;结果是5 2 3 4 1 输入 第一行…

天津专业网站制作流程优势云南网络公司网站

打印机有无线功能&#xff0c;但却总连不上路由&#xff0c;看着高大上的功能用不上&#xff0c;是不是很捉急&#xff1f;今天总结了5种打印机连接无线的方法&#xff0c;总有一款适合你~- 方 1 法 -在打印机屏幕上配置无线本方法适用于带有无线网络功能且有可视面板屏幕的打印…

哈尔滨建站模板子公司网站备案

电阻色环电阻阻值颜色 有效数字 倍率 误差 黑 0 10^0 棕 1 10^1 1% 红 2 10^2 2% 橙 3 10^3 黄 4 10^4 绿 5 10^5 5% 蓝 6 10^6 0.25% 紫 7 10^7 0.10% 灰 8 10^8 白 9 10^9 金 10^(-1) 银 10^(-2) 阻值、精度、功率、种类&#xff08;没有特殊说明&#xff…

做直播网站软件有哪些软件免费好用的云电脑

点击蓝字↑↑↑“农作未来(FarmingFuture)”&#xff0c;轻松关注&#xff0c;农作制度研究与您同行&#xff01;编译&#xff1a;贾蓉 排版&#xff1a;王上原创微文&#xff0c;欢迎转发转载。文章信息原名&#xff1a;Nitrogen transformations in modern agriculture and …

建设银行武威分行网站2016网站谷歌权重

认证是一个在用户或者设备在访问一个受限的系统时&#xff0c;鉴定用户凭据的过程&#xff0c;即确认“你是谁”的问题。最常见的认证用户的方式是通过用户名和密码的形式进行校验&#xff0c;目前存在多种校验方式&#xff0c;本文将对其进行一个简单的对比&#xff0c;使得大…