私のアプリでは、自分のクライアントとサーバー間の接続を保護するためにhttpsと自己署名入りのSSL証明書を使用しています。AFNetworkingによるSSLピンニング
AFNetworkingライブラリに、アプリケーションにバンドルされている証明書のコピーに対してSSLピンニングを実行しようとしていました。
#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ =1
#define _AFNETWORKING_PIN_SSL_CERTIFICATES_ =1
そして、私のAFJSONRequestOperation
にstart
を呼び出す前に、私はAFSSLPinningModeCertificate
にSSLPinningMode
プロパティを設定します:私は両方を定義しAFURLConnectionOperation
ヘッダで
。
しかし、私は次のエラー得続けるJSONリクエストを実行しようとすると:私はSSLピンニングが.cerの証明書ではなく、私の自己ホストOSのXのWebサーバで動作することを読んAFURLConnectionOperation
ヘッダで
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed.
(NSURLErrorDomain error -1012.)" UserInfo=0x758f120
{NSErrorFailingURLKey=https://mydomain.com,
NSErrorFailingURLStringKey=https://mydomain.com}
を私は.crt証明書を持っています。
これが問題ですか? .crtでAFNetworkingを動作させる方法はありますか?
私の.crtを.cerに変換し、それを私のアプリケーションにバンドルしようとしましたが、同じエラーが表示されます。 .crtファイルをサーバー側でも新しく作成した.cerと切り替えるべきですか?
:
次のコマンドを使用することができますか?それを共有するのを忘れないでください。 – jAckOdE
私は 'AFNetworking'をあきらめて、標準の' NSURLConnection'を利用してクラスを作成しました(接続自体の代理人として働きます)。要求を行うために、 ' - (void) connection:NSURLConnection *)接続willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge'メソッドは、NSURLConnectionDelegate'プロトコルの一部です。コードを見たい場合は、お気軽にお問い合わせください。 – BigLex
私はそれを自分で試していません。しかし、AFNetworkingのサンプルプロジェクト。 SSLピン設定モードは、AFSSLPinningModeCertificateではなく、AFSSLPinningModePublicKeyに設定されます。あなたはそれを試しましたか? – jAckOdE