この質問は、Web API と証明書の有効期限に対するクライアント アプリでの SSL ピンニングの使用に関連しています。
シナリオ:
私はexample.comを所有しており、 APIがホストされているサブドメインを持っています: api.example.com
SSL経由で API を使用したいので、サブドメイン用に SSL 証明書が作成されます。
証明書を取得した後、私は次のことを行いました。
- 公的証明書
- 中間証明書
- 秘密鍵
これらの証明書を Web サーバーにインストールすることを理解しています。
次に、クライアント アプリが API に接続することを望みます。man-in-the-middle スタイルの攻撃を軽減するために、SSL ピニングを使用して、クライアントが自分の API とのみ通信し、なりすましを行わないようにしたいと考えています。
クライアント アプリにピン留めするには、パブリック証明書または中間証明書に対してピン留めする 2 つの選択肢があります。
これを実装するとしましょう。
api.example.comの証明書の有効期限が切れるとどうなりますか?
クライアント アプリが機能しなくなることは理解しています。
パブリック/中間/プライベート アイテムの完全なセットを再生成する必要がありますか? 次に、新しい公開証明書または中間証明書をアプリに入れますか?
質問:
api.example.com の証明書が更新されるまで、クライアント アプリを引き続き動作させたいと考えています。もちろん、新しい証明書をクライアント アプリに入れることはできますが、ロールアウトなどには時間がかかります。
どうすればこれを処理できますか?
Google が証明書を毎月更新しているのを読んだことがありますが、どうにかして公開鍵を同じに保つことができます: iOS で証明書の公開鍵をピン留めする方法
それが可能であれば、解決策は単純にサーバーから公開鍵を抽出し、それをローカルに保存されている公開鍵と照合することです...しかし、Googleはどのようにそれを行うのでしょうか?
ありがとう
クリス