【问题标题】:RESTful Service with Self Signed SSL带有自签名 SSL 的 RESTful 服务
【发布时间】:2013-01-28 15:28:09
【问题描述】:

我们正在构建一个端到端的解决方案,让我们的客户能够通过移动应用程序访问托管在他们自己服务器上的 ERP 数据。版本 1 将是一个 iOS 应用程序。

我们需要确保客户端和服务器之间的流量使用 SSL 加密。问题在于我们希望服务器的安装尽可能无缝,因此我们不希望客户经历购买和安装 SSL 证书的过程。更不用说每年都必须更新该证书。

我们正在考虑创建一个自签名 CA 证书,并使用它为每个客户端创建子证书,以安装在他们的服务器上(连同公共 CA 证书)。我们将自动化创建子证书的过程,并将其作为设置过程的一部分。该证书也将有一个非常长的到期日期,不处理到期。但如果我们使用此证书,来自客户端的请求将不受信任,因为 CA 将不受信任。

  1. 可以将 CA 添加到 iOS 应用或设备吗?
  2. 此实施是否存在安全问题?

【问题讨论】:

  • 对于 1. checkout [如何使用 NSURLConnection 连接 SSL 以获得不受信任的证书?][1] [1]: stackoverflow.com/questions/933331/…
  • 感谢您的建议,我需要确保它适用于所有客户端:iOs、Android、Windows

标签: ios rest ssl security


【解决方案1】:

我有一个非常相似的情况。到目前为止,我刚刚创建了自签名证书,并且只是对客户端进行了编程以忽略允许不受信任的 SSL 证书。如果有更好的答案,我很乐意听到。

【讨论】:

  • 您能分享一下如何做到这一点吗?
  • @GopalSinghSirvi 哪个部分?
  • 整件事..如何生成自签名 ssl 并将其应用于 andorid 和 web api 应用程序
【解决方案2】:

现在是 2017 年,letsencrypt 现在存在,它提供免费的域验证和 TLS 证书签名,以便浏览器/操作系统 HTTPS 或 TLS 库和框架接受它们,并且通过certbot 设置起来相对容易自动续订。我不会在这里描述它,因为它是特定于部署的,但他们有很好的文档。将它们结合起来可能是最好的解决方案。

由于各种原因,捆绑和使用自签名证书严重欠佳,而且没有理由再这样做了(除了可能非常懒惰),所以不要这样做。

Free 仅适用于基本的域验证证书,即,letsencrypt.org 验证您拥有您所说的域(并且 certbot 用于自动化该过程)。如果需要,您仍然需要为额外的验证步骤付费。但是,对于您的应用程序和服务器之间的内部 TLS 连接,您只需要验证域,因为您只需要确保您正在与您的服务器通信。额外的步骤更侧重于让客户对公司充满信心,因此他们可以更加安心地提供敏感数据。一般而言,如果他们正在使用您的应用程序,则表明他们已经信任您的公司,因此额外的验证并不重要(而且可能对客户来说是不可见的)。

在开发中,如果您想使用自签名证书,这可能仍然有意义。查看my answer 至this question,了解如何为 iOS 设备上的所有应用安装自签名证书。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    相关资源
    最近更新 更多