Intranet中的自签名TLS证书

时间:2017-10-02 13:50:15

标签: c# ssl https

我正在用C#编写一个系统,它由REST API服务器组成,用HttpListener和WPF客户端应用程序编写,使用HttpClient,我想使用HTTPS。

据我所知,在服务器端,我所要做的就是运行带有https前缀的HttpListener并将我的证书(例如使用makecert创建)绑定到正确的端口 - 现在所有通信都已加密。

在客户端,我必须将证书的公共部分放在当前用户存储中,以便可以信任它。

服务器不公开,每个客户端只有在登录VPN后才能访问自己的实例。

我的问题:  1.自签名证书是否足够安全?是否为新客户端生成新证书更安全(例如,从许可证数据)?  2.如何生成"公共部分"和#34;私人部分"证书?我该如何发货?

它不是一家银行,所以我不想过度使用安全保障,但我不想去信任所有证书"方式。

2 个答案:

答案 0 :(得分:1)

我认为您还必须将自签名证书的公钥添加到“受信任的根证书颁发机构”商店。 因为你必须在每个客户身上做到这一点,所以这是非常麻烦的事情......

您不能使用LetsEncrypt颁发的证书吗?

答案 1 :(得分:1)

安全性通常取决于您的私钥受到多大程度的保护。使用的算法可以与公共签名证书上的算法相同。

使用自签名证书时没有继承安全性的损失。

更大的问题是您的公钥在成员系统中的分配。如果您在域控制器上运行域范围的CA,则应该相对容易。

如果不这样做,您可以通过组策略执行此操作。

在任何情况下,它都需要管理员干预才能让它在您的所有系统上运行,并且如果私钥被泄露则需要再次进行管理。

如果外部客户端未连接到DC,则会出现问题。然后LetsEncrypt绝对是更好的选择。