0

HTTPS 経由で単一のサービス (google.com など) と通信するには、クライアント ライブラリを作成する必要があります。サービスの認証に必要なすべてのデータ (証明書またはキー) をライブラリに同梱してほしいです。

このデータがどうあるべきか混乱しています。google.com 証明書に署名した認証局の公開鍵である必要がありますか? それとも、google.com の公開鍵にする必要がありますか?

私が見たすべての例では、認証局の公開鍵が接続の認証に使用されています。しかし、それは不要のようです。私のライブラリが google.com のみと通信する場合、保護されたチャネル (ブラウザ) 経由で google.com 公開キーを取得して保存し、CA キーを再度使用せずに、このキーを直接使用して認証された接続を確立できますか?

4

1 に答える 1

2

CA ではなく、サーバーのキー ペアを使用する必要があります。HTTPS 接続を確立すると、提示された公開鍵でデータが暗号化されます。そのデータを復号化するために、サーバーは対応する秘密鍵にアクセスする必要があり、CA の秘密鍵が手元にあると非常に危険です。

CA の目的は、クライアントが信頼できるサードパーティを通じてサーバーの証明書を検証できるようにすることです。クライアントは、サーバーを正しく認証するために CA 証明書を必要としますが、おそらくその CA を既に持っており、信頼しています。

コメントに基づいて編集します。

サーバー証明書だけでなく、CA 証明書を送付することには、さらに多くの利点があります。

主な理由は、サーバーの秘密鍵が侵害された場合に、すべてのクライアントに新しい証明書を配布する必要がないためです。CA はサーバーよりも適切に保護されている必要があるため、CA は新しい証明書を発行するだけで済み、クライアントは追加の作業なしで信頼できます。

サーバーの証明書を出荷した場合、すべてのクライアントで証明書を安全に更新する方法が必要になります。

于 2013-01-02T18:23:01.490 に答える