Проблемы при использовании SSL в QT

Модератор: Модераторы разделов

kryuch
Сообщения: 44
ОС: openSUSE 10.0

Проблемы при использовании SSL в QT

Сообщение kryuch »

Вопрос вообще не чисто линуксовский, но может все-же кто-то знает

Создал SSL-сервер SslServer:: public QTcpServer

Код: Выделить всё

void SslServer::incomingConnection(int handle)
{
    socket = new QSslSocket(this);
    if (socket->setSocketDescriptor(handle))
    {
        qDebug()<<"yes\t"<<socket;
        connect(socket, SIGNAL(encrypted()), this, SLOT(on_encrypted()));
        connect(socket, SIGNAL(readyRead()), this, SLOT(on_dataRead()));
        connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(on_sslErrors(QList<QSslError>)));
        connect(socket,SIGNAL(disconnected()),this,SLOT(slotTCPServerDisconnected()));
        connect(socket,SIGNAL(readyRead()),this,SLOT(slotTCPServerReadyRead()));
        socket->setPrivateKey("/opt/terminus/share/cert/server.key", QSsl::Rsa);
        socket->setLocalCertificate("/opt/terminus/share/cert/server.crt");

        socket->startServerEncryption();
        emit message("New connection...\r\n");
        foreach(QSslError err, socket->sslErrors())
        {
            emit message(QString(err.errorString()).append("\r\n"));
        }

    }
    else delete socket;
}


при попытке подключиться

Код: Выделить всё

    socket = new QSslSocket();
    connect(socket, SIGNAL(connected()), SLOT(waitForGreeting()));
    connect(socket, SIGNAL(readyRead()), SLOT(readResponse()));
    connect(socket, SIGNAL(connectionClosed()), SLOT(quit()));
    connect(socket, SIGNAL(delayedCloseFinished()),SLOT(quit()));
    socket->setPrivateKey("/opt/terminus/share/cert/server.key", QSsl::Rsa);
    socket->setLocalCertificate("/opt/terminus/share/cert/server.crt");
    socket->connectToHost("127.0.0.1", 3428);

    if (!socket->waitForEncrypted()) {
     qDebug() << socket->errorString();
    }
    else
    {
        socket->write("GET / HTTP/1.0\r\n\r\n");
        while (socket->waitForReadyRead())
            qDebug() << socket->readAll().data();
    }


выдается

Код: Выделить всё

"Unknown error"


На сервере никаких ошибок не выводится.
Что я делаю неправильно?
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Проблемы при использовании SSL в QT

Сообщение Voral »

Может наведет на мысль: http://www.qtcentre.org/archive/index.php/t-32724.html
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
kryuch
Сообщения: 44
ОС: openSUSE 10.0

Re: Проблемы при использовании SSL в QT

Сообщение kryuch »

Voral писал(а):
27.11.2012 14:34
Может наведет на мысль: http://www.qtcentre.org/archive/index.php/t-32724.html


Навело на необходимость использования ignoreSslErrors, однако результат не изменился :(
Спасибо сказали:
kryuch
Сообщения: 44
ОС: openSUSE 10.0

Re: Проблемы при использовании SSL в QT

Сообщение kryuch »

Проблема решена.
Надо было для подключения использовать метод connectToHostEncrypted, а не connectToHost
Спасибо сказали: