Java->;Flask Https请求:javax.net.ssl.SSLHandshakeException:PKIX路径生成失败
因此,我正在尝试向我的Flask应用程序发送HTTPS请求。以前,它仅使用HTTP就可以成功地工作。现在,我想把它改成HTTPS 但不幸的是,它不起作用。在我的Java IDE和Python IDE中,我遇到以下错误: javax.net.ssl.SSLException:不支持或无法识别的ssl消息(Java客户端) 代码400,消息错误请求版本(“\x1bè\x13\x16”)。和 本月20日本月20日日本月20日日本月20日日本本月日本月日本本月日本月日本本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日,本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本月日本本月日本月本月本月日本月日本本本月日本月日本本本月日本月日本月À“HTTPStatus.BAD_请求*(服务器端) 我发送请求的代码是:Java->;Flask Https请求:javax.net.ssl.SSLHandshakeException:PKIX路径生成失败,java,ssl,flask,https,sslhandshakeexception,Java,Ssl,Flask,Https,Sslhandshakeexception,因此,我正在尝试向我的Flask应用程序发送HTTPS请求。以前,它仅使用HTTP就可以成功地工作。现在,我想把它改成HTTPS 但不幸的是,它不起作用。在我的Java IDE和Python IDE中,我遇到以下错误: javax.net.ssl.SSLException:不支持或无法识别的ssl消息(Java客户端) 代码400,消息错误请求版本(“\x1bè\x13\x16”)。和 本月20日本月20日日本月20日日本月20日日本本月日本月日本本月日本月日本本月日本月日本月日本月日本月日本月
URL myURL = new URL(requestUrl);
HttpsURLConnection connection = (HttpsURLConnection) myURL.openConnection();
connection.setRequestMethod("GET");
System.out.println(connection.getResponseCode());
...
基本上,我只是将我的连接对象更改为Https,并将URL字符串改为使用“Https”。它在HTTP中工作得非常好,而现在,Https没有任何功能
我必须做什么才能让它与HTTPS一起工作
编辑:在我的Flask应用程序中,我更改了
app.run
以包括参数ssl\u context='adhoc'
。现在我得到一个不同的异常:
javax.net.ssl.SSLHandshakeException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
ssl\u context='adhoc'
是正确的方法
这将生成一个自定义SSL证书,您可以通过https访问Flask应用程序
但是
由于此证书是自签名的,因此您的客户端(浏览器、curl或Java应用程序)不信任该证书
这就是为什么会收到错误消息
查看以下博文,了解更多您可以做的事情:
也许您将方案更改为
https
,但保留了http
端口?