自簽證書參考: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);}