如何获得经过验证的SSL证书以进行本地开发?

时间:2013-03-24 15:39:57

标签: ios ruby-on-rails ssl

我有一个使用SSL的Ruby on Rails应用程序。我使用thin start --ssl运行服务器。每次启动服务器并访问应用程序时,都会收到警告,说明SSL证书未经过验证。只要我留在Rails中,这不是问题。但是,我的应用程序也有一个API,我正在为它开发一个iPhone客户端应用程序。当我从iphone应用程序向本地Rails服务器发出请求时,出现以下错误:

  

2013-03-24 12:30:09.680 OAuth2Test [44541:c07]错误:错误域= NSURLErrorDomain代码= -1202“此服务器的证书无效。您可能正在连接到假冒的服务器“oauth.lvh.me”可能会使您的机密信息面临风险。“ UserInfo = 0x8832730 {NSErrorFailingURLStringKey = https://oauth.lvh.me:3000/oauth/authorize?client_id=23b8921e8db833a33ac7a058b93183a1496f56a6eea4f6c597291106f80a37d0&redirect_uri=https%3A%2F%2Fcatapultcentral.com%2FiOSClientCallback&response_type=code,NSLocalizedRecoverySuggestion =您是否还要连接到服务器?,NSErrorFailingURLKey = https://oauth.lvh.me:3000/oauth/authorize?client_id=23b8921e8db833a33ac7a058b93183a1496f56a6eea4f6c597291106f80a37d0&redirect_uri=https%3A%2F%2Fcatapultcentral.com%2FiOSClientCallback&response_type=code,NSLocalizedDescription =此服务器的证书无效。您可能正在连接到假装是“oauth.lvh.me”的服务器,这可能会使您的机密信息面临风险。,NSUnderlyingError = 0x8944cd0“此服务器的证书无效。您可能正在连接到服务器假装是“oauth.lvh.me”,可能会使您的机密信息面临风险。“,NSURLErrorFailingURLPeerTrustErrorKey =}

在我看来,此错误的关键部分是:"The certificate for this server is invalid. You might be connecting to a server that is pretending to be “oauth.lvh.me” which could put your confidential information at risk."。顺便说一句,我在iPhone模拟器中测试我的iPhone应用程序。

所以,如果我是正确的,这个问题有三种解决方案:

  1. 将我的API部署到登台服务器并针对该应用程序开发iPhone应用程序。目前,所有与API相关的代码都没有部署,我宁愿在它处于稳定状态之前不进行部署。所以这不是一个选择。
  2. 以某种方式开发iPhone应用程序,以便它不会验证SSL证书。我不喜欢这种做法,我甚至不知道该怎么做......
  3. 获取本地已验证 SSL证书(假冒经过验证的状态或其他内容)。我不知道该怎么做,但这似乎是最好的选择。
  4. 我尝试按照a tutorial关于如何生成自我认证的SSL证书,然后使用thin start --ssl --ssl-verify --ssl-key-file server.key --ssl-cert-file server.crt运行Rails服务器但不起作用(创建的SSL证书仍未验证)。

    那我该如何解决我的问题?

1 个答案:

答案 0 :(得分:2)

您应该创建一个根CA并使用它来创建SSL证书,并将该根CA添加到您的iPhone中。