【问题标题】:SSL certificate for LAN enviornment局域网环境 SSL 证书
【发布时间】:2010-06-16 07:33:09
【问题描述】:

我制作了一个 Silverlight 3.0 应用程序,它通过 https 与 xml rpc 服务器通信。整个应用程序将在 LAN 环境中运行,服务器可以安装在不同的机器上,客户端可以安装在同一台机器上。我正在使用针对服务器 ip 生成的自签名证书,我需要在客户端计算机上放入 Trusted Root Certification Authorties。但是如果我想与第二台服务器通信,则需要在客户端计算机上针对该特定服务器的 ip 安装另一个证书,简而言之,如果我想与 n 个不同的服务器通信,我需要在客户端上安装 n 个证书,这对我来说是不可能的,我怎样才能通过局域网环境使用单个证书来做到这一点。证书是根据服务器的 ip 或主机名生成的,有没有办法绕过 SSL 证书的验证?喜欢

ServicePointManager.ServerCertificateValidationCallback = MyCertHandler; 

static bool MyCertHandler(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors error) 
{ 
// Ignore errors 
return true; 
} 

但是上面的代码不能在 Silverlight 中使用?有什么帮助吗?

【问题讨论】:

    标签: c# silverlight-3.0 ssl-certificate self-signed


    【解决方案1】:

    不要使用自签名证书,如果可以忽略身份验证,那么没有充分的理由使用 ssl。

    为了避免自签名证书: 设置个人 CA(使用 Microsoft 的 CA 非常容易)。然后从您自己的 CA 颁发服务器证书,并将 CA 的证书作为受信任的根提供给每个服务器。然后你最终会得到这样的设置:

    证书链:

    • A 签名 B
    • 签名的 C
    • 签名的 D
    • 签名的 E

    部署:

    • 服务器 B 获取 A 和 B
    • 服务器 C 获取 A 和 C
    • 服务器 D 获取 A 和 D
    • 服务器 E 得到 A 和 E

    然后,连接到这些服务器中的任何一个的客户端可以将通用名称与它所连接的地址、有效日期范围与它自己的现在时间进行匹配,并为每个服务器构建一个验证链以验证“CA Cert A”。

    (这是设置您自己的 CA 服务器的随机起始链接。) link text

    如果你尝试使用 Selfsigned,你最终会得到 ​​p>

    证书链:

    • B 签署 B
    • C 签名 C
    • D 签名 D
    • 电子签名电子

    证书部署

    • 服务器 B 获取 B、C、D、E
    • 服务器 C 获取 B、C、D、E
    • 服务器 D 获取 B、C、D、E
    • 服务器 E 获取 B、C、D、E

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 2020-11-29
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多