0

Нам нужно сделать подключение к серверу с помощью взаимного SSL, но по какой-то причине мы получаем следующее сообщение об ошибке при попытке сделать запрос:Подключение через взаимное SSL терпит неудачу Парсирование ChangeCipherSpec

[...] 
readIncomingTls_changeCipherSpec2: 
    processTlsRecord: 
    processAlert: 
     TlsAlert: 
     level: fatal 
     descrip: handshake failure 
     --TlsAlert 
    --processAlert 
    --processTlsRecord 
--readIncomingTls_changeCipherSpec2 
Failed to read incoming handshake messages. (3) 
Client handshake failed. (3) 
Failed to connect. 
[...] 

частный ключ и CSR была поднята нами, и сертификат вернулся к нам людьми, с которыми мы подключаемся.

Объединяя ключ и сертификат в файл PEM и добавив к запросу, как так работает без проблем и в других сценариях с их соответствующими ключами сертификатов и целями:

var Gateway = new ActiveXObject("Chilkat.Http"); 
    Gateway.UnlockComponent("redacted"); 
var pemSuccess = Gateway.SetSslClientCertPem(Server.MapPath(certPath), ""); 
    Gateway.ConnectTimeout = 10;   
    Gateway.ReadTimeout = 10; 

Однако в данном случае не только pemSuccess возвращая 0, но я замечаю, что изменение этого или удаление линии полностью не изменяет ошибку, предполагая, что она прерывается до этого момента?

К сожалению, мои знания на этом уровне процесса ограничены, и я не уверен, как решить проблему.

Некоторые поисковые запросы привезли к страницам поддержки chilkat, предлагающим обновлять DLL и гарантируя, что .pem использует правильный ключ и сертификат, но они оба, как и должно быть.

Редактировать 08/06/2015: Изменение формата ----- BEGIN CERTIFICATE ----- Заголовок/колонтитула --- BEGIN CERTIFICATE --- позволило SetSslClientCertPem вернуться так, но в остальном никаких изменений в LastErrorText ...

Полный LastErrorText:

SynchronousRequest: 
    DllDate: Dec 12 2012 
    UnlockPrefix: [redacted] 
    Username: [redacted] 
    Architecture: Little Endian; 32-bit 
    Language: ActiveX 
    VerboseLogging: 0 
    domain: [redacted] 
    port: 9000 
    ssl: 1 
    RequestData: 
     HttpVersion: 1.1 
     Verb: POST 
     Path: [redacted] 
     Charset: utf-8 
     SendCharset: 0 
     MimeHeader: SOAPAction: 
Content-Type: text/xml 
    --RequestData 
    ReadTimeout: 10 
    ConnectTimeout: 10 
    httpConnect: 
     hostname: [redacted] 
     port: 9000 
     ssl: 1 
     Need to establish connection to the HTTP server... 
     ConnectTimeoutMs_1: 10000 
     calling ConnectSocket2 
     IPV6 enabled connect with NO heartbeat. 
     connectingTo: [redacted] 
     resolveHostname1: 
     dnsCacheLookup: [redacted] 
     dnsCacheHit: [redacted] 
     --resolveHostname1 
     GetHostByNameHB_ipv4: Elapsed time: 0 millisec 
     myIP_1: [redacted] 
     myPort_1: [redacted] 
     connect successful (1) 
     clientHelloMajorMinorVersion: 3.1 
     buildClientHello: 
     majorVersion: 3 
     minorVersion: 1 
     numRandomBytes: 32 
     sessionIdSize: 0 
     numCipherSuites: 10 
     numCompressionMethods: 1 
     --buildClientHello 
     readIncomingTls_serverHello: 
     processTlsRecord: 
      processHandshake: 
      handshakeMessageType: ServerHello 
      handshakeMessageLen: 0x46 
      processHandshakeMessage: 
       MessageType: ServerHello 
       Processing ServerHello... 
       ServerHello: 
       MajorVersion: 3 
       MinorVersion: 1 
       SessionIdLen: 32 
       CipherSuite: RSA_WITH_AES_256_CBC_SHA 
       CipherSuite: 00,35 
       CompressionMethod: 0 
       Queueing ServerHello message. 
       ServerHello is OK. 
       --ServerHello 
      --processHandshakeMessage 
      --processHandshake 
     --processTlsRecord 
     --readIncomingTls_serverHello 
     HandshakeQueue: 
     MessageType: ServerHello 
     --HandshakeQueue 
     Dequeued ServerHello message. 
     readIncomingTls_6: 
     processTlsRecord: 
      processHandshake: 
      handshakeMessageType: Certificate 
      handshakeMessageLen: 0xf13 
      processHandshakeMessage: 
       MessageType: Certificate 
       ProcessCertificates: 
       Certificate: 
        [cert info] 
       --Certificate 
       Certificate: 
        [cert info] 
       --Certificate 
       Certificate: 
        [cert info] 
       --Certificate 
       NumCertificates: 3 
       Queueing Certificates message... 
       --ProcessCertificates 
      --processHandshakeMessage 
      --processHandshake 
     --processTlsRecord 
     --readIncomingTls_6 
     Dequeued Certificate message. 
     readIncomingTls_6: 
     processTlsRecord: 
      processHandshake: 
      handshakeMessageType: CertificateRequest 
      handshakeMessageLen: 0x6 
      processHandshakeMessage: 
       MessageType: CertificateRequest 
       CertificateRequest: 
       NumCertificateTypes: 3 
       Certificate Type: RSA Sign 
       Certificate Type: DSS Sign 
       OtherCertificateType: 64 
       totalLen: 0 
       NumDistinguishedNames: 0 
       CertificateRequest message is OK. 
       Queueing CertificateRequest message. 
       --CertificateRequest 
      --processHandshakeMessage 
      handshakeMessageType: ServerHelloDone 
      handshakeMessageLen: 0x0 
      processHandshakeMessage: 
       MessageType: ServerHelloDone 
       Queueing HelloDone message. 
      --processHandshakeMessage 
      --processHandshake 
     --processTlsRecord 
     --readIncomingTls_6 
     Dequeued CertificateRequest message. 
     DequeuedMessageType: ServerHelloDone 
     OK to ServerHelloDone! 
     Sending 0-length certificate (this is normal). 
     CertificatesMessage: 
     numCerts: 0 
     CertificateSize: 0x3 
     --CertificatesMessage 
     Encrypted pre-master secret with server certificate RSA public key is OK. 
     Sending ClientKeyExchange... 
     Sent ClientKeyExchange message. 
     Sending ChangeCipherSpec... 
     Sent ChangeCipherSpec message. 
     Derived keys. 
     Installed new outgoing security params. 
     Sending FINISHED message.. 
     algorithm: aes 
     keyLength: 256 
     Sent FINISHED message.. 
     readIncomingTls_changeCipherSpec2: 
     processTlsRecord: 
      processAlert: 
      TlsAlert: 
       level: fatal 
       descrip: handshake failure 
      --TlsAlert 
      --processAlert 
     --processTlsRecord 
     --readIncomingTls_changeCipherSpec2 
     Failed to read incoming handshake messages. (3) 
     Client handshake failed. (3) 
     Failed to connect. 
    --httpConnect 
    connectTime1: Elapsed time: 47 millisec 
    totalTime: Elapsed time: 47 millisec 
    Failed. 
    --SynchronousRequest 
--ChilkatLog 

ответ

0

Так что не получается, что, несмотря на отправителя, настаивая несколько раз, что сертификат был правильным, и, несмотря на их настаивая (когда его спросили), что кодировка электронной почты не лишила никаких символов, оказывается, что неверно, и кодировка электронной почты удалила некоторые символы из основного текста.

Остерегайтесь линий, начинающихся с символов +.

 Смежные вопросы

  • Нет связанных вопросов^_^