私は有効な証明書(ルートCAによって署名された)に接続するためにboost asioを使用しています。私が使用しているコードは、boost docsから入手可能なssl client exampleです。WindowsでルートCA証明書を取得する信頼できる方法
私は追加だけの行がある:
boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23_client);
ctx.set_default_verify_paths(); <------------- Add default verification paths
ctx.set_password_callback(&password_callback);
client c(io_service, ctx, iterator);
io_service.run();
問題がある:OpenSSHの(MSIインストーラからインストール)のローカルにインストールされたコピーで、このコードを使用して、パスが正しく発見し、私の証明書が検証されたとき。 openSSHリポジトリの独自のコピーをダウンロードしてコンパイルすると、この行は機能しなくなり、自分の証明書を検証するルートCA証明書がなくなります(したがって、は失敗します。)。
これらのクライアントを最終的に顧客のマシンに配布したいので、SSL_CERT_DIR
などの環境変数を設定しないでください。どのようにして、ブーストASIOでルートCA証明書を確実に見つけることができますか?それとも、ソースコンパイルから私のopenSSHを見つけ出すように設定するのですか?