当前位置:  技术问答>linux和unix

ACE SSL通信

    来源: 互联网  发布时间:2017-04-12

    本文导语:  我最近在做ACE SSL通信的东西,参考了 2 用OpenSSL 制作X509证书 2.1 建立自己的CA 在openssl 安装目录的bin 目录下,运行脚本:./CA.sh -newca(Windows 环境下运行:perl ca.pl –newca),出现提示符时,直接回车。 运行完毕...

我最近在做ACE SSL通信的东西,参考了
2 用OpenSSL 制作X509证书
2.1 建立自己的CA
在openssl 安装目录的bin 目录下,运行脚本:./CA.sh -newca(Windows 环境下运行:perl ca.pl –newca),出现提示符时,直接回车。 运行完毕后会生成一个demonCA 的目录,里面包含了ca 证书及其私钥。

2.2 生成客户端和服务端证书申请
openssl req -newkey rsa:1024 -out req1.pem -keyout sslclientkey.pem
openssl req -newkey rsa:1024 -out req2.pem -keyout sslserverkey.pem

2.3 签发客户端和服务端证书
openssl ca -in req1.pem -out sslclientcert.pem
openssl ca -in req2.pem -out sslservercert.pem

2.4 运行ssl 服务端和客户端
openssl s_server -cert sslservercert.pem -key sslserverkey.pem -CAfile demoCA/cacert.pem -ssl3 -Verify 1

openssl s_client -ssl3 -CAfile demoCA/cacert.pem -cert sslclientcert.pem -key sslclientkey.pem -Verify 1
不出错的话,应该可以正常通信了。

3 用ACE_SSL做安全的网络通信
ACE_SSL的通信使用ACE_SSL_SOCK_Stream流。服务方接收器使用ACE_SSL_SOCK_Acceptor,客户端连接器使用ACE_SSL_SOCK_Connector。具体参考下面的代码:
服务端:
#include
#include
#include
#include
#include
#include
#include

using namespace std;
int main(int argc, char* argv[])
{
   //SSL环境初始化
   ACE_SSL_Context* ssl=ACE_SSL_Context::instance();
   ssl->certificate("sslservercert.pem");
   ssl->load_trusted_ca("cacert.pem");
   ssl->context()->default_passwd_callback_userdata = (void*)"私钥的保护密码";
   ssl->private_key("sslserverkey.pem");
   ssl->set_verify_peer(1); // 启用证书交验
   int a = ssl->verify_private_key(); // a == 0 表示成功

//通信
char buf[1024];
ACE_SSL_SOCK_Stream stream;
ACE_INET_Addr addr (9999);
ACE_INET_Addr remote_addr;
ACE_SSL_SOCK_Acceptor acceptor(addr);
if (-1 == acceptor.accept(stream,&remote_addr))
    return -1;
remote_addr.addr_to_string(buf,1024);
std::cout 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教ACE中ACE_Connector如何处理收到的数据?
  • ACE仅仅实例化一个对象ACE_TP_Reactor tpReactor程序就退出,请高手指教
  • ACE的ACE_Atomic_Op有bug?
  • ACE 如何在linux下设置环境变量
  • unix/linux知识 iis7站长之家
  • 安装过 ACE 的 来帮个忙
  • gcc 和ace的问题
  • ACE与网络IPC的关系是什么?
  • 谁能告诉我如何在redhat9下安装ACE环境?
  • ubuntu下编译ACE出错
  • 面向对象的网络开发包 ACE
  • 请教kdevelop编译ACE的问题
  • ACE用得多吗?
  • 基于 Web 的代码编辑器 ACE JS
  • ACE linux下的异步IO
  • 在HP-UX 11.11上安装ACE的问题
  • ACE在unix,linux,windows,哪个环境下发挥的最好?
  • ACE_HANDLE 是什么类型
  • linux 下 ACE 编译问题
  • 自己做的ACE培训资料(打个小广告)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,