У меня есть веб-приложение (только 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-приложении?Я что-то пропустил в последовательности инициализации?