linux-使用ECDSA证书问题增强asio
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-使用ECDSA证书问题增强asio,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1997字,纯文字阅读大概需要3分钟。
内容图文
![linux-使用ECDSA证书问题增强asio](/upload/InfoBanner/zyjiaocheng/946/90a9d230ca4a4023a7e85cc036b7581a.jpg)
我正在使用boost :: asio实现SSL服务器.
上下文初始化显示在下面的代码中
boost::asio::ssl::context_base::method SSL_version =
static_cast<boost::asio::ssl::context_base::method>(param_values[ID_PROTOCOL_VERSION].int32_value);
// load certificate files
boost::shared_ptr<boost::asio::ssl::context> context_ = boost::shared_ptr<boost::asio::ssl::context>(
new boost::asio::ssl::context(SSL_version));
p_ctx = boost::static_pointer_cast<void>(context_);
context_->set_options(boost::asio::ssl::context::default_workarounds);
context_->use_certificate_chain_file(cert_chain_file);
context_->use_certificate_file(cert_file, boost::asio::ssl::context::pem);
context_->use_private_key_file(cert_file, boost::asio::ssl::context::pem);
context_->set_verify_mode(boost::asio::ssl::verify_peer | boost::asio::ssl::verify_fail_if_no_peer_cert);
context_->set_verify_callback(boost::bind(&verify_certificate_cb, _1, _2));
if (param_values[ID_CIPHER_LIST].int32_value != 0)
{
std::string cipher_list = "";
generate_cipher_list(param_values[ID_CIPHER_LIST].int32_value, cipher_list);
MA5G_logger::log(PRIORITY_INFO, "Supported cipher list %s", cipher_list.c_str());
SSL_CTX_set_cipher_list((reinterpret_cast<boost::asio::ssl::context*>(p_ctx.get()))->native_handle(),
cipher_list.c_str());
}
在cipher_list中,我支持以下列表
AES128-SHA:AES256-SHA:AES128-SHA256:AES256-SHA256:AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA
使用ECDSA证书,如果我使用上面给出的cipher_list,则客户端无法连接到服务器,并显示错误“无共享密码”.但是,如果我不提供cipher_list,则客户端可以成功连接到服务器.相同的密码列表可以很好地用于RSA证书.
如果我使用带有-cipher选项的openssl s_server来提供受支持的cipher_list,则相同的ECDSA证书可以正常工作
谁能解决这个问题?
解决方法:
抱歉,我经过大量研究后找到了答案.
问题出在密码列表上,而不是密码/证书上.
同一证书使用带有openssl客户端-服务器的ECDHE-ECDSA-AES256-SHA密码,而使用ECDH-ECDSA-AES256-SHA密码来增强asio SSL客户端-服务器.
无论如何,感谢@rkyser的帮助!
内容总结
以上是互联网集市为您收集整理的linux-使用ECDSA证书问题增强asio全部内容,希望文章能够帮你解决linux-使用ECDSA证书问题增强asio所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。