在向arm移植mosquitto的時候由於使用tls安全鏈結,導致如下錯誤。
openssl error[0]: error:0a000086:ssl routines::certificate verify failed.
error: a tls error occurred.
出現的錯誤提示不是很明確,沒有支出到底為啥證書驗證失敗,只能進行各種排查
1、檢查命令引數是否正確--->確定正確
2、在ubuntu上進行測試--->同樣的命令可以正常發布/訂閱訊息
3、更換openssl版本-->同樣在arm板上出錯,在ubuntu上可以正常發布訂閱訊息
於是開始扒拉openssl**增加除錯列印,最終定位報錯位置
static int internal_verify(x509_store_ctx *ctx)函式的
check_cert_time:
/* calls verify callback as needed */
if (!x509_check_cert_time(ctx, xs, n)){
printf("%s:%d: return 0\n", __file__, __line__);
return 0;
瞬間明白:證書時間與當前時間對不上!!!
於是檢視板子時間,坑爹的2023年。
重新發布訊息:成功解決。
總結經驗:先不要懷疑開源庫的問題,出問題大概率是自己的問題,定位問題的方法最快的是在開源庫增加除錯資訊,確定到底**報錯,往往就能找到問題的根源。
Flutter忽略Https WSS證書驗證
dio dio dio dio.options.baseurl urlconfig.base url dio.options.connecttimeout 5000 dio.options.receivetimeout 3000 忽略https校驗 由於專案需求需要,在使用忽略https證書驗證的過...
php 生成證書 簽名及驗籤
立即擁有乙個新博 客 一 公鑰加密 假設一下,我找了兩個數字,乙個是1,乙個是2。我喜歡2這個數字,就保留起來,不告訴你們 私鑰 然後我告訴大家,1是我的公鑰。我有乙個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用 數字2,就是我的...
證書簽名驗籤以及加密解密
簽名,驗籤的理解 一 公鑰加密 假設一下,我找了兩個數字,乙個是1,乙個是2。我喜歡2這個數字,就保留起來,不告訴你們 私鑰 然後我告訴大家,1是我的公鑰。我有乙個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用 數字2,就是我的私鑰...