在Google App Engine-Java中禁用TLS/SSL检查

在Google App Engine-Java中禁用TLS/SSL检查,java,windows,google-app-engine,Java,Windows,Google App Engine,我的应用在访问HTTPS资源时(使用appengine-java-sdk-1.9.63)出现此错误: 如何使GAE不检查SSL,因为在我当前的应用程序用途中,它不关心它是否通过HTTP或HTTPS连接,所以在我的情况下,我只想禁用SSL检查 更新: 我正在从Windows运行应用程序(Linux不会抛出上述错误) 我已经修改了dev_appserver.cmd,如下所示: java -Ddeployment.security.TLSv1.1=false -Ddeployment.security

我的应用在访问HTTPS资源时(使用appengine-java-sdk-1.9.63)出现此错误:

如何使GAE不检查SSL,因为在我当前的应用程序用途中,它不关心它是否通过HTTP或HTTPS连接,所以在我的情况下,我只想禁用SSL检查

更新:

我正在从Windows运行应用程序(Linux不会抛出上述错误)

我已经修改了dev_appserver.cmd,如下所示:

java -Ddeployment.security.TLSv1.1=false -Ddeployment.security.TLSv1.2=false -cp "%~dp0\..\lib\appengine-tools-api.jar" ^
    com.google.appengine.tools.KickStart ^
       com.google.appengine.tools.development.DevAppServerMain %*
此外,在应用程序本身中,这是设置的:

FetchOptions fetchOptions = FetchOptions.Builder.doNotValidateCertificate();
HTTPRequest request = new HTTPRequest(getUrl, HTTPMethod.GET, fetchOptions)

Windows会抛出错误,而Linux没有问题,这可能是什么问题

解决这个问题的方法是更新机器的JDK。然后在从Java7升级到Java8之后,不再抛出
SSLHandshakeException


这样,问题就解决了。

那么,本质上,您希望您的应用程序将安全性抛到窗外?禁用SSL检查意味着您的应用程序易受中间人攻击和DNS劫持攻击的攻击,因为我的应用程序无论如何都不会传递任何凭据,只需要从URL获取一些内容,我们可以使用HTTP,但URL会重定向到HTTPS。HTTPS不仅仅是“加密凭据”,这也是确保真实性的一种方法:与我交谈的服务器是否真的是他们所说的那个人。现在我不确定你要获取的数据的性质,但是畸形数据可以用作攻击向量,所以我建议保持SSL并找出如何正确配置端点。(如果是您自己的服务器,请检查证书是否有效,如果是外部服务器,请通过SSLLAB运行证书,如果出现错误,请与所有者联系).Windows only错误?检查计算机上的CA证书是否是最新的machine@JeroenSteenbeeke我的应用程序并没有真正获取一些需要检查网站可信度的东西,只需要从中获取一些东西,然后返回一些其他东西。我的应用程序将忽略这些东西,其间没有传递任何凭据或其他任何东西另外,您声明您的问题在Linux上没有发生。这让我怀疑Windows实例上的Java安装已经过时,或者CA证书已经过期。
FetchOptions fetchOptions = FetchOptions.Builder.doNotValidateCertificate();
HTTPRequest request = new HTTPRequest(getUrl, HTTPMethod.GET, fetchOptions)