簡體   English   中英

Linux中的Java SSL握手失敗,但OSX和Windows中沒有

[英]Java SSL handshake failure in Linux but not in OSX and Windows

我正在嘗試通過axis訪問Web服務,並且在生產服務器(運行Oracle Java 1.7.0_51)中遇到一個奇怪的錯誤。 錯誤是javax.net.ssl.SSLException: Received close_notify during handshake 因此,我創建了一個簡單的Java應用程序來測試與我嘗試訪問的服務器的SSL連接:

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.KeyStore;
import java.security.cert.Certificate;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLPeerUnverifiedException;

import org.jsslutils.sslcontext.X509SSLContextFactory;

public class SSLTest {
    public static void main(String args[]) throws Exception {
        KeyStore ks = KeyStore.getInstance("PKCS12");
        ks.load(new FileInputStream(System.getProperty("user.home")
                + "/store.p12"), "pwd".toCharArray());
        X509SSLContextFactory sslContextFactory = new X509SSLContextFactory(ks,
                "pwd", null);
        SSLContext sc = sslContextFactory.buildSSLContext("TLS");
        HttpsURLConnection con = (HttpsURLConnection) (new URL(
                "https://producao.ginfes.com.br/")).openConnection();
        con.setSSLSocketFactory(sc.getSocketFactory());
        print_https_cert(con);
    }

    private static void print_https_cert(HttpsURLConnection con) {

        if (con != null) {

            try {

                System.out.println("Response Code : " + con.getResponseCode());
                System.out.println("Cipher Suite : " + con.getCipherSuite());
                System.out.println("\n");

                Certificate[] certs = con.getServerCertificates();
                for (Certificate cert : certs) {
                    System.out.println("Cert Type : " + cert.getType());
                    System.out.println("Cert Hash Code : " + cert.hashCode());
                    System.out.println("Cert Public Key Algorithm : "
                            + cert.getPublicKey().getAlgorithm());
                    System.out.println("Cert Public Key Format : "
                            + cert.getPublicKey().getFormat());
                    System.out.println("\n");
                }

            } catch (SSLPeerUnverifiedException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }
}

如果我在OSX開發箱(使用Oracle Java 1.7.0_51)或Windows虛擬機(相同的Java版本)中運行此程序,它將按預期進行SSL握手。 但是,我嘗試在兩台不同的Linux機器(一台運行Debian,一台運行Ubuntu)上運行此代碼,但出現SSL握手錯誤。 我嘗試將cacerts從OSX復制到Linux,但結果相同。 這是SSL調試日志的結尾(在相當標准的情況下會發生什么,似乎還可以):

*** CertificateVerify
main, WRITE: TLSv1 Handshake, length = 262
main, WRITE: TLSv1 Change Cipher Spec, length = 1
*** Finished
verify_data:  { 101, 104, 63, 185, 83, 175, 198, 66, 90, 163, 8, 111 }
***
main, WRITE: TLSv1 Handshake, length = 48
main, READ: TLSv1 Alert, length = 2
main, RECV TLSv1 ALERT:  warning, close_notify
%% Invalidated:  [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA]
main, SEND TLSv1 ALERT:  fatal, description = unexpected_message
main, WRITE: TLSv1 Alert, length = 32
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLException: Received close_notify during handshake

我還注意到錯誤發生時(大約10秒鍾),該程序需要花費更長的時間才能運行。 有任何想法嗎?

更新 :我嘗試在ubuntu框上的OpenJDK 1.6.0_18上運行以上程序,結果是相同的。 我還嘗試在Debian虛擬機上運行相同的代碼,並且可以正常工作。

更新 :我添加了調試級別,並比較了正在運行的計算機與未運行的計算機之間的日志。

工作機:

Padded plaintext before ENCRYPTION:  len = 48
0000: 14 00 00 0C 5C A9 32 C7   47 B7 B1 83 96 47 D8 D1  ....\.2.G....G..
0010: 9B BD 15 31 51 2E 45 65   81 2B 1B 26 08 08 8D 1A  ...1Q.Ee.+.&....
0020: E2 85 A5 2A 0B 0B 0B 0B   0B 0B 0B 0B 0B 0B 0B 0B  ...*............
main, WRITE: TLSv1 Handshake, length = 48
[Raw write]: length = 53
0000: 16 03 01 00 30 DB 48 03   85 60 A8 B9 42 0F C6 40  ....0.H..`..B..@
0010: 91 F0 E5 50 1F 41 92 79   5F FE 31 B0 D5 BC D6 61  ...P.A.y_.1....a
0020: C0 50 D6 BB 3D 97 21 A6   ED 50 C1 96 0C 17 BE 41  .P..=.!..P.....A
0030: A8 13 C7 63 C3                                     ...c.
[Raw read]: length = 5
0000: 14 03 01 00 01                                     .....
[Raw read]: length = 1
0000: 01                                                 .
main, READ: TLSv1 Change Cipher Spec, length = 1
[Raw read]: length = 5
0000: 16 03 01 00 30                                     ....0
[Raw read]: length = 48

非工作機:

Padded plaintext before ENCRYPTION:  len = 48
0000: 14 00 00 0C C0 77 AD 05   06 CD 4B 55 19 25 22 1E  .....w....KU.%".
0010: 92 2E 87 6D CD 38 06 4E   D2 33 4D 27 4B 2A 05 2B  ...m.8.N.3M'K*.+
0020: DF C2 D1 47 0B 0B 0B 0B   0B 0B 0B 0B 0B 0B 0B 0B  ...G............
main, WRITE: TLSv1 Handshake, length = 48
[Raw write]: length = 53
0000: 16 03 01 00 30 31 5B 38   C5 0D 02 34 A4 8D BB 2D  ....01[8...4...-
0010: 2E A0 96 8E E0 D4 33 43   27 3F DE FB 2D 53 A4 83  ......3C'?..-S..
0020: 67 73 12 C5 A3 61 0C C1   EA C4 AF 0F 1B 44 5F 7B  gs...a.......D_.
0030: B2 21 4D 51 2D                                     .!MQ-

***** It stops here for about 10s *****

[Raw read]: length = 5
0000: 15 03 01 00 02                                     .....
[Raw read]: length = 2
0000: 01 00                                              ..
main, READ: TLSv1 Alert, length = 2
main, RECV TLSv1 ALERT:  warning, close_notify
%% Invalidated:  [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA]
main, SEND TLSv1 ALERT:  fatal, description = unexpected_message

我想主要的區別是我在有問題的機器上得到15 03 01 00 02在工作機器上得到14 03 01 00 01

這是有問題的計算機上握手的更完整的調試日志:

*** CertificateRequest
Cert Types: RSA, DSS
Cert Authorities:
<CN=AC SINCOR RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC CAIXA PF v1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR>
<CN=AC VALID RFB, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Certisign G3, OU=Instituto Nacional de Tecnologia da Informacao - ITI, O=ICP-Brasil, C=BR>
<CN=AC SOLUTI, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=SERASA Certificadora Digital v1, O=ICP-Brasil, C=BR>
<CN=AC Certisign Multipla G5, OU=Certisign Certificadora Digital S.A., O=ICP-Brasil, C=BR>
<CN=AC Secretaria da Receita Federal do Brasil, O=ICP-Brasil, C=BR>
<CN=AC Instituto Fenacon RFB, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC BR RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC CAIXA PJ-1 v1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora da Presidencia da Republica v2, O=ICP-Brasil, C=BR>
<CN=AC SOLUTI Multipla, OU=AC SOLUTI, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC PRODEST RFB v2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Certisign-JUS G3, OU=Autoridade Certificadora da Justica - AC-JUS, O=ICP-Brasil, C=BR>
<CN=AC SINCOR RFB G4, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=SERASA Autoridade Certificadora Principal v2, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC OAB, OU=ORDEM DOS ADVOGADOS DO BRASIL CONSELHO FEDERAL, O=ICP-Brasil, C=BR>
<CN=AC Imprensa Oficial G3, OU=Imprensa Oficial do Estado S A IMESP, O=ICP-Brasil, C=BR>
<CN=SERASA Certificadora Digital v2, O=ICP-Brasil, C=BR>
<CN=AC PRODEMGE G2, OU=Companhia de Tecnologia da Informacao do Estado de MG - PRODEMGE, O=ICP-Brasil, C=BR>
<CN=AC PRODEMGE RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC PRODEST RFB V1, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Certisign Multipla G3, OU=Certisign Certificadora Digital S.A., O=ICP-Brasil, C=BR>
<CN=SERASA Autoridade Certificadora Principal v1, OU=Instituto Nacional de Tecnologia da Informacao - ITI, O=ICP-Brasil, C=BR>
<CN=AC Notarial RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC SERASA RFB v1, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Instituto Fenacon, OU=Certisign Certificadora Digital S.A., O=ICP-Brasil, C=BR>
<CN=AC VALID, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora do PRODERJ v2, OU=Servico Federal de Processamento de Dados - SERPRO, O=ICP-Brasil, C=BR>
<CN=AC CAIXA-JUS v1, OU=Autoridade Certificadora da Justica - AC-JUS, O=ICP-Brasil, C=BR>
<CN=AC CAIXA v1, OU=Autoridade Certificadora Raiz Brasileira v1, O=ICP-Brasil, C=BR>
<CN=AC SINCOR G3, OU=SINCOR-SP - Sindicato dos Corretores de Seguros no Estado de SP, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora da Casa da Moeda do Brasil, O=ICP-Brasil, C=BR>
<CN=AC Secretaria da Receita Federal do Brasil v3, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC Certisign SPB G5, OU=CSPB-2, OU=Certisign Certificadora Digital S.A., O=ICP-Brasil, C=BR>
<CN=AC Imprensa Oficial G2, OU=Imprensa Oficial do Estado S A IMESP, O=ICP-Brasil, C=BR>
<CN=AC PRODEMGE RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC FENACON Certisign RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Notarial RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Certisign G5, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC OAB G2, OU=ORDEM DOS ADVOGADOS DO BRASIL CONSELHO FEDERAL, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora Raiz Brasileira v1, OU=Instituto Nacional de Tecnologia da Informacao - ITI, O=ICP-Brasil, C=BR>
<CN=AC BR RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC FENACON Certisign RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC SINCOR G2, OU=SINCOR-SP - Sindicato dos Corretores de Seguros no Estado de SP, O=ICP-Brasil, C=BR>
<CN=AC CAIXA PF v2, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora do SERPRO Final v2, OU=CSPB-1, OU=Servico Federal de Processamento de Dados - SERPRO, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora SERPRO v2, O=ICP-Brasil, C=BR>
<CN=AC SERASA-JUS v2, OU=Autoridade Certificadora da Justica - AC-JUS, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora da Casa da Moeda do Brasil v2, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC Certisign RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora SERPRO v3, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora da Presidencia da Republica v3, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC Imprensa Oficial SP RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Imprensa Oficial SP RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC SERPRO-JUS v4, OU=Autoridade Certificadora da Justica - AC-JUS, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora do SERPRORFB, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC PETROBRAS G3, OU=PETROLEO BRASILEIRO S A PETROBRAS, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora da Justica v3, OU=Instituto Nacional de Tecnologia da Informacao - ITI, O=ICP-Brasil, C=BR>
<CN=AC CAIXA PJ v2, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR>
<CN=SERASA Autoridade Certificadora v2, OU=CSPB-4, O=ICP-Brasil, C=BR>
<CN=AC CAIXA PJ v1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR>
<CN=AC FENACOR v1, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora Raiz Brasileira v2, OU=Instituto Nacional de Tecnologia da Informacao - ITI, O=ICP-Brasil, C=BR>
<CN=AC VALID BRASIL, OU=Autoridade Certificadora VALID - AC VALID, O=ICP-Brasil, C=BR>
<CN=AC Instituto Fenacon G2, OU=Certisign Certificadora Digital S.A., O=ICP-Brasil, C=BR>
<CN=AC CAIXA-JUS v2, OU=Autoridade Certificadora da Justica - AC-JUS, O=ICP-Brasil, C=BR>
<CN=AC SERASA RFB v2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC CAIXA v2, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC SINCOR RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC Certisign G6, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC Certisign SPB G3, OU=CSPB-2, OU=Certisign Certificadora Digital S.A., O=ICP-Brasil, C=BR>
<CN=AC Instituto Fenacon RFB G2, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC PRODEMGE G3, OU=Companhia de Tecnologia da Informacao do Estado de MG - PRODEMGE, O=ICP-Brasil, C=BR>
<CN=AC Imprensa Oficial SP G3, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora SERPRORFB v3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=AC CAIXA PF-1 v1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora da Justica v4, OU=Autoridade Certificadora Raiz Brasileira v2, O=ICP-Brasil, C=BR>
<CN=AC Certisign RFB G4, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR>
<CN=Autoridade Certificadora do SERPRO Final v3, OU=CSPB-1, OU=Servico Federal de Processamento de Dados - SERPRO, O=ICP-Brasil, C=BR>
<CN=SERASA Autoridade Certificadora v1, OU=CSPB-4, O=ICP-Brasil, C=BR>
<CN=AC PETROBRAS G2, OU=PETROLEO BRASILEIRO S A PETROBRAS, O=ICP-Brasil, C=BR>
*** ServerHelloDone
matching alias: reck
*** Certificate chain
chain [0] = [
[
  Version: V3
  Subject: CN=RECK ADUANEIRA DA AMAZONIA LTDA EPP:04196535000130, OU=Autenticado por Certisign Certificadora Digital, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=Manaus, ST=AM, O=ICP-Brasil, C=BR
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 24264184986868774817109830233364138275159044314776683839159346319997124349933949877714767467019900893922103704627632635801354814980174333627259816789227876034401362981372036626722143197822471256073667985551606390419290945624717517336706723117075591357700922888857619015416854504245521884304442214801958124913868169748389485419085887733283148575345306707962145302335042268398018623594061588310268698492035969886039355083147115598208957166248264558044010787457176664927563276373784025971208332280527156543734405427875599738053187830200999849548622241460736320436233846016936389807957942162381899068664985384000873470187
  public exponent: 65537
  Validity: [From: Mon Feb 24 20:00:00 AMT 2014,
               To: Tue Feb 24 19:59:59 AMT 2015]
  Issuer: CN=AC Certisign RFB G4, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR
  SerialNumber: [    7fba6035 25b2378c abca9da3 6e5a5932]

Certificate Extensions: 8
[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: caIssuers
   accessLocation: URIName: http://icp-brasil.certisign.com.br/repositorio/certificados/AC_Certisign_RFB_G4.p7c
, 
   accessMethod: ocsp
   accessLocation: URIName: http://ocsp.certisign.com.br
]
]

[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 2E 91 EA D6 6D E5 B2 59   82 DC 38 85 29 76 34 16  ....m..Y..8.)v4.
0010: 56 3C D0 3E                                        V<.>
]
]

[3]: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:false
  PathLen: undefined
]

[4]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://icp-brasil.certisign.com.br/repositorio/lcr/ACCertisignRFBG4/LatestCRL.crl]
, DistributionPoint:
     [URIName: http://icp-brasil.outralcr.com.br/repositorio/lcr/ACCertisignRFBG4/LatestCRL.crl]
, DistributionPoint:
     [URIName: http://repositorio.icpbrasil.gov.br/lcr/Certisign/ACCertisignRFBG4/LatestCRL.crl]
]]

[5]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.16.76.1.2.1.12]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 5C 68 74 74 70 3A 2F   2F 69 63 70 2D 62 72 61  .\http://icp-bra
0010: 73 69 6C 2E 63 65 72 74   69 73 69 67 6E 2E 63 6F  sil.certisign.co
0020: 6D 2E 62 72 2F 72 65 70   6F 73 69 74 6F 72 69 6F  m.br/repositorio
0030: 2F 64 70 63 2F 41 43 5F   43 65 72 74 69 73 69 67  /dpc/AC_Certisig
0040: 6E 5F 52 46 42 2F 44 50   43 5F 41 43 5F 43 65 72  n_RFB/DPC_AC_Cer
0050: 74 69 73 69 67 6E 5F 52   46 42 2E 70 64 66        tisign_RFB.pdf

]]  ]
]

[6]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  clientAuth
  emailProtection
]

[7]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Non_repudiation
  Key_Encipherment
]

[8]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.4
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.2
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.3
  Other-Name: Unrecognized ObjectIdentifier: 2.16.76.1.3.7
  RFC822Name: raraujo@reckaduaneira.com.br
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: 9E E2 B9 4D DC B5 86 67   36 2E 08 30 66 43 2A EB  ...M...g6..0fC*.
0010: C6 BA 45 5F BF 5D 9D 9E   B0 FD 20 50 75 12 C2 4E  ..E_.].... Pu..N
0020: D1 FC 46 2C 33 DB 04 31   B9 1C 6F C1 53 DE 58 F6  ..F,3..1..o.S.X.
0030: F7 BF A8 D8 E3 DD 88 05   4B 8B 7A 37 8F 92 C6 47  ........K.z7...G
0040: 40 AE 7F 95 32 FD 82 0C   4E 10 73 A2 21 D8 BF F0  @...2...N.s.!...
0050: 0A EC 1D 14 96 32 98 78   00 18 16 62 EA 3E 99 8F  .....2.x...b.>..
0060: 6F 55 71 63 A0 72 81 AE   EC F7 19 70 4B 36 4C B4  oUqc.r.....pK6L.
0070: 2B 76 7B 95 36 BA DA CA   38 B7 EE 8F F2 C8 76 AE  +v..6...8.....v.
0080: 47 F9 D0 C0 DB 2F 0A 21   F1 25 83 E8 E5 72 A9 7D  G..../.!.%...r..
0090: 4C C7 6A F8 7D D7 7D C8   D5 7F 67 E8 F8 A2 9D 75  L.j.......g....u
00A0: D0 69 8F 44 CF 04 DA 8D   77 A6 75 BD 7E 83 4C FB  .i.D....w.u...L.
00B0: E6 8C D9 79 12 3B A6 5E   A6 56 1F C8 E6 99 75 DE  ...y.;.^.V....u.
00C0: 93 3B 96 6C 87 A9 EF 99   8C D2 EA BD C5 24 28 86  .;.l.........$(.
00D0: 69 BD 4C 85 06 88 DE 78   06 C1 42 D0 07 1F F6 06  i.L....x..B.....
00E0: EF 32 17 49 22 B1 68 5C   80 CB 51 C4 1F F5 EB 1F  .2.I".h\..Q.....
00F0: A7 D6 A9 36 04 27 38 A4   08 97 78 80 2C 10 55 47  ...6.'8...x.,.UG
0100: C3 9B 1C 72 8F 73 56 85   30 29 82 99 E6 86 F3 09  ...r.sV.0)......
0110: 7F 3D 65 40 3F 8A BE E8   6F 12 AB FE 5C B6 9F 3F  .=e@?...o...\..?
0120: 37 7F B1 75 C0 3A 05 8D   5B 30 27 EA E7 A7 D2 4F  7..u.:..[0'....O
0130: 2D 57 1D E3 7B 8B 88 18   0A 53 26 8B AD D6 98 BB  -W.......S&.....
0140: 05 13 EE 29 0F BD 8D BC   C0 F9 40 26 28 23 D5 9F  ...)......@&(#..
0150: 1B 01 3A 8A 6E 6D 07 8A   73 78 75 84 10 30 C9 E9  ..:.nm..sxu..0..
0160: 87 DC 62 C8 43 60 95 ED   42 FB 72 3F E0 F1 0E 03  ..b.C`..B.r?....
0170: CE 61 69 EC 74 E2 9E E9   99 37 AA 60 29 E6 4B 7D  .ai.t....7.`).K.
0180: 68 54 8F 5F 62 33 81 98   24 FC FE 55 11 B8 D5 3F  hT._b3..$..U...?
0190: 4D DC E7 91 66 99 92 66   0E 5F D9 1A B1 79 29 8F  M...f..f._...y).
01A0: 2D 64 90 B6 65 27 B5 B7   50 90 7F 3D DD 9F 04 71  -d..e'..P..=...q
01B0: B2 62 6C 9D 1A 84 59 A3   C8 F2 E0 14 CC DB 7F 6E  .bl...Y........n
01C0: 1F CA 26 DE C6 79 DC B4   1C 11 98 27 93 02 BF 63  ..&..y.....'...c
01D0: 9F FD 64 DB D3 AB D3 71   30 44 C3 27 81 45 66 5E  ..d....q0D.'.Ef^
01E0: B1 E8 F1 31 86 57 8C 0F   56 0A F4 73 EC 92 86 6E  ...1.W..V..s...n
01F0: E8 D6 AD 7A F7 46 BF 19   57 E2 10 BB 8D 10 D9 CC  ...z.F..W.......

]
***
*** ClientKeyExchange, RSA PreMasterSecret, TLSv1
main, WRITE: TLSv1 Handshake, length = 2427
SESSION KEYGEN:
PreMaster Secret:
0000: 03 01 60 9E 6C E9 27 4A   72 09 D1 52 89 13 AE 49  ..`.l.'Jr..R...I
0010: 63 C2 E7 65 01 7E B5 D3   B3 3D 8E 26 A4 EC 4F 98  c..e.....=.&..O.
0020: DF C1 75 8B 05 87 4D 49   09 85 BD E1 11 9C 39 65  ..u...MI......9e
CONNECTION KEYGEN:
Client Nonce:
0000: 53 0F 26 B0 D4 96 D4 FF   C3 5A 90 A5 59 6D 62 92  S.&......Z..Ymb.
0010: C2 C0 6A 5B 53 8F 03 82   F6 DB DA 12 CF C4 92 74  ..j[S..........t
Server Nonce:
0000: 53 0F 26 AE 59 92 B6 3F   9B 5F 31 51 1C 6B C6 63  S.&.Y..?._1Q.k.c
0010: 4F 82 F3 6A 57 E3 76 8B   57 F4 1B 63 E3 FF DC F2  O..jW.v.W..c....
Master Secret:
0000: 73 EE 18 E9 0F 0A 05 B0   DC 88 93 B3 0D E0 C4 FE  s...............
0010: C1 D1 18 66 D7 32 7A E2   6A 7D 8B 26 77 42 10 16  ...f.2z.j..&wB..
0020: 26 94 04 B6 41 56 E0 14   DC 1C B1 99 3A 21 DB DC  &...AV......:!..
Client MAC write Secret:
0000: 18 9E 28 78 D6 7D 5C 41   7D CB C6 36 1B AC D7 43  ..(x..\A...6...C
0010: 66 4D 49 74                                        fMIt
Server MAC write Secret:
0000: 4F E9 4B FE 71 B0 03 7A   6E 27 34 4E 25 23 54 90  O.K.q..zn'4N%#T.
0010: 7A 09 D2 90                                        z...
Client write key:
0000: 36 68 CF 35 5D ED 5F 47   0B 3A 4A 7B 39 03 6C E4  6h.5]._G.:J.9.l.
Server write key:
0000: 8D 1C F6 9B A6 67 4A F6   9C 11 25 71 C1 CD D7 18  .....gJ...%q....
Client write IV:
0000: 39 D4 9B 42 92 E4 FD AA   10 82 3D 53 F1 55 14 DC  9..B......=S.U..
Server write IV:
0000: 59 75 C5 B2 AC F1 D6 BD   27 EF 95 2F B5 99 11 48  Yu......'../...H
*** CertificateVerify
main, WRITE: TLSv1 Handshake, length = 262
main, WRITE: TLSv1 Change Cipher Spec, length = 1
*** Finished
verify_data:  { 88, 21, 98, 75, 128, 1, 201, 112, 209, 181, 184, 61 }
***
main, WRITE: TLSv1 Handshake, length = 48
main, READ: TLSv1 Alert, length = 2
main, RECV TLSv1 ALERT:  warning, close_notify
%% Invalidated:  [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA]
main, SEND TLSv1 ALERT:  fatal, description = unexpected_message
main, WRITE: TLSv1 Alert, length = 32
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLException: Received close_notify during handshake

更新 :我在程序在Debian虛擬機上工作之前提到過。 事實證明,這取決於。 如果將虛擬機的網絡適配器設置為NAT(通過我的OSX開發箱),則它確實可以工作。 但是,如果我將網絡適配器設置為橋接並在網絡中獲取常規IP,它將無法正常工作。 它給了我與生產包裝盒相同的close_notify錯誤。

另一個更新 :我登錄了其中一台有問題的計算機,並在我的機器上設置了一條反向ssh隧道,該隧道指向相關地址。 然后,我運行了指向本地主機(而不是直接地址)的示例程序,以便將請求傳送到我的開發箱,然后由開發箱將其傳遞到適當的服務器。 你猜怎么着? 有效。 我的問題沒有解決,盡管這顯然不是適當的解決方案。

服務器似乎不喜歡您發送的證書。 您需要將密鑰庫從工作平台復制到非工作平台。

我需要從CerticateRequest消息開始看到更多的SSL轉儲,以進一步提供幫助。

事實證明,問題與Java無關,與ISP提供給我的電纜調制解調器無關。 我的網絡設置如下:

  • TP-Link TL-ER5120用作網關和防火牆(和鏈接負載平衡器)
  • 兩個由Thomson DWG874B電纜調制解調器組成的Internet鏈接服務器
  • TL-MR3020連接到3G USB調制解調器的一條互聯網鏈接

3G調制解調器確實是一種故障轉移措施。 如果我通過3G調制解調器路由服務器流量,則SSL連接將起作用。 因此問題出在電纜調制解調器還是ISP本身。 我在家中使用相同的ISP(具有不同的電纜調制解調器),並且連接正常。 所以我將其固定在電纜調制解調器上。

該電纜調制解調器實際上也是一個無線路由器(盡管已禁用無線功能)。 調制解調器具有DCHP服務器,該服務器為我的防火牆分配了本地IP。 因此,我的實際本地網絡類似於192.168.0.x,防火牆和電纜調制解調器之間還有另一個網絡,例如192.168.1.x,並且電纜調制解調器具有公用IP地址。 我從來沒有真正喜歡過這種設置,但是它似乎並沒有造成任何傷害,所以我忍受了它。

電纜調制解調器的設置使其可以充當純電纜調制解調器,並分配從ISP連接到其的任何公用IP。 該設置稱為交換模式,如下所示(先前的設置為Legacy RG IPv4 Mode)。

湯姆森配置頁面

一經使用,與該特定網站的SSL連接就可以從Linux重新開始工作。 我不知道發生了什么,但我很高興它已解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM