我已经创建了一个iOS应用程序和rails服务器,它彼此之间来回通信。我正在使用登录功能,所以我想要SSL。
heroku上的SSL端点似乎是$20/mo。补充说这似乎很简单。heroku addons:create ssl:endpoint。
现在,我需要购买SSL证书。
1)最便宜的地方是哪里可以得到SSL证书以满足我的需要?似乎有不同程度的选择。我只需要最基本的吗?
2)我的购买究竟得到了什么?私钥和证书?但我不太清楚到底发生了什么。是这样吗..。当iOS客户机访问我的服务器并访问任何https链接时,我的服务器将返回证书。iOS应用程序接收证书,并将其发送到证书颁发机构(CA)。CA将把证书连同公钥一起返回给iOS应用程序。然后,iOS应用程序将使用公钥对数据进行加密,并将其发送回服务器。然后,服务器将使用私钥解密数据。
3)在rails服务器上存储私钥的确切位置是什么?在我的数据库里?在.secrets文件中?在heroku配置中?
发布于 2015-07-04 03:26:32
#1:所需的SSL证书取决于要保护多少域。如果是jus、www.yourdomain.com和yourdomain.com,那么大多数证书(即Comodo PositiveSSL)都能做到这一点。
此外:
#2: Heroku有一篇文章讨论在您拥有cert:https://devcenter.heroku.com/articles/ssl-endpoint之后如何设置端点,这篇文章展示了如何通过heroku certs:add yourcert.crt yourkey.key添加签名的证书和私钥。
#3:您的iOS应用程序应该使用NSURLSession方法远程调用Heroku应用程序。这将处理TLS (SSL)握手,您不必担心细节。
另外,您还可以在您的将证书钉住应用程序中使用Heroku应用程序的iOS。您的iOS应用程序有效地将其硬编码签名与Heroku应用程序证书中的签名相匹配,这样它就知道它不仅仅是在与其他HTTPS服务器对话。
希望这是清楚的。
添加了IRT注释
注意,当您添加SSL时,您将得到一个SSL端点(例如sushi-bento-2141.herokussl.com ),它已经通过Heroku的通配符证书拥有SSL。您的应用程序可以监听非SSL端点morning-evergreen-9385.herokuapp.com上的请求,并重新定向它们(301Perent)。你不需要为此买你自己的证书。
但是,拥有自己的域名(用户更容易识别)通常要好得多,为此您必须购买证书(根据我上面的答案)。
https://stackoverflow.com/questions/31216025
复制相似问题