gpt4 book ai didi

android - 通过 https 的 Volley Request 仅适用于 Wifi (wlan) 但不适用于 3G/GPRS (umts)

转载 作者:行者123 更新时间:2023-11-30 02:25:04 26 4
gpt4 key购买 nike

因为我被指示在我自己的问题中提出这个问题,所以我在这里这样做。
Original Topic其中我首先提出了我的问题(现已删除)。

我遇到了同样的问题,不幸的是作者的回答没有帮助。

为了更详细地介绍我的问题,我使用 Java 8 (v8.0.25 - JDK) 在互联网上的 Tomcat 8 (v8.0.15) 服务器上使用自签名证书。我在那里托管我的 Java EE 应用程序,它是我的 Android 应用程序的后端。 Tomcat 的 SSL 连接器正常工作。当我用 RESTClient 测试后端时我得到了预期的结果。
我用一个证书创建了 keystore :

keytool -genkey -alias tomcat -keystore tomcat.keystore 
-storepass MYKEYSTOREPASS -keyalg RSA -keysize 2048 -validity 365

然后我提取了证书:

keytool -export -alias tomcat -storepass MYKEYSTOREPASS 
-keystore tomcat.keystore -file tomcat.cer

最后,我为我的 Android 应用程序创建了一个 BKS 格式的新 keystore :

keytool -import -alias tomcat -file tomcat.cer -keypass MYKEYSTOREPASS 
-keystore tomcat.bks -storetype BKS -storepass MYKEYSTOREPASS
-providerClass org.bouncycastle.jce.provider.BouncyCastleProvider
-providerpath $PATH_TO_BC_LIBRARY/bcprov-jdk16-146.jar

(as mentioned here the "-export" and "-import" parameter are from previous releases but still useable. So you could also know this command parameters as "-exportcert" and "-importcert")

完成这些步骤后,我尝试连接,一切正常。但直到我停用/离开我的 WLAN 连接。然后它不再工作并带来“javax.net.ssl.SSLPeerUnverifiedException:没有对等证书”。
我真的不明白这种行为。

让 android 端更亮一点:
我使用了 this tutorial 中的类/库以完全相同的方式。

如果有什么遗漏,请评论,我会带来信息。

提前致谢!

最佳答案

在针对类似问题对服务器故障进行研究时,我得到了提示也可能出了什么问题: https://serverfault.com/questions/560733/why-isnt-tomcat-serving-the-correct-ssl-certificate我用缺少的参数“keyAlias”试了一下,它成功了!解决方案最终是——就像 Ogre_BGR 之前预期的那样——不是最佳的 tomcat 配置。连接器如下所示:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="PATH_TO_YOUR_KEYSTORE"
keystorePass="PASSWORD_FOR_YOUR_KEYSTORE"
keyAlias="ALIAS_OF_YOUR_CERTIFICATE"
maxHttpHeaderSize="8192"
/>

当没有配置 keyAlias 时,Tomcat 只默默地选择它在 keystore 中找到的第一个 key 。文档中提到 here (在底部)。

我希望有一天有人会高兴地阅读这篇文章,同时遇到同样的问题。

再次感谢@Ogre_BGR :)

关于android - 通过 https 的 Volley Request 仅适用于 Wifi (wlan) 但不适用于 3G/GPRS (umts),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27984082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com