当前位置: 首页 > news >正文

Minio使用https自签证书

自签证书参考:window和ubuntu自签证书_windows 自签证书-CSDN博客

// certFilePath: 直接放在 resources 目录下 或者可以自定实现读取逻辑  // 读取的是  .crt 证书文件public static OkHttpClient createTrustingOkHttpClient(String certFilePath) throws Exception {// 1. 加载证书CertificateFactory cf = CertificateFactory.getInstance("X.509");InputStream certInput = SSLUtil.class.getClassLoader().getResourceAsStream(certFilePath);if (certInput == null || certInput.available() == 0) {throw new RuntimeException("证书读取失败");}X509Certificate ca = (X509Certificate) cf.generateCertificate(certInput);// 2. 创建KeyStore并导入证书KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());keyStore.load(null, null);keyStore.setCertificateEntry("ca", ca);// 3. 创建TrustManager信任我们的KeyStoreTrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(keyStore);// 4. 创建SSLContextSSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init(null, tmf.getTrustManagers(), null);// 5. 创建OkHttpClientreturn new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) tmf.getTrustManagers()[0]).hostnameVerifier((hostname, session) -> true) // 可选:禁用主机名验证.build();}public static void main(String[] args) throws Exception {// 构建 OkHttpClientOkHttpClient insecureClient = createTrustingOkHttpClient("test_10.crt");MinioClient client = MinioClient.builder().endpoint("https://192.168.0.101:9000").credentials("abc-bucket", "123456").region("us-east-1").httpClient(insecureClient).build();List<Bucket> buckets = client.listBuckets();System.out.println(buckets);}

http://www.dtcms.com/a/254255.html

相关文章:

  • Excel学习01
  • 面试题:设计一个分布式“附近的人”功能(如微信附近的人、交友应用位置匹配)
  • 数字华容道智力小游戏微信流量主小程序开源
  • ros中相机话题在web页面上的显示,尝试js解析sensor_msgs/Image数据
  • DHCP服务
  • 亚马逊云科技中国峰会召开 解码Agentic AI时代企业加速创新路径
  • 猜数字小游戏微信流量主小程序开源
  • [Data Pipeline] docs | Mysql源 | Spark处理
  • c++ STL---vector使用
  • web布局02
  • (十六)深入了解 AVFoundation - 编辑:音视频裁剪与拼接的Demo项目实现
  • 如何将文件从安卓设备传输到电脑?
  • 如何使用 USB 数据线将文件从 PC 传输到 iPhone
  • 编程马拉松的定义、运作与发展
  • Linux内存进阶
  • OpenAI的Prompt工程
  • ABP VNext + MongoDB 数据存储:多模型支持与 NoSQL 扩展
  • 动态规划算法思路详解
  • 基于微信小程序在肠造口病人健康宣教中的应用
  • C#编程与1200PLC S7通信
  • 单点登录我们的
  • AI正在重构SaaS的底层逻辑:从“买软件”到“写软件”的范式转移
  • C++ std::set的用法
  • ​​​​​​​神经网络基础讲解 一
  • Python爬虫(六):Scrapy框架
  • 深入解析connect函数:阻塞与非阻塞模式下的行为差异
  • SQL注入安全研究
  • 在 Mac 上配置 Charles,抓取 iOS 手机端接口请求
  • 机器学习赋能多尺度材料模拟:前沿技术会议邀您共探
  • 【深度学习】生成对抗网络(GANs)深度解析:从理论到实践的革命性生成模型