0

アプリを本番環境でテストしていて、今日、「このサーバーの証明書が無効です。「server.name」のふりをしているサーバーに接続している可能性があり、機密情報が危険にさらされる可能性があります。

https 経由の接続を使用しており、SSL 証明書も有効です。

これは数回しか発生せず、常に再現できるわけではありません。

を要求されたときにクライアント側からNSURLAuthenticationMethodServerTrustcanAuthenticateAgainstProtectionSpace:NO が返されます。

次に、次のエラーがログに記録されます

    - (void)connection:(NSURLConnection *)connection
      didFailWithError:(NSError *)error
{
    NSLog(@"Connection failed! Error - %@ %@",
           [error localizedDescription],
           [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}

ログに記録されたエラー:

Connection failed! Error - The certificate for this server is invalid. You might be connecting to a server that is pretending to be “server.name” which could put your confidential information at risk.

サーバー証明書は、COMODO High-Assurance Secure Server CA によって発行されます。

4

1 に答える 1

1

考えられる理由:

  • 証明書は実際には完全に有効ではありません
    • 時間が過ぎたか、ローカル クロックが間違っている
    • ホストを無効にする方法でアクセスしている、サブネットが証明書でカバーされていないなど
  • Charles などの書き換えプロキシを使用しているため、現在の証明書はサーバー証明書ではありません。
  • 証明書がサーバーによって正しく提供されていません。
  • その他のソフトウェアのバグ!
于 2013-03-10T14:35:48.213 に答える