我正在使用Wininet库与客户端证书(存储在智能卡上)建立SSL连接。
问题是,我看到智能卡是针对已发送的每个HttpRequest访问的。
从Fidler和wireshark中,我看到: 1.所有请求都是HTTP 1.0而不是HTTP 1.1。2.每次连接都要进行完整的SSL握手3.我不会被要求为每个请求输入PIN码(只针对第一个),但我发送的每个请求都要访问智能卡。
有什么想法/线索吗?实际上,这个问题可能与wininet无关,但应该对证书存储采取额外的步骤?
谢谢你,扎哈尔
发布于 2013-01-01 15:44:57
好吧,我仍然不明白为什么wininet ssl连接是HTTP 1.0而不是HTTP 1.1 (根据MSDN,它应该是HTTP 1.1。),在wininet.h中,很明显HTTP版本是1.0。
关于完全握手:我不能使用INTERNET_FLAG_IGNORE_CERT_CN_INVALID或INTERNET_FLAG_IGNORE_CERT_DATE_INVALID或相关的证书忽略标志来忽略任何证书错误或证书验证检查。IE wininet代码强制检查并查看您是否未使用常规IE例程来处理安全性。如果忽略或禁用安全检查,wininet将为每个单独的请求强制执行新的SSL套接字。这意味着当安全检查被禁用时,请求将不会一起共享。这是一种安全设计,目的是确认您确实希望忽略/禁用每个请求的证书检查,而不是在多个请求之间共享未经验证的SSL会话。
你好,扎哈尔
https://stackoverflow.com/questions/14089106
复制相似问题