Java Cloudinary SDK无法找到到请求目标的有效证书路径

时间:2018-06-21 20:34:12

标签: java cloudinary

我正在使用Cloudinary(https://cloudinary.com)上传照片并获取URL作为回报:

public static final String uploadImage(File file) throws IOException {
    Cloudinary cloudinary = new Cloudinary("cloudinary://***:****@***");
    Map map = cloudinary.uploader().upload(file, ObjectUtils.emptyMap());
    return String.valueOf(map.get("url"));
}

但是,这会发生:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我已经试图覆盖TrustManager以信任所有证书,但是它不起作用:

private static void disableCert() {
try {
    SSLContext sContext = SSLContext.getInstance("SSL");
    sContext.init(
            null, 
            new TrustManager[] {
                new X509TrustManager() {

                    @Override
                    public X509Certificate[] getAcceptedIssuers() {
                        return null;
                    }

                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {

                    }

                    @Override
                    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {

                    }
                }
            },
            new SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sContext.getSocketFactory());
    HostnameVerifier verifier = new HostnameVerifier() {

        @Override
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    };
    HttpsURLConnection.setDefaultHostnameVerifier(verifier);
} catch (Exception e) {e.printStackTrace();}

是否可以将网址列入白名单?

0 个答案:

没有答案