1. ホーム
  2. c

[解決済み] openSSL: CAfileの作り方

2022-03-02 09:10:13

質問

クライアントからサーバーに証明書を送りたい。さて、次のようなコードを使いたいと思います。

   SSL_CTX *ctx;
   STACK_OF(X509_NAME) *cert_names;
   ... 
   cert_names = SSL_load_client_CA_file("/path/to/CAfile.pem");
   if (cert_names != NULL)
       SSL_CTX_set_client_CA_list(ctx, cert_names);
   else
       error_handling();
   ...

しかし、CAfileはどのように作成すればいいのでしょうか?また、ある特定のCAだけを指定したい場合、どのようなコマンドで送ればいいのでしょうか?

を読みました。 SSL_CTX_set_client_CA_list(SSL_CTX *ctx,STACK_OF(X509_NAME) *list); を取得する方法がわかりません。 *list パラメータを使用します。この場合、CAは1つだけです。

解決方法は?

通常は次のようにします。

SSL_CTX_set_client_CA_list(CTX, SSL_load_client_CA_file("/path/to/cacert.crt"));

CAfileを作成するにはどうすればいいのでしょうか?CA証明書は、クライアント証明書に署名した認証局の公開証明書です。あなたが署名したのか(その場合、あなたはCAでなければならず、証明書を持つことになります)、第三者が署名したのか、その場合、あなたのシステムの信頼できる証明書のリストにあります(たとえばUbuntuでは、そのリストは /etc/ssl/certs ).