社区
网络编程
帖子详情
为什么连接不到https?
thisworld
2005-08-31 04:01:51
我要程序与一个https的网站通信,准备用openssl库,但程序一开始就遇到问题了,
我建了个socket,能够与http的网站相连,却connet不上https的那个网站,不知道是什么原因?(这里还没有用到openssl)
大家有没有相关的源代码或资料,请发到8_88_888@163.com,谢谢了!
...全文
208
6
打赏
收藏
为什么连接不到https?
我要程序与一个https的网站通信,准备用openssl库,但程序一开始就遇到问题了, 我建了个socket,能够与http的网站相连,却connet不上https的那个网站,不知道是什么原因?(这里还没有用到openssl) 大家有没有相关的源代码或资料,请发到8_88_888@163.com,谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
thisworld
2005-09-05
打赏
举报
回复
SSL_get_peer_certificate是干什么用的?
是openssl包中的函数,得到安全证书信息什么的
thisworld
2005-09-01
打赏
举报
回复
自己找到原因了,原来是端口设置不对,https的端口是443
但是还有好多些问题:
server_cert = SSL_get_peer_certificate (ssl);
CHK_NULL(server_cert); //得不到server_cert,在这里就退出了,
softrain
2005-09-01
打赏
举报
回复
mark
SSL_get_peer_certificate是干什么用的?
thisworld
2005-08-31
打赏
举报
回复
程序在显示:connect failed!之后便退出了,
而我在ie中可以访问https://172.168.126.58
thisworld
2005-08-31
打赏
举报
回复
代码如下,
#include <iostream.h>
#include <winsock2.h>
#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
#define CHK_NULL(x) if ((x)==NULL) exit (1)
#define CHK_ERR(err,s) if ((err)==-1) { perror(s); exit(1); }
#define CHK_SSL(err) if ((err)==-1) { ERR_print_errors_fp(stderr); exit(2); }
void main()
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,2),&wsaData))
{
cout<<"init winsock failed!"<<endl;
return;
}
SOCKET s;
SOCKADDR_IN addr;
int len=sizeof(addr);
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (s==INVALID_SOCKET)
{
cout<<"create socket failed!"<<endl;
return;
}
addr.sin_port=htons(80);
addr.sin_family=AF_INET;
addr.sin_addr.s_addr=inet_addr("172.168.126.58");
if (connect(s,(sockaddr *)&addr,len)==SOCKET_ERROR)
{
cout<<"connect failed!"<<endl;
return;
}
else
{
cout<<"connect success!"<<endl;
}
int err;
SSL_CTX* ctx;
SSL* ssl;
X509* server_cert;
char* str;
//char buf [4096];
SSL_METHOD *meth;
SSLeay_add_ssl_algorithms();
meth = SSLv2_client_method();
SSL_load_error_strings();
ctx = SSL_CTX_new (meth);
CHK_NULL(ctx);
ssl = SSL_new (ctx);
CHK_NULL(ssl);
SSL_set_fd (ssl, s);
err = SSL_connect (ssl);
CHK_SSL(err);
cout<<"SSL connection using "<<endl<<SSL_get_cipher (ssl)<<endl;
server_cert = SSL_get_peer_certificate (ssl);
CHK_NULL(server_cert);
cout<<"Server certificate: "<<endl;
str = X509_NAME_oneline (X509_get_subject_name (server_cert),0,0);
CHK_NULL(str);
cout<<"\t subject: "<<endl<<str<<endl;
OPENSSL_free (str);
str = X509_NAME_oneline (X509_get_issuer_name (server_cert),0,0);
CHK_NULL(str);
cout<<"\t issuer: "<<endl<<str<<endl;
OPENSSL_free (str);
X509_free (server_cert);
SSL_shutdown (ssl);
closesocket(s);
SSL_free (ssl);
SSL_CTX_free (ctx);
WSACleanup();
}
VCSQLVB
2005-08-31
打赏
举报
回复
帖出代码
利用netstat查看http为短
连接
还是长
连接
?
最近,公司在做Redis替换memcached的项目,那mc可以设置是长
连接
,那组件中的Redis到底用的是长
连接
还是短
连接
呢? 大牛军哥只给我一个命令:netstat -anp | grep "redis" 查看是否有类似下边的 上图中的代表的...
为什么有时候访问某些加密
https
网站是不需要证书的?
https
? ssl?
...2.对于某些网站,尤其是证书颁发机构的网站,操作系统自动添加了这些网站访问需要的证书到证书管理器中,所以就算用户完全不知道这些网站,他们也能很轻松的利用
https
访问这些网站,因
HTTP和
HTTPS
的区别以及为什么建立TCP三次握手、断开
连接
四次挥手
建立
连接
,TCP三次握手 ...为什么三次? 主要是为了建立可靠的通信信道,保证客户端与服务端同时具备发送、接收数据的能力 两次为什么不行? 1、防止已失效的请求报文又传送到了服务端,建立了多余的链接
用Navicat
连接
不到
MySQL的常见问题解决方法
最近遇到了一件非常棘手的问题,用Navicat远程
连接
数据库居然
连接
不到
,真是头都大了。 网上查阅了一下原因,原来是没有开通远程权限,好吧,下面我就来回忆一下自己怎么处理这问题的! 大家都知道,用Navicat...
win10系统如何
连接
到无线显示器?
原文地址::
https
://jingyan.baidu.com/article/3a2f7c2e59399566aed61154.html 相关文章 1、如何
连接
到Windows10中的无线显示器----...2、如何
连接
到Windows10中的无线显示器----
https
://blog.csdn.net/weixi...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章