Я пишу прокси-сервер, http-часть готова, но возникают проблемы с https. Я создал сертификат и закрытый ключ (как я понял, без него не будет работать) таким образом:Прокси-сервер QSslSocket (https) и сертификаты. Ошибка установления связи
OpenSSL> req-x509-newkey rsa: 2048-keyout server.key-nodes-days 365-out server.csr
Я сделал простой QTcpServer, который передается в socketDescriptor на созданный объект на newIncomingConnection(). В конструкторе моего объекта я сделал:
sock = new QSslSocket();
connect (sock,SIGNAL(readyRead()),this,SLOT(onQuery()));
connect(sock,SIGNAL(disconnected()),this,SLOT(deleteLater()));
connect(sock,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(onError(QAbstractSocket::SocketError)));
connect(sock,SIGNAL(sslErrors(QList<QSslError>)),this,SLOT(sltSslErrors(QList<QSslError>)));
...
Load key and cert
...
sock->setProtocol(QSsl::AnyProtocol);
QSslKey sslKey(key, QSsl::Rsa);
QSslCertificate sslCert(cert);
sock->setPrivateKey(sslKey);
sock->setLocalCertificate(sslCert);
sock->setSocketDescriptor(socketDesc);
sock->startServerEncryption();
if(!sock->waitForEncrypted(30000)) {
qDebug()<<"wait for encrypted failed";
}
На подключения в консоли я вижу «ждать зашифрованного неудавшегося» и розеткой emited сигнала ошибки() с QAbstractSocket :: SslHandshakeFailedError. Не могли бы вы дать советы о том, что еще нужно сделать, чтобы установить соединение ssl без ошибок?