none
SOAP 安全协商失败。 RRS feed

  • 问题

  • 目标“http://192.168.1.106:8001/WCFService”的与“http://192.168.1.106:8001/WCFService”的 SOAP 安全协商失败。有关详细信息,请参阅内部异常。  这个问题,做了很多i,一直失败。。证书该做的都做了
      {"X.509 certificate CN=LidianSever 链生成失败。所使用的证书具有无法验证的信任链。请替换该证书或更改 certificateValidationMode。已处理证书链,但是在不受信任提供程序信任的根证书中终止。\r\n"}
     
    如果客户端 服务端都在本机 那就正确,如果分开就这错误。。这一般是什么错误~! 知道的请帮助我一下,谢谢!
    看了,本论坛的MESSAGE-NONE-WSHTTPBINDING这个教程的
    2009年9月7日 3:19

答案

  • 楼主这个问题我也遇到过。
    也请教过老徐,开始我理解是 证书只需要在自己的服务器端装就行了。所以客户端跟服务器端都在以个机器上的话能调试成功。
    后来出现几次错误才发现,证书也同样需要在客户端装,这样问题就应该能解决了。
    但是这样在实际应用中不是很麻烦啊,给客户装一个程序就需要装同样的证书。

    现在想找找不在客户端装就能实现的方法。

    2009年9月21日 2:19
  • 谢谢 老徐了。
    刚看你的教学帖子的时间,一直认为 自定义用户名密码认证。只需要在服务器端装上证书就可以了。
    那在实际应用中 客户端跟服务器都需要安装证书,像在网上下载的一般程序就很麻烦了。一般客户自己不会配置证书的。并且配置的着个证书 还是自己在服务器端制作的原始证书 有什么好的解决办法没?


    一种方式试用版的,商业证书。从 Verisign 站点获得试用版的测试服务器端证书,并将其安装在 Web 服务器上。

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月22日 9:33
    版主
  • 在配置文件中把验证证书去掉,或者自定义证书验证.

    如果采用单证书模式,客户机可以不用预先安装证书,WCF在安全协商的开始会自动从
    服务器下载证书的公钥.

    基于传输层的安全是需要预先安装服务器证书公钥的.
    2009年10月20日 2:10

全部回复

  • 以前我遇到这个问题:
    http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/2b6670c6-99de-41ae-befa-f0afed49114d

    也解决了问题。
    和你证书的设置有关系
    这儿错误的原因和The certificate that was used has a trust chain that cannot be verified. 一样。
    因为证书为自签名,无法信任。这里重新创建证书为可交换密钥。

    已经解决。
    这个问题已经修改掉了。
    主要原因是这个证书链失败,使用的语句:
    makecert -sr CurrentUser -ss My -n CN=FrankCertificate -sky signature -pe
    制作的是自签名的证书,不能设置为新人证书。
    修改sky选项为exchange,可以交换密钥。因为要导出带密钥的证书,要安装到信任的证书机构和信任的人。
    1.制作一个证书。制作证书:makecert -sr localmachine -ss My -n CN=MyServerCer -sky exchange -pe -r。http://msdn.microsoft.com/zh-cn/library/aa702761.aspx
    2.导出证书文件,带密钥的pfx文件。使用mmc
    3.导入证书到信任的人。
    4.导入证书到信任的机构,这个证书就被信任了。



    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月7日 5:20
    版主
  • 1.制作一个证书。制作证书:makecert -sr localmachine -ss My -n CN=MyServerCer -sky exchange -pe -r。
      我用的就是这样的 ,我是看了本论坛的文章
    MESSAGE-NONE-WSHTTPBINDING
      makecert -sr localmachine -ss My -n CN=MyServerCer -sky exchange -pe -r。 制作证书就是用这个语句
    2009年9月8日 0:30
  • 上面是完成了LocalMachine的证书信任,还是用这个pfx文件。使用mmc
    你重复以上的步骤:
    把证书导入到CurrentUser的三个类别的区域里。
    2.导出证书文件,带密钥的pfx文件。使用mmc
    3.导入证书到信任的人。
    4.导入证书到信任的机构,这个证书就被信任了。
     
      你在试验一下。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月8日 0:58
    版主
  • 并无成功,我还在继续学习中
    2009年9月11日 2:41
  • 并无成功,我还在继续学习中

    安全的很多异常,我都遇到过,而且基本查找资料都解决了,论坛里我发的都有,。
    但是比较诡异的是 很多人照着做,问题解决不了~
    呵呵

      我现场和他们讨论的时候,这些问题基本都可以解决~
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月14日 10:09
    版主
  • 楼主这个问题我也遇到过。
    也请教过老徐,开始我理解是 证书只需要在自己的服务器端装就行了。所以客户端跟服务器端都在以个机器上的话能调试成功。
    后来出现几次错误才发现,证书也同样需要在客户端装,这样问题就应该能解决了。
    但是这样在实际应用中不是很麻烦啊,给客户装一个程序就需要装同样的证书。

    现在想找找不在客户端装就能实现的方法。

    2009年9月21日 2:19
  • 楼主这个问题我也遇到过。
    也请教过老徐,开始我理解是 证书只需要在自己的服务器端装就行了。所以客户端跟服务器端都在以个机器上的话能调试成功。
    后来出现几次错误才发现,证书也同样需要在客户端装,这样问题就应该能解决了。
    但是这样在实际应用中不是很麻烦啊,给客户装一个程序就需要装同样的证书。

    现在想找找不在客户端装就能实现的方法。

    2009年9月21日 2:19
  • 楼主这个问题我也遇到过。
    也请教过老徐,开始我理解是 证书只需要在自己的服务器端装就行了。所以客户端跟服务器端都在以个机器上的话能调试成功。
    后来出现几次错误才发现,证书也同样需要在客户端装,这样问题就应该能解决了。
    但是这样在实际应用中不是很麻烦啊,给客户装一个程序就需要装同样的证书。

    现在想找找不在客户端装就能实现的方法。


    客户端安装证书主要是为了证书有效性验证。
    在消息安全模式下为了建立TLS连接。

    一般产品或者大型的商业系统会购买证书。这些机构的证书的验证Windows里有一套机制。你可以再IE查看到一些新人的证书机构的名字。

      我们自己测试制作的证书,在产品中应用会有很多问题,如果使用Windows Server的CA制作证书,有效期只有1年,也是一个问题。

    一般学习,自己制作一个证书就可以了。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月21日 3:37
    版主
  • 客户端安装证书主要是为了证书有效性验证。
    在消息安全模式下为了建立TLS连接
    。(这句话是什么意思?)
    如果不想再客户端安装证书该如何做那?


    2009年9月21日 3:57
  • 客户端安装证书主要是为了证书有效性验证。
    在消息安全模式下为了建立TLS连接
    。(这句话是什么意思?)
    如果不想再客户端安装证书该如何做那?



    Hi,
       关于TLS和SSL的问题,论坛里有帖子讨论过。
    http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/e1aa7bea-90d8-41e6-b91b-7addba44f8e3
      安全的问题除了有效的鉴别客户端身份以外,还要对服务端进行验证,保证客户端链接的不是非法的服务数据。
    这里就需要一个证书来完成。消息安全模式和传输安全模式都需要证书。
      我目前所知道的。如果你不想客户端安装证书,或者说完全不适用证书,就是使用Windows身份验证,机遇NetTcpBinding。
    这样要求客户端和服务端同在一个Windows域里,有DC域控制器来验证客户端和服务器身份。保证传输的安全有效。
      其它方式,如果服务器提供的证书是商业证书。也就是向Versin这样的证书机构申请的证书,需要付费,这里客户端就不不要,IE里尼能看到证书机构的信息,有些已经是新人的机构。验证的时候会直接查找。
      另外一个方式就是,自己建立PKI证书颁发机构,Windows 服务器系统里有这个服务,我们可以自己来完成,这个证书有个有效期现实,默认好像是1年。
      这个证书,只是讨论的服务器证书,客户端有时候也需要自己的证书
    (一般你看到的电子商务的网站或者银行,使用的加密或者客户端验证的USP电子锁,实际就是一种证书。不过这个是鉴别客户端身份的。)
     在不对客户端进行证书方式的验证,就不需要客户端也提供自己的证书。

     
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月21日 12:10
    版主
  • 谢谢 老徐了。
    刚看你的教学帖子的时间,一直认为 自定义用户名密码认证。只需要在服务器端装上证书就可以了。
    那在实际应用中 客户端跟服务器都需要安装证书,像在网上下载的一般程序就很麻烦了。一般客户自己不会配置证书的。并且配置的着个证书 还是自己在服务器端制作的原始证书 有什么好的解决办法没?

    2009年9月22日 0:56
  • 谢谢 老徐了。
    刚看你的教学帖子的时间,一直认为 自定义用户名密码认证。只需要在服务器端装上证书就可以了。
    那在实际应用中 客户端跟服务器都需要安装证书,像在网上下载的一般程序就很麻烦了。一般客户自己不会配置证书的。并且配置的着个证书 还是自己在服务器端制作的原始证书 有什么好的解决办法没?


    一种方式试用版的,商业证书。从 Verisign 站点获得试用版的测试服务器端证书,并将其安装在 Web 服务器上。

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月22日 9:33
    版主
  • 谢谢 老徐了。
    刚看你的教学帖子的时间,一直认为 自定义用户名密码认证。只需要在服务器端装上证书就可以了。
    那在实际应用中 客户端跟服务器都需要安装证书,像在网上下载的一般程序就很麻烦了。一般客户自己不会配置证书的。并且配置的着个证书 还是自己在服务器端制作的原始证书 有什么好的解决办法没?


    一种方式试用版的,商业证书。从 Verisign 站点获得试用版的测试服务器端证书,并将其安装在 Web 服务器上。

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    以前曾经在WCF必备知识里介绍过:WSE3.0构建Web服务安全(2):非对称加密、公钥、密钥、证书、签名的区别和联系以及X.509 证书的获得和管理
    【4】X.509 证书的获得和管理:

        【4.1】免费数字证书:获得免费数字证书的方法有很多,目前国内有很多CA中心提供试用型数字证书,其申请过程在网上即时完成,并可以免费使用。下面提供一个比较好的站点,申请地址为https://testca.netca.net/。注意只有安装了根证书(证书链)的计算机,才能完成申请步骤和正常使用。推荐另外一个可以免费申请证书的CAhttp://www.cacert.org/

        【4.2】CA获得:商业应用最好从证书的签发机构CA获得证书,比如VeriSign证书服务机构,这样商业CA服务机构的证书已经广泛使用,有的系统默认为可信任的证书签发机构。但是证书需要付费。

        【4.3】windows Server 2003证书服务windows Server 2003中安装证书服务器,这样windows Server 2003服务器即可当做一个证书服务机构CA,可以申请签发证书。也就是私有的身份证办法和制作机构,好比很多企业里的胸卡,HR就可以自己制作,但是使用范围只限制在企业内部。

        【4.4】makecert工具
    免费的证书我没有侧似乎过。
    不知道有什么限制没有
    你可以尝试申请一下


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月22日 9:38
    版主
  • 一直是有问题的  郁闷
    2009年10月13日 6:10
  • 一直是有问题的  郁闷

    我真想亲自来给你来调试代码
    呵呵

    你google一下看看,和你一样的问题应该很多,看看他们如何解决的。
    我记得当时我遇到的错误,后来查询资料,基本就解决了。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年10月13日 10:13
    版主
  • 在配置文件中把验证证书去掉,或者自定义证书验证.

    如果采用单证书模式,客户机可以不用预先安装证书,WCF在安全协商的开始会自动从
    服务器下载证书的公钥.

    基于传输层的安全是需要预先安装服务器证书公钥的.
    2009年10月20日 2:10