繁体   English   中英

OpenSSL Boost context.use_private_key_file和context.use_rsa_private_key_file终止程序,无例外

[英]OpenSSL Boost context.use_private_key_file and context.use_rsa_private_key_file terminate program without exception

我的代码主要基于boost ssl示例客户端但是我已经使它完全同步,但来自boost的示例仍然会做同样的事情。

加载server.pem后sslContext.load_verify_file("server.pem");

我尝试加载客户端密钥和crt以供服务器验证,以进行双向握手。

context_.use_private_key_file("client.key",boost::asio::ssl::context_base::file_format::pem); // also tried use_rsa_private_key_file
context_.use_certificate_file("client.crt",boost::asio::ssl::context_base::file_format::pem);

当调用use_private_key_file或use_rsa_private_key_file时,在我输入密码时请求密码终止。 为什么是这样? - 我的密码是正确的我用openssl rsa -check -in client.key检查了它

构造函数将是对boost示例的唯一更改,这就是我将它用于普通SSL握手的方式。

    server(boost::asio::io_service& io_service, unsigned short port)
        : io_service_(io_service),
                acceptor_(io_service,
                boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)),
                context_(boost::asio::ssl::context::sslv23)
                {
                        context_.load_verify_file("server.pem");
                        start_accept();
                }

双向握手。

    server(boost::asio::io_service& io_service, unsigned short port)
        : io_service_(io_service),
                acceptor_(io_service,
                boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)),
                context_(boost::asio::ssl::context::sslv23)
                {

                        context_.load_verify_file("server.pem");
                        context_.use_private_key_file("client.key",boost::asio::ssl::context_base::file_format::pem); // also tried use_rsa_private_key_file
                        context_.use_certificate_file("client.crt",boost::asio::ssl::context_base::file_format::pem);
                        start_accept();
                }

每次使用控制台输入密码时都会失败。 但是当我使用回调set_password_callback(boost::bind(&get_password, this)); 它工作得很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM