Russian Qt Forum

Qt => Работа с сетью => Тема начата: kibsoft от Январь 27, 2010, 16:20



Название: SSL генерация сертификата и ключа
Отправлено: kibsoft от Январь 27, 2010, 16:20
Прочитал документацию, но не могу понять:
Код:
serverSocket->setPrivateKey("server.pem");
serverSocket->setLocalCertificate("server.pem");
Откуда брать эти файлы? С помощью OpenSSL генерировать?
Если можно, опишите пожалуйста кратко, что нужно для установления соединения через QSslSocket.


Название: Re: SSL генерация сертификата и ключа
Отправлено: kibsoft от Январь 27, 2010, 16:42
Нашел на сайте нокии как делать :)
http://doc.trolltech.com/solutions/4/qtsslsocket/sslguide.html


Название: Re: SSL генерация сертификата и ключа
Отправлено: kibsoft от Январь 27, 2010, 21:58
Не буду создавать новую тему, а задам вопросы прямо здесь.
Есть чат с выделенным сервером, разумно ли использовать SSL соединение между сервером и клиентом?
2) сертификат и ключ одни на всех клиентов?
3) Использование самоподписного сертификата безопасно?


Название: Re: SSL генерация сертификата и ключа
Отправлено: kibsoft от Январь 28, 2010, 01:15
Я тут один тусуюсь в этой теме) Вот отвечаю себе(может кому еще пригодится):
1)разумно, даже нужно, чтобы защитить информацию от перехвата
2)да, сертификат и ключ генерируются на хост(сайт) и применяются для всех клиентов
3)В принципе безопасно, но только для тестовых целей...или например для локальной сети..

Столкнулся с проблемой - клиент не хотел принимать сертификат, т.к. он самоподписной(self-signed), решается вызовом ignoreSslErrors () или ignoreSslErrors ( const QList<QSslError> & errors ).
Для второго случая в мануале такой коммент:
Цитировать
This is an overloaded function.

This method tells QSslSocket to ignore only the errors given in errors.

Note that you can set the expected certificate in the SSL error: If, for instance, you want to connect to a server that uses a self-signed certificate, consider the following snippet:

 QList<QSslCertificate> cert = QSslCertificate::fromPath(QLatin1String("server-certificate.pem"));
 QSslError error(QSslError::SelfSignedCertificate, cert.at(0));
 QList<QSslError> expectedSslErrors;
 expectedSslErrors.append(error);

 QSslSocket socket;
 socket.ignoreSslErrors(expectedSslErrors);
 socket.connectToHostEncrypted("server.tld", 443);
Multiple calls to this function will replace the list of errors that were passed in previous calls. You can clear the list of errors you want to ignore by calling this function with an empty list.

This function was introduced in Qt 4.6.

See also sslErrors().


Название: Re: SSL генерация сертификата и ключа
Отправлено: zeonET от Май 19, 2010, 18:11
спасибо, помогла ваша тема и то что вы сами здесь тусовались ;)
а то я уже начал что-то химичить с помощью
Цитировать
KeyMan
A tool for managing keys, certificates, certificate revocation lists (CRLs), and the respective repositories for storing and retrieving these items.