2016-06-18 15 views
0

最近出た問題があります。私のコードでios9 HTTPの読み込みに失敗しましたkCFStreamErrorDomainSSL(-9802)

、私は、HTTPサーバーからいくつかの画像を読み込む:

let urlPicture = "http://images.mydomain.com/" + self.currentUser.pic 
imageView.sd_setImageWithURL(NSURL(string: urlPicture)) 

私はそれがあまりにも遅れているだろうと思い、多分私は間違っているのだから、私は私の画像サーバのHTTPSを使用していませんこの点。 nodejsサーバーがAWS EC2インスタンスで実行されており、ポート80でリッスンしてイメージを管理しています。

ATSの制約のために、私は私のイメージのサブドメインのための私のInfo.plistファイルで例外を宣言します。 https://api.mydomain.com 別nodejsサーバ:
<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>images.mydomain.com</key> 
     <dict> 
      <key>NSExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
      <key>NSExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSRequiresCertificateTransparency</key> 
      <false/> 
      <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> 
      <false/> 
      <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <true/> 
     </dict> 
    </dict> 
</dict> 

最近、私は 同じ AWSインスタンス上で新しいサブドメインを追加しました443ポートでリッスンし、APIを管理します。私はAPIを呼び出すときに、この変更以来

は、すべてが私のアプリで結構ですが、私はイメージをロードするとき、私は、次の問題が直面しています:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 

それを修正foはすべてのアイデアを?

答えて

0

問題が見つかりました。

それは同じAWSインスタンス上で実行されているHTTPSサーバがHSTSで構成され、サーバ側にあった:

var ONE_YEAR = 31536000000; 
app.use(helmet.hsts({ 
    maxAge: ONE_YEAR, 
    includeSubdomains: true, 
    force: true 
})); 

変数includeSubdomainsセットtrue力私の他のドメインimages.mydomain.comにそれがある一方、HTTPSプロトコルを使用しますHTTPサーバー。ちょうどHSTS構成で、他のドメインを除外し、それを解決するために

var ONE_YEAR = 31536000000; 
app.use(helmet.hsts({ 
    maxAge: ONE_YEAR, 
    includeSubdomains: false, 
    force: true 
})); 
-2

これをplistに追加できますか?

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 
+0

アプリケーションはAppStoreで公開されますので、私はすべてのATSを無効にすることはできません。それが私の画像サブドメインの例外を置く理由です。 – Thomi

+0

あなたの提案を加えましたが、問題は同じです。私は、iOSが自動的にHTTPをHTTPSに変更すると思っています。この行動を避けるための考えはありますか? – Thomi

+1

もう1つの問題点は、Xcodeシミュレータでは問題が発生せず、実際のデバイスでのみ発生します。 – Thomi

関連する問題