在Windows 7Pro上,我有一个使用schannel的安全套接字客户端应用程序。 使用TLSV1.0,1.1和1.2连接到安全服务器,无需客户端身份验证即可正常工作。 使用TLSV1.0,1.1连接到安全服务器,并通过客户端身份验证正常工作。
使用TLSV1.2进行客户端身份验证的连接失败。客户端回复3个TLS记录而不是回复握手证书:客户端密钥交换 - 密码更改规范 - 客户端密钥交换。由于服务器未收到客户端的证书,因此会中止连接。 客户端的证书具有中间且受信任的根ca.在所有情况下,使用
调用AcquireCredentialsHandleSCH_CRED_NO_DEFAULT_CREDS | SCH_CRED_MANUAL_CRED_VALIDATION | SCH_CRED_NO_SERVERNAME_CHECK, 和InitializeSecurityContext(以及其他) ISC_REQ_MANUAL_CRED_VALIDATION和ISC_REQ_USE_SUPPLIED_CREDS。
我是否需要以不同方式处理TLS V1.2的客户端身份验证?