2

TLS 1.2 を使用してアプリをサーバーに接続しようとしています。サーバーは、デバイスに既にインストールされている自己署名 CA 証明書によって署名された証明書を使用しています (CA 証明書を自分自身に電子メールで送信し、タップしました。現在、[設定] -> [一般] -> [プロファイル] の下に表示されます)。これは以前はアプリで機能していましたが、使用している CA 証明書を変更したため、サーバーの証明書も更新しました。現在、SSL エラーが発生しています。

私が見ているエラーは、クライアントerrSSLXCertChainInvalidへの呼び出しからのものです。SSLHandshake私が知る限り、サーバー証明書は有効である必要があります。openssl verify -CAfile ca-cert.pem server-cert.pemその ca- cert.pemOKは、デバイスにインストールしたものと同じ CA 証明書です。

何か案は?ありがとう!

4

1 に答える 1

4

このエラーに関するアップルのドキュメントには、次のような情報があります。

errSSLXCertChainInvalid— ピアに無効な証明書チェーンがあります。たとえば、チェーン内の署名検証が失敗したか、証明書が見つかりませんでした。

そして、あなたが使用する場合SSLSetPeerDomainName

この関数を使用して、ピアの証明書の共通名フィールドを確認できます。この関数を呼び出し、証明書の共通名が peerName パラメータで指定した値と一致しない場合、ハンドシェイクは失敗し、errSSLXCertChainInvalid を返します。

デバイス構成プロファイルをアンインストールして、新しいプロファイルを作成することをお勧めします。

また、Web ブラウザーなどからサーバーにエラーなくアクセスできるかどうかを確認することもお勧めします。これにより、証明書に問題があるか、iOS デバイスの構成プロファイルだけに問題があるかが明らかになります。

于 2014-05-15T21:54:53.033 に答える