为此我已经绞尽脑汁好几天了。
首先,启用 SSL 但将客户端证书设置为忽略,它可以工作。
我在服务器上有一个带有私钥的有效证书。
我将其导出并安装在我的客户端上。 CA 也在两台机器上,证书被视为有效、可信且正常工作。
当我将 SSL 设置客户端证书设置为“必需”时,出现 403 错误。
我尝试禁用所有身份验证方法,创建一个本地用户(用户成员,因此有权访问站点所在的文件夹),然后使用配置编辑器启用 OneToOneMappings 并添加单个条目,其中包含 base64 版本的客户端证书、本地用户的用户名和密码以及所有内容已启用。
不幸的是,我仍然收到 403 Forbidden。
我创建了一个 c# 应用程序来检查证书是否已附加:
var handler = new HttpClientHandler();
var cert = GetCertificate(); // returns the certificate, I have checked it
handler.ClientCertificates.Add(cert);
HttpClient client = new HttpClient(handler);
await client.GetAsync(url);
结果相同,403 Forbidden。
我已经在谷歌上搜索了一段时间,但没有找到任何真正能够让它发挥作用的人。
我想确保只有拥有服务器证书的人员才能连接它。