2016-10-15 11 views
1

OpenSSLライブラリを使用してSSL/TLSを使用してhttpbin.orgへの接続を確立するCプログラムがあります。クライアントプログラムは、サーバーとの接続を確立することができます。プライベートCAからの証明書を検証するクライアントプログラム?

今私は自分のプライベートまたは内部のCAによって証明書が署名された自分のサーバーに接続したいと思っています。クライアント側では、OpenSSLに証明書検証のために独自のCAを使用させたいと思っています。だから、私の質問は次のとおりです:

ライブラリを使用して自分のCA証明書をロードし、サーバー証明書の検証にそのCAのみを使用するにはどうすればよいですか?

答えて

1

検証に使用するCAを指定するには、CAの所在(X509構造、単一ファイル、証明書付きディレクトリのリストなど)によっていくつかの方法があります。最後の点は質問で詳しく述べられていないので、私は最も単純なケースへの答えを制限します:単一のCAまたは単一ファイル内のPEM形式のCAのリスト。検証のための唯一のCAストアとしてこのファイルを設定することは、このようSSL_CTX_verify_locationを行うことができます(エラー処理など)詳細については

SSL_CTX_load_verify_locations(ctx, "ca.pem", NULL); 

the documentionexamples on how to use itを参照してください。

+2

誰かにウェブ検索を促すことは役に立たない。好奇心のために、なぜコードなしで答えを提供するのですか? Stack Overflowはプログラミングと開発のサイトですが、あなたの答えはMCVEが欠けている傾向があります。上記の答えはおそらくコメントになるはずです。私があなたの答えをめったにアップさせない理由です。 – jww

+2

@jww:私はstackoverflowがコードを書くサービスだとは思わないが、私はOPが欠けている重要な情報を提供すべきだと思う。この場合、OPはCAを指定する方法を知らなかったと思います。*「ライブラリを使用して自分のCA証明書をロードするにはどうしたらいいですか?」*。したがって、使用する関数の名前、関数へのドキュメント、関数の使用方法を示すたくさんの例へのリンクを提供しました。あなたがもっと感じるならば、それを自分でやってみてください。 –

+0

Stack Overflowは、プログラミングおよび開発に関する質問のサイトです。機能、コード、使用法、および説明の提供を避ける方法はほとんどありません。残念ながら、それは多くの答えが本質的にコピー/ペーストになることを意味します。おそらくあなたは[質問に良い答えを書くにはどうすればいいですか?](http://meta.stackexchange.com/q/7656/173448)を検討する必要があります。答えにコードを提供することを嫌う唯一の人のようです。私はそのコード作成サービスがほとんど笑われているので、答えを避けるあなたの立場を見つける。 – jww

関連する問題