尝试通过https请求使用SMS API时,无法找到到请求目标的有效证书路径

豪尔赫·萨拉维亚(Jorge Saravia):

我正在尝试使用API​​从Java发送短信。

我只需要使用URL中编写的参数发出https请求即可。

https://notificame.claro.com.hn/api/http/send_to_contact?msisdn504999999=&message=mymessage&api_key=00000&id=000

如果我复制生成的URL并将其直接粘贴到我的浏览器中,它将发送SMS。

我在PHP上有使用它的有效代码,但我需要在JAVA上使用它

我已经试过了:

try 
    {
        HttpsURLConnection con;
        URL url = new URL(pre_url); 
        con = (HttpsURLConnection) url.openConnection();
        System.out.println(url.getContent());

    } catch (MalformedURLException ex) {
        Logger.getLogger(crearUsuarioBean.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(crearUsuarioBean.class.getName()).log(Level.SEVERE, null, ex);
    }

但我收到此错误:

Severe:   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
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)...

我还按照一些说明使用keytool将带有.cer的证书添加到cacerts中,但没有成功。我有两个文件夹,jdk1.8.0_131和jre1.8.0_131,因此我已经尝试在两个文件夹上安装证书。仍然没有成功。

这是使我在PHP上工作的代码:

function enviarMensaje($cel, $solicitud, $id){     
$mensaje="My message";
$url = "https://notificame.claro.com.hn/api/http/send_to_contact?msisdn=504".$cel."&message=".$mensaje."&api_key=MyAppiKey&id=".$id;
$url = str_replace(" ", "%20", $url);
file($url);
echo $url."<br />\n";   

}

我只需要这样简单的东西。我正在使用Primefaces开发JSF2.2

或者也许是直接从Java调用简单php代码的某种方法。

请帮助。

豪尔赫·萨拉维亚(Jorge Saravia):

经过几天的相同问题,我终于找到了可能对某些人有用的解决方案。

诀窍是创建一个TrustManager,这样它就可以忽略所有SSL内容。

我添加了以下代码:

// Create a trust manager that does not validate certificate chains
    TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(X509Certificate[] certs, String authType) {
            }
            public void checkServerTrusted(X509Certificate[] certs, String authType) {
            }
        }
    };

    // Install the all-trusting trust manager
    SSLContext sc = SSLContext.getInstance("SSL");
    sc.init(null, trustAllCerts, new java.security.SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

    // Create all-trusting host name verifier
    HostnameVerifier allHostsValid = new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    };

    // Install the all-trusting host verifier
    HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);

在此之后,与HTTPS网址建立的任何连接都将起作用。

我在这里找到了解决方案:https : //nakov.com/blog/2009/07/16/disable-certificate-validation-in-java-ssl-connections/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Maven是“无法找到到所请求目标的有效证书路径”-letsencrypt ssl证书

Spring工具套件-SunCertPathBuilderException:无法找到到请求目标的有效证书路径

Java 11 SSL异常:无法找到到请求目标的有效证书路径

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

CAS SunCertPathBuilderException:无法找到到请求目标的有效证书路径

无法找到到请求目标的有效证书路径-即使导入证书后也会出错

在Java中验证证书会引发异常-无法找到到请求目标的有效证书路径

HtmlUnit-PKIX路径构建失败:无法找到到请求目标的有效证书路径

“ PKIX路径构建失败”和“无法找到到所请求目标的有效证书路径”

JavaMail中的错误:PKIX路径构建失败,无法找到到请求目标的有效证书路径

原因:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径

Akka HTTP客户端抛出SSLHandshakeException,并且无法找到到请求目标的有效证书路径

Android服务器应用程序:SSLHandshakeException(无法找到到请求目标的有效证书路径)

SunCertPathBuilderException:无法在CN1应用中找到到请求目标的有效证书路径

无法使用Quarkus找到到所请求目标的有效认证路径

突然“无法找到到所请求目标的有效认证路径”

骆驼组件测试中的“无法找到到所请求目标的有效认证路径”

CFHTTP无法找到到请求目标的有效认证路径

错误:原因:无法找到到请求目标的有效认证路径

Grails create-app无法找到到请求目标的有效认证路径

Maven:无法找到到所请求目标的有效认证路径

WSO2 API管理器,无效。无法找到到请求目标的有效认证路径

JDK8-> JDK10:PKIX路径构建失败:SunCertPathBuilderException:无法找到到请求目标的有效证书路径

Java证书客户端SSL:无法找到请求的目标的有效证书路径

Maven错误,PKIX路径构建失败:无法找到请求目标的有效证书路径

PKIX路径构建失败:无法找到请求的目标的有效证书路径-导入的CERT

带有SureFire插件的Maven TestNG:无法找到请求目标的有效证书路径

“无法找到到所请求目标的有效认证路径”,但浏览器表示可以

Firebase Admin SDK:无法找到请求的目标的有效证书路径