c 获取服务器证书,c - 客户端连接时没有服务器证书,并且“没有共享密码” - 堆栈内存溢出...

我正在编写用于通信的SSL服务器和客户端。 我有以下服务器代码

SSL_CTX* InitServerCTX(void)

{

SSL_METHOD *method;

SSL_CTX *ctx;

SSL_library_init();

OpenSSL_add_all_algorithms(); /* load & register all cryptos, etc. */

SSL_load_error_strings();

ERR_load_crypto_strings();

OpenSSL_add_all_ciphers();

ctx = SSL_CTX_new(SSLv23_server_method()); /* Create new context */

if ( ctx == NULL )

{

ERR_print_errors_fp(stderr);

abort();

}

SSL_CTX_set_cipher_list(ctx, "HIGH:MEDIUM:!eNULL:!aNULL:!RC4");

return ctx; }

在此之后,接受代码为

int client = accept(server, (sockaddr*)&addr, &len); /* accept connection as usual */

printf("Connection: %s:%d\n",

inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));

ssl = SSL_new(ctx); /* get new SSL state with context */

SSL_set_fd(ssl, client);

int ret = SSL_accept(ssl);

这是客户端代码

SSL_CTX* InitCTX(void)

{

SSL_METHOD *method;

SSL_CTX *ctx;

SSL_library_init();

OpenSSL_add_all_algorithms(); /* Load cryptos, et.al. */

SSL_load_error_strings(); /* Bring in and register error messages */

ctx = SSL_CTX_new(SSLv23_client_method()); /* Create new context */

if ( ctx == NULL )

{

ERR_print_errors_fp(stderr);

abort();

}

SSL_CTX_set_cipher_list(ctx, "HIGH:MEDIUM:!eNULL:!aNULL:!RC4");

return ctx;

}

对于连接它是

ssl = SSL_new(ctx); /* create new SSL connection state */

SSL_set_fd(ssl, server); /* attach the socket descriptor */

int ret = SSL_connect(ssl) ;

我没有使用任何证书或密钥。

当我尝试使用这种方法进行连接时,服务器端没有共享密码错误。 我认为这是关于密码的一些配置问题。 有人能给我指出正确的方向吗?

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值