7

https経由でサーバーからいくつかの情報を取得するためにc ++でクライアントアプリケーションを作成していますが、サーバーは認証のためにクライアント証明書を要求します.https経由でWebブラウジング中にサーバー証明書がどのように機能するか知っています: Web サイトに接続し、プロバイダーが Web サイトの所有者に証明書を発行したと信じていることを Web ブラウザーに証明する、信頼できるルート証明書の広範な組み込みリストが付属していますが、クライアントについては不明ではありません。証明書。

私はたくさんグーグルで検索しましたが、まだ混乱しています。誰か説明してくれませんか?また、クライアント証明書はどこで入手できますか? サーバーから?クライアント証明書とクライアント秘密鍵があれば、呼び出して証明書ファイルをロードし、opensslSSL_CTX_use_certificate_chain_file()を呼び出して秘密鍵をロードできることを知っています。SSL_CTX_use_PrivateKey_file

4

3 に答える 3

1

クライアント証明書は、双方向または相互 SSL 接続で使用されます。質問で説明した通常の SSL 接続は一方向 SSL です... クライアント ブラウザがサーバーを認証しています。

双方向 SSL では、サーバーはクライアントも認証する必要があります。したがって、クライアントには証明書が必要です。

このシナリオの 1 つの例は、サーバーを所有する会社/エンティティが、サーバーに接続するユーザーを制御したい場合です。したがって、クライアント資格情報は、接続を信頼する人に発行します。これらのクレデンシャルは、USB eToken、ソフト キーなどの形式をとることができます。ソフト キーの場合、これらはクライアント マシンで生成でき、CSR はサーバー オーナー (またはサーバーが信頼する CA) に送信されます。証明書を作成してクライアントに返送します。

于 2013-09-18T18:47:21.123 に答える
0

キー ペアを作成し、証明書署名要求を作成してから、認証局による署名を取得する必要があります。すべてが OpenSSL について完全に文書化されており、SO についてはすべてトピック外です。

于 2013-09-17T08:49:46.643 に答える