C++ でクライアント TLS 接続の例を探しています。Visual Studio に最適ですが、正直なところ、どのコンパイラでもかまいません。いくつかの C サンプルを見つけました。しかし、誰も働いていませんでした。私は C でこのサンプルから始めました: https://wiki.openssl.org/index.php/SSL/TLS_Client
しかし、それは失敗します
res = BIO_do_connect(web);
自分の node.js サーバーに (直接 IP アドレスを使用して) 接続する場合は「システム ライブラリ」を使用するか、url として encrypted.google.com を使用して「不正なホスト名ルックアップ」を使用します。libressl と Visual Studio 2013 の両方。
次の目的地: http://fm4dd.com/openssl/sslconnect.htm
ここで、プログラムは正常に実行されます。ただし、最後に SSL 接続に書き込もうとすると、次のようになります。
std::string json = "{'test':'huhu'}";
char buff[1024];
sprintf(buff, "POST /test.de HTTP/1.1 \nHost: test.de\nContent-Type: application/json\nContent-Length: %d\n\n", json.length());
std::string post = buff;
int snd = SSL_write(ssl, post.data(), post.length());
snd = SSL_write(ssl, json.data(), json.length());
サーバーに接続を強制的に閉じさせます(node.jsに詳細を伝える方法がわからないため、何が起こったのか正確にはわかりません)。
そこで、実際に動作するサンプルを検索するか、C++ で実行されている独自の証明書を使用して TLS 接続を取得する方法を検索します