是否可以通过证书链连接到客户端作为服务器?
clientStream.AuthenticateAsServerAsync(certificate, false, System.Security.Authentication.SslProtocols.Tls, false).Wait();
我只是尝试使用自签名证书链连接到客户端,并且没有运气。 SslStream实例的方法AuthenticateAsServer只有一个证书作为参数。但浏览器要求additional root certificate。 你有任何想法或代码样本吗?
答案 0 :(得分:0)
链不发送根,因为A)你已经拥有它,所以它对你的根存储是多余的;或者B)你没有,在这种情况下你不会相信它,所以为什么要这么麻烦?
certificate_list: 这是证书的序列(链)。发件人的 证书必须在列表中排在第一位。以下各项 证书必须直接证明其前面的证书。因为 证书验证要求分发根密钥 独立地,指定根的自签名证书 证书颁发机构可以从链中省略 假设远程端必须已经拥有它以便 无论如何都要验证它。
SslStream类将发送服务器身份证书,后跟其知道的任何中间人,但不是根目录(当然,除非服务器身份证书是自签名的)。
通常可以通过他们写入子/中间CA的授权信息访问记录查找不受信任的根。如果您没有AIA或端点无法访问,则必须通过其他机制将根目录转移到客户端计算机。