java - 在这种情况下自签名证书更好吗?

标签 java c# ssl certificate

<分区>


想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它.

关闭 8 年前

我有一个通过 HTTP Post 与集成应用程序通信的服务器应用程序,我想加密该通信线路。
两个应用程序可能在同一台服务器机器上,也可能在不同机器上。
它们都是 winform 应用程序,所以我们在这里根本不讨论 IIS 或网站。

我对两端都有控制权,这意味着只有集成软件使用服务器颁发的这个 SSL 证书,没有其他方参与。

通过研究,当我购买 VeriSign 证书而不是自签名时,我发现了以下缺点/优点。

专业版:

  1. 更好的安全性(40 位到 2048 位加密)
  2. 可信赖的权威机构
  3. 具有防止网络钓鱼的功能
  4. 高保证证书(域名和企业名称)
  5. 适合 ISO 合规性目的。

缺点:

  1. 成本、成本和更多成本
  2. 很多功能都是特定于网络的,不适用于我。
  3. 如果我的服务器/客户端没有连接到 Internet 而是在 LAN 中,则无用。由于 VeriSign 无法正确验证证书。

在我的例子中,我已经知道并信任在另一端向我发送消息的人(我自己),所以我真的觉得没有必要购买证书。您是否看到任何明显的反驳论点或 VeriSign 证书中发现的任何特定功能会说服我不这样做?请让我知道,我很感激任何意见。

最佳答案

我看不出有任何理由为这样的事情使用正确的签名证书。如果您有权访问通信的两端,则也可以将证书添加为客户端上的唯一受信任证书。这样,中间人攻击就需要实际破解客户端的软件,在这种情况下,拥有签名证书也没有多大用处。

换句话说。为签名证书付费的主要原因是为了建立初始信任。但是由于您可以访问客户端的软件,您可以告诉客户端只信任您的自签名证书。

如果您无权告知客户信任哪个证书,购买签名证书可能是个好主意。

关于已验证证书的安全性更高的观点 (1) 是错误的。您可以根据需要创建自己的加密程度最高的证书。

关于java - 在这种情况下自签名证书更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893052/

上一篇:Java SSLSockets : same keyStore on client and server, 安全吗?

下一篇:php - 带 Nodejs 的 Apache 上的 SSL

相关文章:

java - 带有 Spring Boot 建议的 AOP 未触发

c# - 您可以将内联值与 AutoFixture 中的 AutoData 结合起来吗?

c# - 在 ASP.NET 中使用 MySql : Does closing a connection really release table locks?

php - 使用 .htaccess 为 CodeIgniter 中除一个目录外的所有目录强制使用 SSL

ruby - 如何获取 Ruby SSLContext 对象的 ssl_version

iPhone:为 SSL 连接安装证书

java - 抽象类构造函数参数与最终数据的抽象方法

java - 当相应列具有空值时,我可以从 jtable 中删除复选框吗?

java初始化后添加到数组

C#、正则表达式和 AND 运算符