2012-12-30 32 views
0

我正在使用Wininet庫建立與客戶端證書(存儲在智能卡上)的SSL連接。Wininet SSL和客戶端證書每個請求的智能卡訪問

問題是我看到智能卡被訪問的每個HttpRequest已發送。我看到: 1.所有請求都是HTTP 1.0而不是HTTP 1.1。 2.完全SSL握手發生在每個連接上 3.我沒有被要求輸入每個請求的PIN碼(僅針對第一個),但是我發送的每個請求都訪問了智能卡。

任何想法/線索?事實上,這可能與wininet不同,但是應該對證書存儲採取額外的步驟?

謝謝 扎哈爾

回答

0

OK,我還是不明白爲什麼WinInet的SSL連接HTTP 1.0而不是HTTP 1.1(根據MSDN應該是HTTP 1.1),以及在wininet.h它是HTTP版本是1.0的cleat。

關於全握手: 我不能使用INTERNET_FLAG_IGNORE_CERT_CN_INVALIDINTERNET_FLAG_IGNORE_CERT_DATE_INVALID或相關證書忽略標誌忽略任何證書錯誤或證書驗證檢查。 IE的Wininet代碼強制檢查,看看你是不是使用常規的IE例程來處理安全。如果安全檢查被忽略或禁用,wininet將爲每個單獨的請求強制執行一個新的SSL套接字。這意味着在安全檢查被禁用時,請求不會共享。這是一項安全設計,可確認您確實希望忽略/禁用每個請求的證書檢查,而不是跨多個請求共享未驗證的SSL會話。

Regards, Zahar