我正在使用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();}
是否可以将网址列入白名单?