Приложение Poco HTTPS не отвечает после короткого интервала - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть веб-приложение (только HTTP), написанное на C ++ с использованием библиотек Poco.Когда я пытаюсь переключиться на HTTPS, сервер работает, пока я обновляю любую страницу.Но если я оставляю его бездействующим в течение 5 секунд или более, в браузере появляется «Сбой безопасного соединения».После этого я вообще не могу подключиться к серверу.Перезапуск приложения приводит к появлению этой проблемы.

Я проверил с помощью netstat, чтобы убедиться, что мое приложение все еще прослушивает этот порт.Я также попытался включить / отключить сохранение активности с помощью setKeepAlive() на объекте HTTPServerParams без особой удачи.

Я выполняю в своей основной программе следующее:

Poco::File privKeyFile(cfg.getPrivateKeyFile());
if (!privKeyFile.exists()) {
    cout << "Private key file does not exist!" << endl;
    return -1;
}
Poco::Net::initializeSSL();
Poco::SharedPtr<KeyConsoleHandler> pconsoleHandler = new KeyConsoleHandler(true);
Poco::SharedPtr<AcceptCertificateHandler> pCertHandler = new AcceptCertificateHandler(true);
Context::Ptr pContext = new Context(
    Context::SERVER_USE,
    cfg.getPrivateKeyFile(),
    cfg.getCertFile(),
    cfg.getCABundleFile(),
    Context::VERIFY_RELAXED,
    9,
    false,
    "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"
);
SSLManager& mngr = SSLManager::instance();
mngr.initializeServer(pconsoleHandler, pCertHandler, pContext);

Я также изменил ServerSocket возьмите SecureServerSocket перед созданием объекта HTTPServer.

Я намерен, чтобы HTTPS-соединение работало нормально до истечения сеанса пользователя (10 минут).Это все, что мне действительно нужно для настройки HTTPS в существующем HTTP-приложении?Я что-то пропустил в последовательности инициализации?

...