首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将简单套接字转换为SSL套接字

将简单套接字转换为SSL套接字
EN

Stack Overflow用户
提问于 2011-10-09 01:19:10
回答 3查看 158.8K关注 0票数 129

我编写了简单的C程序,它们使用套接字('client‘和'server')。(UNIX/Linux使用情况)

服务器端只需创建一个套接字:

代码语言:javascript
复制
sockfd = socket(AF_INET, SOCK_STREAM, 0);

然后将其绑定到sockaddr:

代码语言:javascript
复制
bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));

并侦听(并接受和读取):

代码语言:javascript
复制
listen(sockfd,5);
newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
read(newsockfd,buffer,255);

客户端创建套接字,然后对其进行写入。

现在,我想以最简单、最田园、最整洁和最快速的方式将这个简单的连接转换为SSL连接。

我试图将OpenSSL添加到我的项目中,但我找不到一种简单的方法来实现我想要的东西。

EN

回答 3

Stack Overflow用户

发布于 2013-04-26 11:40:38

OpenSSL相当困难。如果没有正确地进行协商,很容易会意外地丢掉所有的安全性。(见鬼,我个人被一个bug所困扰,这个bug导致curl不能准确地读取OpenSSL警报,并且无法与一些站点通信。)

如果你真的想要简单快捷,就把stud放在你的程序前面,到此为止吧。将SSL放在不同的进程中不会减慢您的速度:http://vincent.bernat.im/en/blog/2011-ssl-benchmark.html

票数 22
EN

Stack Overflow用户

发布于 2015-11-06 21:34:50

对于像我这样的其他人:

在目录demos/ssl/中的SSL源文件中曾经有一个示例,示例代码在C++中。现在它只能通过历史记录获得:https://github.com/openssl/openssl/tree/691064c47fd6a7d11189df00a0d1b94d8051cbe0/demos/ssl

你可能必须找到一个工作版本,我最初在2015年11月6日发布了这个答案。我不得不编辑源代码--不是很多。

证书:demos/certs/apps/中的.pem:https://github.com/openssl/openssl/tree/master/demos/certs/apps

票数 10
EN

Stack Overflow用户

发布于 2017-11-08 19:06:00

下面是我的示例socket服务器线程(多连接) https://github.com/breakermind/CppLinux/blob/master/QtSslServerThreads/breakermindsslserver.cpp

代码语言:javascript
复制
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <unistd.h>
#include <iostream>

#include <breakermindsslserver.h>

using namespace std;

int main(int argc, char *argv[])
{
    BreakermindSslServer boom;
    boom.Start(123,"/home/user/c++/qt/BreakermindServer/certificate.crt", "/home/user/c++/qt/BreakermindServer/private.key");
    return 0;
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7698488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档