首页 > 解决方案 > Poco 库中的手动 SSL 服务器初始化问题

问题描述

当我在服务器端手动初始化 ssl 时出现问题。使用服务器端的自动 SSL 初始化没有问题,它 (HTTPSTimeServer) 工作得很好。但是手动初始化无法正常工作。当使用邮递员向服务器发送请求时,我在服务器端的邮递员中收到以下错误:

错误:写入 EPROTO 2959635336:error:10000438:SSL 例程:OPENSSL_internal:TLSV1_ALERT_INTERNAL_ERROR:../../third_party/boringssl/src/ssl/tls_record.cc:594:SSL 警报号 80

这是我的例子:

Poco::Net::initializeSSL();

SharedPtr<PrivateKeyPassphraseHandler> pConsoleHandler = new Poco::Net::KeyConsoleHandler(true);
SharedPtr<InvalidCertificateHandler> pInvalidCertHandler = new Poco::Net::AcceptCertificateHandler(true);

SSLManager::instance().initializeServer(pConsoleHandler, pInvalidCertHandler, NULL);

Context::Ptr pContext = new Context(Context::SERVER_USE, "any.pem", "any.pem", "rootcert.pem", 
                                                            Context::VERIFY_RELAXED, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");

SSLManager::instance().initializeServer(pConsoleHandler, pInvalidCertHandler, pContext);

int maxQueued = 100;
int maxThreads = 16;
HTTPServerParams* pParams = new HTTPServerParams;
pParams->setMaxQueued(maxQueued);
pParams->setMaxThreads(maxThreads);
pParams->setKeepAlive(true);
pParams->setKeepAliveTimeout(Poco::Timespan(5,0));

SecureServerSocket sec(9090);
HTTPServer srv(new RequestHandlerFactory, sec, pParams);
srv.start();

有什么遗漏吗?

我正在使用 Windows 8.1、Visual Studio 2019、Poco 版本 1.11.0、Win32 OpenSSL v1.1.1L

标签: sslserverinitializationmanual

解决方案


推荐阅读