Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android。我收到一个HTTPS连接错误_Java_Android_Https_Certificate_Ssl Certificate - Fatal编程技术网

Java Android。我收到一个HTTPS连接错误

Java Android。我收到一个HTTPS连接错误,java,android,https,certificate,ssl-certificate,Java,Android,Https,Certificate,Ssl Certificate,我正在尝试在自签名Tomcat8.5服务器中实现HTTPS连接。我花了两天时间试图找到这个bug(认为它与证书有关) 执行GET操作的代码非常简单: DefaultHttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet("https://myIpServer:8443"); HttpResponse response = client.execute(get); 它被添加到一个Inst

我正在尝试在自签名Tomcat8.5服务器中实现HTTPS连接。我花了两天时间试图找到这个bug(认为它与证书有关)

执行GET操作的代码非常简单:

    DefaultHttpClient client = new DefaultHttpClient();
    HttpGet get = new HttpGet("https://myIpServer:8443");
    HttpResponse response = client.execute(get);
它被添加到一个
InstrumentTestCase2
测试中,该测试链接到我的
MainActivity
(它做其他事情,但与HTTP连接无关,因此不会出现问题)

我收到这个错误:

02-13 10:37:36.033  6215  6246 W System  : ClassLoader referenced unknown path: /system/framework/tcmclient.jar
02-13 10:37:36.186   788  3961 I ActivityManager: Killing 6188:com.tumblr/u0a111 (adj 15): empty #17
02-13 10:37:36.266   788  3961 I ActivityManager: Killing 6161:com.android.keychain/1000 (adj 15): empty #18
02-13 10:37:36.323   788  3704 D GraphicsStats: Buffer count: 9
02-13 10:37:36.324   788  3704 I WindowState: WIN DEATH: Window{997cc4d u0 gasnatural.appcountermanager/myapp.main.MainActivity}
服务器证书似乎是正确的:

openssl s_client -connect myIpServer:8443      
CONNECTED(00000003)
depth=0 C = XXX, ST = XXX, L = XXX, O = XXX, OU = XXX, CN = XXX
verify error:num=18:self signed certificate
verify return:1
depth=0 C = XXX, ST = XXX, L = XXX, O = XXX, OU = XXX, CN = XXX
verify return:1
---
Certificate chain
 0 s:/C=XXX/ST=XXX/L=XXX/O=XXX/OU=XXX/CN=XXX
   i:/C=XXX/ST=XXX/L=XXX/O=XXX/OU=XXX/CN=XXX
---
---
Server certificate
-----BEGIN CERTIFICATE-----
My certificate hash
-----END CERTIFICATE-----
subject=/C=XXX/ST=XXX/L=XXX/O=XXX/OU=XXX/CN=XXX
issuer=/C=XXX/ST=XXX/L=XXX/O=XXX/OU=XXX/CN=XXX
---
No client certificate CA names sent
---
SSL handshake has read 1499 bytes and written 501 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: a_long_id_number
    Session-ID-ctx: 
    Master-Key: a_long_id_number
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1486978425
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
我的服务器在8080中可以很好地用于HTTP。此外,我还测试了另一个自签名web,之前粘贴的代码连接没有问题

更新1:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="gasnatural.appcountermanager">

    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".main.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".listconcentrators.ListConcentratorsActivity" android:screenOrientation="portrait"/>
        <activity android:name=".informationconcentrator.InformationConcentratorActivity" android:screenOrientation="portrait"/>
        <activity android:name=".newconcentrator.NewConcentratorActivity" android:screenOrientation="portrait"/>
        <activity android:name=".listcameras.ListCamerasActivity" android:screenOrientation="portrait"/>
        <activity android:name=".configurecamera.ConfigureCameraActivity" android:screenOrientation="portrait"/>
        <activity android:name=".mock.MockTestActivity" android:screenOrientation="portrait"/>
        <activity  android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name=".drawrectangle.DrawRectangleActivity" />


        <service android:name="gasnatural.appcountermanager.bluetooth.BTService"
            android:enabled="true"
            android:exported="false">
        </service>
    </application>

</manifest>


评论:(我知道,自签名是不安全的,但它是我们公司的原型,对于未来可能的生产版本,它将得到很好的配置)

新的HttpGet(“http://myIpServer:8443");不应该这样吗“https://...“?我的错,我粘贴了错误的代码…我使用https,我将在这个问题中的postSame错误消息中修复它:结果是一个错误清单。你能检查一下吗?所有的安卓应用在8080中都可以正常工作。出于这个原因,我放弃了androidmanifest.xml的一个问题。不管怎样,我会检查它,也会粘贴它。如果有人在文件中发现错误,我将不胜感激…
ClassLoader引用的未知路径:/system/framework/tcmclient.jar
此文件是您的吗?您是如何配置客户端信任库的?