The certificate that was used has a trust chain that cannot be verified问题
今天调用wcf程序的时候发现证书有问题。报的错误如下 The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider 查找证书发现是自己的证书没有问题,服务器也是没有问题。 后来发现只要在客户端的代码添加一句话就好了。 ServiceReference1.TransportServiceClient proxy = new WCFTest2.ServiceReference1.TransportServiceClient();
proxy.ClientCredentials.UserName.UserName = "xxxx";
proxy.ClientCredentials.UserName.Password = "xxxx";
proxy.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None; //重点
原因是我的证书放的位置不对,X509CertificateValidationMode有以下几种方式
None 未执行任何证书验证。
PeerTrust 如果证书位于被信任的人的存储区中,则有效。
ChainTrust 如果该链在受信任的根存储区生成证书颁发机构,则证书有效。
PeerOrChainTrust 如果证书位于被信任的人的存储区或该链在受信任的根存储区生成证书颁发机构,则证书有效。
Custom 用户必须插入自定义 X509CertificateValidator 以验证证书。
那这个配置主要是在服务器端的配置服务器上。
服务器的web.config配置
<clientCertificate >
<certificate findValue="XuanhunClient"
storeLocation="CurrentUser"
storeName="My"
x509FindType="FindBySubjectName"/>
<authentication certificateValidationMode="None" trustedStoreLocation="CurrentUser" />
</clientCertificate>
服务器里面是用的none,那么客户端也需要用None.这里需要保持一致。
但针对https里面加证书了,因为这个证书是在iis的站点增加的。所以不需要增加。
就只要用
ServiceReference1.TransportServiceClient proxy = new WCFTest2.ServiceReference1.TransportServiceClient();
proxy.ClientCredentials.UserName.UserName = "xxxx";
proxy.ClientCredentials.UserName.Password = "xxxx";
Util.SetCertificatePolicy();
就好了。
The certificate that was used has a trust chain that cannot be verified问题的更多相关文章
- 解决Azure 消息队列ServiceBus提示证书不信任无权限的问题
笔者在C# 消息队列-Microsoft Azure service bus 服务总线中使用Azure消息队列,最近偶尔会遇到请求数据不入队列的问题,查找日志,问题如下: 异常:X. certific ...
- 一步步改造wcf,数据加密传输-匿名客户端加密传输
一步步改造wcf,数据加密传输-匿名客户端加密传输 百度搜索wcf加密传输,资料挺多,真真正正能用的确不多. 一是本来就很复杂,而是各位大神给的资料不足.本人今天来提供一个简易方法. 匿名客户端加密传 ...
- Android HTTPS(2)HttpURLConnection.getInputStream异常的原因及解决方案
Common Problems Verifying Server Certificates InputStream in = urlConnection.getInputStream(); getIn ...
- SSL 通信及 java keystore 工具介绍
http://www.javacodegeeks.com/2014/07/java-keystore-tutorial.html Table Of Contents 1. Introduction 2 ...
- (原创) mac 10.9.2 eclipse 的 CDT 的 异常的修复
测试平台:macbook air 2012 , os x 10.9.2 , eclipse 4.3 在升级了 10.9 之后,eclipse 的CDT 无法正常使用了 异常表现: 1. 文 ...
- mac下配置gdb调试golang
mac下配置gdb调试golang 原文链接 https://sourceware.org/gdb/wiki/BuildingOnDarwin Building GDB for Darwin Crea ...
- 【Mac】【创建钥匙串】
1 Mac在钥匙串创建系统证书失败 https://blog.csdn.net/lllkey/article/details/79423596 问题: 在Eclipse的Debug,使用gdb的时候, ...
- [原]Chef_Server and Chef_WorkStation and Chef_Client Install Guide[by haibo]
一.Prerequisite OS : CentOS-7.0-1406-x86_64-DVD.iso Time Server : NTP Server SERVER NAME IP PLAN ...
- h5定位geolaction无法调试解决方法
昨天接到一个在h5获取经纬度的需求,看了文档后,代码其实很简单,但在浏览器上调试就比较蛋疼了... 代码: function successfulCallback(position) { consol ...
随机推荐
- UI基础UIButton
UI基础UIButton 前面写了UIWindow.UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实 ...
- [每日一题] OCP1z0-047 :2013-07-22 group by 子句
这道题就是考where group by having的顺序... 答案A不正确:where应该放在group by前面 答案B不正确:having子句是用多行函数(sum,avg,max,min,c ...
- Qt在表格中加入控件
任务:使用QTableWidget动态生成表格,在每行的某两列中加入QComboBox下拉框控件和QPushButton按钮控件 有添加,删除,编辑功能,每行的按钮可以浏览文件夹并选择文件 1.新建一 ...
- HNCU1323:算法2-1:集合union (线性表)
http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id=1323 题目描述 假设利用两个线性表LA和 ...
- yum局域网软件源搭建
之前的Demo算是告一段落了,期末的各种考试报告也结束了. 暑假的一项任务就是和其他几个同学一起,在若干台服务器上安装openstack,虚拟出更多的机器,对各种分布式/并行数据分析平台进行测试. 目 ...
- jquery表格提交验证
在表格中的验证 1.body中的内容 <form action="http://www.qq.com" id="form1"><table w ...
- Docker集群实验环境布署--swarm【6 配置上层Nginx代理,让任意Docker client访问得到高可用的管理API】
10.40.42.10上,也就是对应的VRRP中的10.40.42.1和2上,配置nginx tcp代理 # cat 4000_manager.venic.com_10.40.100.141-14 ...
- Caffe安装过程错误处理方法
1. 错误1: fatal error: caffe/proto/caffe.pb.h: No such file or directory 解决方法: You need to generate ca ...
- Nexpose
下载: https://www.rapid7.com/products/nexpose/nexpose-enterprise-trial-thank-you.jsp注册: https://www.ra ...
- python绝技 — 搜寻蓝牙设备
需要安装蓝牙模块:pybluez sudo pip install pybluez 代码 #!/usr/bin/env python #--*--coding=utf-8--*-- #P191 #su ...