【问题标题】:I need to purchase an SSL certificate to use through a heroku server and iOS app. What exactly do I need?我需要购买 SSL 证书才能通过 heroku 服务器和 iOS 应用程序使用。我到底需要什么?
【发布时间】:2015-07-04 01:36:53
【问题描述】:

我创建了一个 iOS 应用程序和 Rails 服务器,它们可以相互通信。我正在使用登录功能,所以我想要 SSL。

heroku 上的 SSL 端点似乎是 20 美元/月。添加这似乎很简单。 heroku addons:create ssl:endpoint

现在,我需要购买 SSL 证书。

1) 在哪里可以获得满足我需求的 SSL 证书最便宜的地方?似乎有不同程度的选择。我只需要最基本的吗?

2) 我购买的商品究竟会收到什么?私钥和证书?我不太确定到底会发生什么。是这样吗...当iOS客户端点击我的服务器并点击任何https链接时,我的服务器将返回证书。 iOS 应用程序接收证书,并将其发送给证书颁发机构 (CA)。 CA 会将证书与公钥一起返回给 iOS 应用程序。然后,iOS 应用程序将使用公钥加密数据,并将其发送回服务器。然后服务器将使用私钥解密数据。

3) 我将私钥存储在我的 Rails 服务器上的什么位置?在我的数据库中?在 .secrets 文件中?在 heroku 配置中?

【问题讨论】:

    标签: ios ruby-on-rails cocoa-touch ssl heroku


    【解决方案1】:

    #1:您需要的 SSL 证书取决于您要保护的域数量。如果是 www.yourdomain.comyourdomain.com,大多数证书(即 Comodo PositiveSSL)都可以解决问题。

    另外:

    • DNSimple,绝对不是最便宜的,可以为你做很多工作(密钥生成、CSR 生成和生成证书)

    • 我(目前)将 Namecheap 用于单域 PositiveSSL 和/或多域 PositiveSSL 证书。他们的登录时相对便宜的两因素身份验证,如果不是很好,他们的 UI 是“可用的”。

    #2: Heroku 有一篇文章介绍了如何在拥有证书后设置端点:https://devcenter.heroku.com/articles/ssl-endpoint - 它显示了如何通过 heroku certs:add yourcert.crt yourkey.key 添加签名证书和私钥

    #3:您的 iOS 应用应使用 NSURLSession 方法远程调用您的 Heroku 应用。这会处理 TLS (SSL) 握手,您不必担心细节。

    作为附加提示,您还可以在您的 iOS 应用程序中 pin the certificate 您的 Heroku 应用程序。您的 iOS 应用程序有效地将其硬编码签名与您的 Heroku 应用程序证书中的签名相匹配,以便它知道它不仅仅是在与其他一些 HTTPS 服务器通信。

    希望这很清楚。

    添加了 IRT 评论

    请注意,当您添加 SSL 插件时,您将获得一个 SSL 端点 - 例如。 sushi-bento-2141.herokussl.com - 已经通过 Heroku 的通配符证书拥有 SSL。您的应用程序可以侦听非 SSL 端点 morning-evergreen-9385.herokuapp.com 上的请求并重定向它们(301 永久)。您无需为此购买自己的证书。

    但是,拥有自己的域名通常会更好(用户更容易识别!),您必须为此购买证书(根据我上面的回答)。

    【讨论】:

    • 谢谢!很好的答案。我现在想知道的是,heroku 跳出问题类似于 Morning-evergreen-9385.herokuapp.com。我应该为这个 URL 获取我的单域 PositiveSLL 吗?或者我应该为我的应用获取一个便宜的域名,然后将我的 heroku 应用转移到那个域,而不是 heroku 生成的那个?
    • 嗯。目前,除非我取得成功,否则未来没有任何计划,该应用程序没有网站。它只是为我的 iOS 应用程序和 iOS 应用程序服务的后端 Rails 服务器。用户在拉取数据时永远不会看到应用程序正在访问的 URL。在这一点上,您会为此烦恼获得域名吗?以后,如果我决定要一个网站,通过我自己的域名移植我在 heroku 上的内容是否足够容易?
    • 在这种情况下:您可以只使用 Heroku SSL 端点(仅)。您将无法从您的 iOS 应用程序中固定(到您自己的证书),这是一个小弱点,但如果您不处理个人识别信息(“PII”),您可能可以接受。跨度>
    • 我确实有“PII”。我的应用程序有自己的凭据系统。在这种情况下,我最好获得一个域和托管,以及它的单个域证书吗?无论如何,我正计划为登陆页面获取域和托管。我可以只使用 www.myexampleapp.com 作为登录页面,使用 www.myexampleapp.com/api/v1/things 作为客户端-服务器端点吗?
    • 是的!这正是我为自己的项目所做的。获取证书,将其添加到 Heroku 并在那里托管您的网站和 API 服务器。
    猜你喜欢
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 2019-06-10
    相关资源
    最近更新 更多