私は、2 つのパーティ (クライアントとサーバーと呼びます) 間の安全な接続を保証するアプリケーションを作成しています。
サーバーは、https を使用して接続できるクライアントを制限する必要があります。この目的のために、サーバーは、クライアントが接続を試みるときにチェックされる一定数の証明書を発行します。クライアントが使用している証明書が信頼できるリストにない場合、接続は確立されません。
この証明書は、ある種の USB デバイスを使用して配布する必要があります。したがって、私のアプリケーションを使用しているクライアントが https を使用してサーバーから何かを取得しようとすると、アプリケーションは USB デバイスからその証明書を読み取り、それを使用して https 接続を確立する必要があります。秘密鍵は、デバイス上で常に秘密にしておく必要があります。
これまでのところ、クライアントとサーバー (JKS) にローカル キーストアを作成し、それらを相互に信頼できるリストに追加し、それらを使用して適切な接続を確立することができました。
私の質問は、https 接続に必要な秘密鍵と一緒に、クライアント証明書をサーバーによって発行してクライアントに転送することはできますか? クライアント マシンにデータやキーストアを作成したくありません。https 接続を確立するために必要なものはすべて、そのデバイス上にある必要があります。デバイスには、このプロセスを支援し、秘密鍵の機密性を確保するためのいくつかの手順と API を含めることができます。
どんな助けでも大歓迎です:)