4

私たちは、顧客がモバイル アプリケーションを介して、自社のサーバーでホストされている ERP データにアクセスできるようにするエンド ツー エンドのソリューションを構築しています。バージョン 1 は iOS アプリになります。

クライアントとサーバー間のトラフィックが SSL で暗号化されていることを確認する必要があります。問題は、サーバーのインストールを可能な限りシームレスにしたいということです。そのため、顧客に SSL 証明書の購入とインストールのプロセスを経験させたくないのです。その証明書を毎年更新しなければならないことさえ言及していません。

自己署名 CA 証明書を作成し、それを使用して各クライアントがサーバーにインストールする子証明書を作成することを考えていました (パブリック CA 証明書と共に)。子証明書の作成プロセスを自動化し、セットアップ プロセスの一部として含めます。また、証明書の有効期限は非常に長く、有効期限は処理されません。ただし、この証明書を使用すると、CA が信頼されないため、クライアントからの要求は信頼されません。

  1. CA を iOS アプリまたはデバイスに追加できますか?
  2. この実装にセキュリティ上の懸念はありますか?
4

2 に答える 2

2

2017 年になり、letsencryptが存在するようになりました。これは、無料のドメイン検証と TLS 証明書の署名を提供し、ブラウザー/OS HTTPS または TLS ライブラリとフレームワークがそれらを受け入れるようにします。certbotを使用すると、自動更新を比較的簡単に設定できます。デプロイメント固有のものであるため、ここでは説明しませんが、優れたドキュメントがあります。組み合わせると、おそらく最良のソリューションです。

自己署名証明書をバンドルして使用することは、さまざまな理由で非常に最適ではありません。また、それを行う理由はもうありません (おそらくひどい怠惰を除いて)。

Free は基本的なドメイン検証済みの証明書のみです。つまり、letsencrypt.org は、あなたが所有していると主張するドメインを所有していることを検証します (そして、そのプロセスを自動化するために certbot が使用されます)。追加の確認手順が必要な場合は、引き続き料金を支払う必要があります. ただし、アプリとサーバー間の内部 TLS 接続の場合は、サーバーと通信していることを確認するだけでよいため、ドメインの検証のみが必要です。追加の手順は、顧客に会社への信頼を与えることに重点を置いているため、機密データをより安心して引き渡すことができます. 一般的に言えば、彼らがあなたのアプリを使用している場合、それは彼らがあなたの会社をすでに信頼していることを示唆しているため、追加の検証は重要ではありません (そしておそらく顧客には見えないでしょう)。

開発中に自己署名証明書を使用したい場合、これはまだ理にかなっています。iOS デバイス上のすべてのアプリに自己署名証明書をインストールする方法については、この質問に対する私の回答をご覧ください。

于 2017-05-07T17:22:52.080 に答える