Плагин передачи файлов Cordova с самозаверяющим сертификатом дает исключение SSLHandshakeException - PullRequest
0 голосов
/ 02 мая 2020

Я использую плагин Cordova для записи аудио, а затем использую плагин для передачи файлов для загрузки этого аудио на сервер загрузки Spring в среде dev. Звук записывается и также может быть воспроизведен. Но при загрузке выдается следующее сообщение об ошибке через adb logcat:

FileTransfer: javax. net .ssl.SSLHandshakeException: java .security.cert.CertPathValidatorException: доверять привязке для пути сертификации не найден.

FileTransfer: в com. android .org.conscrypt.ConscryptFileDescriptorSocket.startHandshake (ConscryptFileDescriptorSocket. java: 236)

FileTransfer: в com. * .okhttp.internal.io.RealConnection.connectTls (RealConnection. java: 1480)

FileTransfer: at com. android .okhttp.internal.io.RealConnection.connectSocket (RealConnection. java : 1424)

FileTransfer: в com. android .okhttp.internal.io.RealConnection.connect (RealConnection. java: 1368)

FileTransfer: в com. android .okhttp.internal.http.StreamAllocation.findConnection (StreamAllocation. java: 219)

......................

SSL-сертификат был создан с помощью keytool и является самозаверяющим сертификатом.

logcat также disp Внизу лежит сообщение о том, что сертификат не заслуживает доверия:

------------------ Ненадежная цепочка: --------- -------------

CONSCRYPT: == Chain0 ==

CONSCRYPT: Версия: 3

CONSCRYPT: SubjectKeyIdentifier: 4160414dd4b7b5e4b585ea392e42085ae99ef6bc93ee114

CONSCRYPT: Серийный номер: 71deb7b

CONSCRYPT: SubjectDN: CN = Мой SSL-сертификат, OU = Моя команда, O = Моя компания, L = C, L = C, Мой = C, L = C = = SA

CONSCRYPT: IssuerDN: CN = Мой сертификат SSL, OU = Моя команда, O = Моя компания, L = Мой город, ST = Мой штат, C = SA

CONSCRYPT: Получить не раньше: пт 27 марта 14:12:59 GMT + 01: 00 2020

CONSCRYPT: Получить не после: вт. 09 января 14:12:59 GMT + 01: 00 2294

CONSCRYPT : Sig имя ALG: SHA256withRSA

1044 * CONSCRYPT: Подпись: 45d2e760ffc34f1be70017c3b5e731045e4f5368d94e76013f585ad6e6dfdbcc43a0273cf7bd788089693992808c6d976484a3ec08a8f1fab89fc12510988d21967e391d8d62456401c51a80dc88725d7c3b04c631e5cfb1743af5358f9 5a151e15052069d1a3d1f7a64148e2c1646c9ecb4f885b8fc3ae8355146a28ae34566db9c8af35b99cc6ff6d9881f324ae76003f069108bdc5e9a67a8e096799e792897175f78b0171dbaa854c0dac044769e15c156a09e871cd6fe6ad7b273933c15104c497c96b947b6e864b188b1624d36e50fcd782cc092a88c068f04f4138207f8f37b22477803cb79863078ec0cfae5b00e001e4acd5faa6179e945d87af07b 1046 * WifiTrafficPoller: TrafficStats TxPkts = 27970473 RxPkts = 29263068 TxBytes = 28155833135 RxBytes = 30517670560, Foreground UID = 10332 PKGNAME = com.karar.app TxPackets = 2292 RxPackets = 1632 TxBytes = 321406 RxBytes = 724040 05-01 23 : 55: 20.913 4288 4288 D SecStatusBarWifiView: updateState: WifiIconState (resId = 2131232622, видимый = true, ActivityId = 2131232628)

CONSCRYPT: Publi c ключ:
CONSCRYPT 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 CONSCRYPT: 82 01 0f 00 30 82 01 0a 02 82 01 01 00 86 40 94 87 eb 34 87 CONSCRYPT: 61 c9 5e 89 cb 01 44 2b ef 4a 45 1 c ef eb 68 b1 69 ee 46 ae

........................... ... .

Вот мой код HTML и JS:

function uploadFile() {
    var fileURL = localStorage.getItem("question");
    host = "https://192.168.0.103:8443";
    var uri = encodeURI(host + "/uploadFile");
    var params =  {
    }

    var options = new FileUploadOptions();
    options.fileKey = 'file';
    options.fileName = fileURL.substr(fileURL.lastIndexOf('/')+1);
    options.mimeType = "audio/m4a";

    options.headers = {
      'Authorization': "Bearer "+localStorage.getItem('token')
    };
    options.params = params;
    options.chunkedMode = false;
    var ft = new FileTransfer();

    ft.upload(fileURL, uri, function(){
        alert("Successfully updated Round Image");
    }, function (err) {
        console.log('There was an error uploading the media. Please try again later. Error: ' + err);
    }, options, true);
  }


  function captureAudio() {
       navigator.device.capture.captureAudio(captureSuccess, captureError);
   }

   function playMP3() {
     media.play();
   }

   function captureError(e) {
     console.log("capture error: "+JSON.stringify(e));
   }

   function captureSuccess(s) {
     console.log("Success");
     var a="<audio controls>"
           a += "<source src='" + s[0].fullPath + "' type='video/mp4'>";
           a += "</audio>";
     localStorage.setItem("question", s[0].fullPath);
     document.querySelector("#audioArea").innerHTML = a;

}

Используемые плагины:

У меня нет проблем с доступом к другим https-страницам через AJAX. Это сообщение об ошибке выдается только во время загрузки. Я что-то здесь упускаю? Или, если есть какой-либо другой лучший способ загрузить записанные Aud ios?

Спасибо

...