web-dev-qa-db-ja.com

iOSアプリのSSLハンドシェイクに失敗しました

Postメソッドでログイン資格情報を渡すことにより、HTTPS経由でaspx Webサイトにログインするアプリを作成しています。 Charles Proxyを使用して応答を確認すると、seal.verisign.comからSSLハンドシェイクに失敗したエラーが表示され、ログインページに戻ります。この問題を解決するために何をする必要があるかわかりません。

私はこれをiPhoneシミュレーターでテストしています。

サーバー実装にアクセスできません。

何か案は?

ありがとうございました!

34
JLau_cy

IOS> = 10.3では、Charles Proxy証明書をインストールした後(@ ashish-vermaの優れた回答に従って)、Settingsで有効にする必要もあります- >一般->About->証明書の信頼設定

Enable SSL root certificate on iOS 10.3 and up

ここでの完全セットアップ: http://www.devsbedevin.net/debugging-ios-ssl-traffic/

129
Vaiden

おそらく実際のデバイスでテストすると、より多くの洞察が得られるでしょうか?

チャールズでそれを行うには:

  1. Goto Proxy:プロキシ設定...
  2. [プロキシ]タブ:[HTTPプロキシポート:]フィールドに「8888」と入力します
  3. [SSL]タブ:[SSLプロキシを有効にする]がオンになっていることを確認します

開発マシンで:

  1. システム環境設定:ネットワーク:Wifi:詳細設定:TCP/IPタブ:IPV4アドレスを書き留めます:(10.0.1.101)

IDeviceで:

  1. Goto http://charlesproxy.com/charles.crt お使いのデバイスからCharles SSL証明書をダウンロードします
  2. 証明書は信頼できるものです(完了したら、必ず無効にするか削除してください)
  3. 設定アプリに移動します:Wifi:ネットワークの詳細な開示ボタン(丸い青いボタンと白い矢印)を選択します
  4. HTTPプロキシの下で、「手動」を選択します
  5. ステップ(dev machine 1.)のアドレスを[サーバー]フィールドに入力し、ステップ(portles 2.)のポート番号を入力します。

最後に:

  1. チャールズを再起動
  2. IDeviceでSafariを実行してテストします。これにより、チャールズは、SSLプロキシを許可または拒否するためのダイアログボックスを表示する必要があります。明らかに許可し、あなたが行ってもいいはずです。

Charlesのサイトの詳細: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

また、connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeメソッドへの応答を取得していますか?

13
Jalakoo

それでも証明書をインストールしても解決しない場合は、SSLピンニングが原因である可能性があります。

Charlesproxy.comから:

SSLピン留め一部のアプリはSSL証明書のピン留めを実装しているため、ルート証明書を具体的に検証することに注意してください。アプリ自体がルート証明書を検証しているため、Charlesの証明書を受け入れず、接続に失敗します。 CharlesルートSSL証明書を正常にインストールし、SafariでSSLプロキシを使用してSSL Webサイトを閲覧できるが、アプリが失敗する場合、SSLピンニングが問題である可能性が高い

13
Ben Thomas

この問題を解決するには、SSL証明書をインストールする必要があります。

次の手順を実行します

  1. 開くSafariブラウザのiOSシミュレータ

  2. アドレスバーに"www.charlesproxy.com/getssl"と入力します

  3. [〜#〜] ssl [〜#〜]証明書をインストールします
  4. 再起動Charles Proxy
4
Ashish Verma

サーバーに、使用しているURLの有効な証明書がない可能性があります。確認しましたか?

ブラウザを使用してURLを試してみると、警告が表示されますか?

1
gWiz

モバイルデバイスにSSL証明書をインストールする必要があります。

Charles ProxyのSSL証明書をインストールする方法をオンラインで検索します。

0
Rotues Jia

古いユーザー資格情報をすべて削除してから、新しいSSL証明書を再インストールします。

0
anton46