0

SSLを使用するRubyonRailsアプリがあります。を使用してサーバーを実行します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=23b8921e8db833a33ac7a058b93183a1496f56a6eea4f6c597291106f80aangとにかく?、NSErrorFailingURLKey =https://oauth.lvh.me:3000/oauth/authorize?client_id=23b8921e8db833a33ac7a058b93183a1496f56a6eea4f6c597291106f80a37d0&redirect_uri=https%3A%2F%2Fcatapultcentral.com%2FiOSClientCallback&response_type=code _ 機密情報を危険にさらす可能性のある「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アプリをテストしています。

したがって、私が正しければ、この問題には3つの解決策があります。

  1. APIをステージングサーバーにデプロイし、それに対してiPhoneアプリを開発します。現時点では、すべてのAPI関連のコードがデプロイされているわけではなく、安定した状態になるまでデプロイしたくありません。したがって、それはオプションではありません。
  2. SSL証明書を検証しないように、iPhoneアプリを特定の方法で開発します。私はこのアプローチが好きではなく、それを行う方法さえ知りません...
  3. ローカルで検証されたSSL証明書を取得します(検証された状態などを偽造します)。その方法はわかりませんが、それが最善の選択肢のようです。

自己証明されたSSL証明書を生成し、Railsサーバーを実行する方法についてのチュートリアルに従おうとしましthin start --ssl --ssl-verify --ssl-key-file server.key --ssl-cert-file server.crtたが、それは機能しませんでした(作成されたSSL証明書はまだ検証されていません)。

では、どうすれば問題を解決できますか?

4

1 に答える 1

2

ルートCAを作成し、それを使用してSSL証明書を作成し、そのルートCAをiPhoneに追加する必要があります。

于 2013-03-25T15:26:39.603 に答える