Главная » Error » Ssl connect error 1

Ssl connect error 1

Большую часть времени пользователи компьютеров проводят в интернете. В браузере они знакомятся с новостями, просматривают фильмы, играют и делают многое другое. Большой проблемой является появление неисправностей при попытках соединения с сайтами. Одной из ошибок, которая может возникнуть неожиданно, является сбой подключения SSL. Он проявляет себя возникновением надписи SSL Connection Error в браузере. В рамках статьи мы рассмотрим, как исправить ошибку подключения SSL.

ПОЧЕМУ ВОЗНИКАЕТ ОШИБКА ПОДКЛЮЧЕНИЯ SSL

В каждой ситуации причина возникновения ошибки SSL Connection Error индивидуальна. Она может быть вызвана, как сервером, с которого запрашивается информация о сайте, так и компьютером пользователя. Если источником проблемы является компьютер посетителя сайта, решение ее следует искать в браузере, с которого идет обращение к ресурсу. SSL Connection Error – это типичная ошибка для браузеров, выполненных на платформе Chromium. К таким браузерам относится не только Google Chrome, но и различные его аналоги: Яндекс.Браузер, современные версии Opera, Comoda Dragon и другие. Во всех них причиной возникновения ошибки является проблема с сертификатом клиентской аутентификации.

КАК ИСПРАВИТЬ ОШИБКУ ПОДКЛЮЧЕНИЯ SSL

Если возникла ошибка подключения SSL, с браузера не получится зайти на один или несколько сайтов из-за появления в окне надписи SSL Connection Error. Чтобы продолжить пользоваться интернетом в полном объеме, нужно избавиться от проблемы. Ниже рассмотрено, что делать, если ошибка подключения SSL появилась в Google Chrome, но инструкция универсальна, и похожим образом устраняется проблема в других браузерах: Обновите браузер. При возникновении любых проблем, связанных с подключением к сайтам в интернете или воспроизведении контента на них, нужно первым делом установить актуальную версию браузера.

Чаще всего браузер Google Chrome обновляется автоматически или предлагает пользователю сам загрузить последнюю версию, но многие игнорируют рекомендации, что приводит к возникновению различных проблем. Чтобы обновить браузер Chrome, нужно зайти в настройки и нажать на пункт «О программе». Далее нужно обратить внимание, последняя ли версия установлена. Если нет, то браузер потребуется обновить. Изучите установленные расширения. Часто проблемы с работоспособностью браузера возникают из-за различных расширений.

Неопытные пользователи могут случайно установить вирусные расширения, которые вредят компьютеру. Также некоторые лицензионные расширения могут конфликтовать с определенными сайтами или сценариями, выполняемыми на них, что будет приводить к ошибке подключения SSL. Чтобы проверить, не связана ли ошибка с расширениями, зайдите в настройки Google Chrome и далее переключитесь на пункт «Расширения». Отключите все запущенные расширения и вновь попробуйте подключиться к сайту, на котором появлялось сообщение SSL Connection Error.

Если ошибка не исправилась, переходите к следующему пункту. Сбросьте настройки прокси-сервера. Чтобы соединяться с сайтами в интернете, Google Chrome использует настройки прокси-сервера. Они могут сбиться по различным причинам: из-за действий стороннего расширения, вируса, одной из установленных программ на компьютере и так далее. Сбросить настройки прокси-сервера к значениям по умолчанию достаточно просто. Достаточно зайти в настройки Google Chrome, выбрать пункт «Показать дополнительные настройки» и в графе «Сеть» нажать на кнопку «Изменить настройки прокси-сервера». Далее останется выбрать вариант с автоматическим определением параметров и можно пробовать запустить сайт, на котором появлялась ошибка SSL Connection Error. Убедитесь, что проблема не связана с антивирусом.

Антивирусные приложения работают не идеально, и из-за них могут возникать различные проблемы при подключении к сайтам в интернете. Чтобы проверить связана ли работа антивируса с ошибкой SSL Connection Error, нужно отключить программу защиты от вредоносных приложений и попробовать зайти на сайт. Важно: Отключайте антивирус только в том случае, если вы уверены, что посещаемый сайт не содержит вирусов.

Если отключение антивируса помогло исправить ошибку SSL, нужно будет в его настройках найти пункт, который позволяет создать исключение для протокола SSL. Когда ни один из приведенных выше советов не помогает избавиться от проблемы, следует убедиться, что сайт в данный момент доступен. Не исключено, что ошибка возникает на стороне сервера, и со всех устройств зайти на ресурс не удается. 

Я не могу подключиться к серверу SSL и не могу найти ошибку.

Код ошибки, возвращенный во время, SSL_CONNECT()равен -1 (SSL_SOCKET: не удалось построить сеанс SSL: 2)

Я читал некоторые форумы, которые предлагают SELECTзапутаться в части реализации.

Разместил мой клиентский код ниже. Запрос указателей для устранения неполадок:

int setupSSL(int server)
{
    int retVal=0;
    if(InitCTX() != 0)
        return -1;
    ssl = SSL_new(ctx);      /* create new SSL connection state */
    if(ssl == NULL)
    {            
        sprintf(debugBuf,"SYSTEM:%s_SOCKET:SSL:Unable to create SSL_new context\n",str[server]);
        debug_log(debugBuf,DEBUG_LOG);
        return -1;            
    }

    retVal=SSL_set_fd(ssl, server);    /* attach the socket descriptor */
    if ( retVal != 1 ){   /* perform the connection */
        sprintf(debugBuf,"SYSTEM:%s_SOCKET:Could not set ssl FD: %d %s\n",str[server],retVal,strerror(retVal));
        debug_log(debugBuf,DEBUG_LOG);
        return -1;
    }

do 
{
    retVal =   SSL_connect(ssl);  
    errorStatus=SSL_get_error (ssl, retVal) ;
    switch (errorStatus) 
    {
        case SSL_ERROR_NONE: 
        break;
        case SSL_ERROR_WANT_READ:
        case SSL_ERROR_WANT_WRITE:
        break;
        default:
    sprintf(debugBuf,"SYSTEM:SSL_SOCKET:Could not build SSL session: %d %s\n",errorStatus,strerror(retVal));
    debug_log(debugBuf,DEBUG_LOG);
    return -1;              
        break;
    }

sprintf(debugBuf,"SYSTEM:SSL_SOCKET:Could not build SSL session: %d %s\n",errorStatus,strerror(retVal));
debug_log(debugBuf,DEBUG_LOG);
retryMaxCount--;
if (retryMaxCount <= 0 )
    break;  
}while ( ssl && errorStatus != SSL_ERROR_NONE );


    cert = SSL_get_peer_certificate(ssl);
    if(cert == NULL){

        sprintf(debugBuf,"SYSTEM:%s_SOCKET:SSL:Unable to retrive server certificate\n",str[server]);
        debug_log(debugBuf,DEBUG_LOG);            
    }

    if(SSL_get_verify_result(ssl)!=X509_V_OK){

        sprintf(debugBuf,"SYSTEM:%s_SOCKET:SSL:Certificate doesn't verify\n",str[server]);
        debug_log(debugBuf,DEBUG_LOG);
        return -1;
    }

    X509_NAME_get_text_by_NID (X509_get_subject_name (cert),  NID_commonName,  peer_CN, 256);
    if(strcasecmp(peer_CN, cnName)){
        sprintf(debugBuf,"SYSTEM:%s_SOCKET:SSL:Common name doesn't match host name\n",str[server]);
        debug_log(debugBuf,DEBUG_LOG);
        return -1;
    }

    return 0;
}

int InitCTX(void)
{        
    OpenSSL_add_all_algorithms();  /* Load cryptos, et.al. */
    SSL_load_error_strings();   /* Bring in and register error messages */
    if(SSL_library_init() < 0){
        debug_log("SYSTEM:SSL_SOCKET:Could not initialize the OpenSSL library\n",TRACE_LOG);
        return -1;
    }

    method = SSLv3_client_method();  /* Create new client-method instance */
    ctx = SSL_CTX_new(method);   /* Create new context */
    if ( ctx == NULL){
        debug_log("SYSTEM:SSL_SOCKET:Unable to create a new SSL context structure\n",TRACE_LOG);
        return -1;
    }

    SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2);
    if (SSL_CTX_use_certificate_file(ctx,CertFile, SSL_FILETYPE_PEM) <= 0) {
        debug_log("SYSTEM:SSL_SOCKET:Error setting the certificate file.\n",TRACE_LOG);
        return -1;
    }

    /* Set the list of trusted CAs based on the file and/or directory provided*/
    if(SSL_CTX_load_verify_locations(ctx,CertFile,NULL)<1) {
        debug_log("SYSTEM:SSL_SOCKET:Error setting verify location.\n",TRACE_LOG);
        return -1;
    }

    SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL);
    SSL_CTX_set_timeout (ctx, 60);

    return 0;
}
 

Пожалуйста, прочтите документацию по функциям SSL_*: Вы не должны использовать strerror, но SSL_get_error(retVal)чтобы получить код ошибки SSL для SSL_connect. В зависимости от кода ошибки вам нужно использовать ERR_get_error для доступа к очереди ошибок, и вы можете использовать ERR_error_string для получения строкового представления ошибок.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector