簡體   English   中英

使用 Boost ASIO 和 SSL (C++) 時出現“版本號錯誤”錯誤

[英]"Wrong Version Number" error using Boost ASIO & SSL (C++)

我正在嘗試使用 Boost Asio 連接到服務器(用 Golang 編寫)。 我可以在未加密的情況下正常連接和讀/寫,但我似乎無法獲得 SSL 支持。 基本上,每當我嘗試握手時,我都會收到“錯誤的版本號”。

這是一個片段,顯示了我是如何嘗試設置它的。 我不想執行任何驗證,只是讓連接繼續。 在代碼的這一點上,客戶端已經連接到服務器並交換了一些未加密的命令。

boost::asio::ssl::context ctx(*ios, boost::asio::ssl::context::tlsv12_client);  //also tried sslv23, etc
ctx.set_verify_mode(boost::asio::ssl::context::verify_none);
this->sslSocket = new boost::asio::ssl::stream<boost::asio::ip::tcp::socket&>(*socket, ctx);  
this->sslSocket->async_handshake(boost::asio::ssl::stream_base::client,
            boost::bind(&MyConnection::handleHandshake, this,
            boost::asio::placeholders::error));

&MyConnection::handleHandshake()接收握手的結果。

所以問題是:

  • 上面的代碼是否完成了連接到服務器通常需要做的所有事情? 我錯過了一步嗎?
  • 是否存在可能在起作用的服務器端問題? 我檢查了 Go 代碼,它確實支持 TLS 1.0/1.1/1.2 以及 SSL 2 和 3

我遇到了同樣的問題,后來才知道我正在嘗試連接到端口 80 而不是 443(SSL 端口)。 通過將端口更改為 443,問題得到解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM