Одноранговый узел SSL отключен неправильно - Alibaba OSS java SDK

Получение исключения "SSL-одноранговый узел неправильно завершен" при попытке использовать данные из службы хранилища объектов (OSS) Alibaba Cloud с помощью его Java SDK. Мы используем Oracle Java 8.x, Hadoop 3.x. Мы получаем это исключение, когда запускаем его как рабочий процесс Oozie и сохраняем данные по пути HDFS. Как это решить?

Зависимость Gradle: компиляция (группа:'com.aliyun.oss', имя:'aliyun-sdk-oss', версия:"2.8.3")

 // Create an OSSClient instance.
    ClientBuilderConfiguration clientConfig = new ClientBuilderConfiguration();
    clientConfig.setProxyHost(PROXY_HOST);
    clientConfig.setProxyPort(PROXY_PORT);
    clientConfig.setProtocol(Protocol.HTTPS);

    OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET, clientConfig);
    String fileKey = "4868a87eb2a0f7a06c43";
    OSSObject ossObject = ossClient.getObject(BUCKET_NAME, fileKey);
    InputStream objectContent = ossObject.getObjectContent();

    try (InputStream inputStream = objectContent) {
        copyInputStreamToFile(inputStream, targetFile);
    }

Исключение:

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.JavaMain], main() threw exception, javax.net.ssl.SSLException: SSL peer shut down incorrectly
org.apache.oozie.action.hadoop.JavaMainException: javax.net.ssl.SSLException: SSL peer shut down incorrectly
...
Caused by: javax.net.ssl.SSLException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:596)
    at sun.security.ssl.InputRecord.read(InputRecord.java:532)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
    at org.apache.http.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:200)
    at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178)
    at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
    at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:82)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at com.aliyun.oss.event.ProgressInputStream.read(ProgressInputStream.java:116)
    at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:82)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:100)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:68)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:129)

0 ответов

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

Это сообщение об ошибке SSL peer shut down incorrectlyявляется общим сообщением, оно может быть вызвано многими причинами. Я предлагаю вам прочитать это и попробовать один за другим.

Попробуйте проверить удаленный сертификат SSL, проверьте его действительность, скорее всего проблема именно в этом.

Также вы можете включить это -Djavax.net.debug=ssl,handshake, а затем предоставьте журнал подтверждения, это может помочь сузить основную причину.

Обновить:

Включить -Djavax.net.debug=ssl,handshakeтребуется, чтобы вы имели некоторый уровень понимания процесса рукопожатия, что иногда может быть трудным. Вы можете использовать такие инструменты, как mitmproxy, для проверки трафика https.

Вы также можете использовать онлайн-средство проверки TLS, чтобы проверить поддержку TLS.

Другие вопросы по тегам