我有用C編寫的OpenSSL客戶端(多線程)。 此客戶端連接到許多HTTPS網站,並執行類似於典型瀏覽器的操作。 爲確保客戶端連接到真實的Web服務器,我已將其設置爲使用帶有典型的SSL_CTX_load_verify_locations(ctx,「ca-certificates.crt」,NULL)方法的ca-certificates.crt 。驗證遠程網站的SSL證書
,生成 「CA-certificates.crt」 文件我安裝單/ mozroots,也做了以下內容:
mozroots --pkcs7 moz.p7b
openssl pkcs7 -inform DER -in moz.p7b -print_certs -out ca-certificates.crt
到目前爲止,事情正在運行預期,並且使用:
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
SSL_CTX_set_verify_depth(ctx, 4);
後面跟着SSL_get_verify_result(ssl);如果我連接到某些「不可信」的HTTPS網站,則會生成警報。
我OpenSSL的客戶目前處理約100 web站點平行,並與一些進一步的優化,我希望實現更
我想進一步優化我的客戶,這樣我可以:
我想openssl會調用一些底層方法來做磁盤I/O來使用「ca-certificates.crt」,我正確嗎? 有沒有辦法將這個「ca-certificates.crt」加載到內存中,並使用一些openssl api來訪問這個內存位置?它不會讓我的客戶更快一點?
典型的Web瀏覽器如何訪問「Trust Store」?我認爲他們使用更高效的方法訪問內存中的「信任存儲」?我對嗎?有人可以提供一些關於如何做的好的提示嗎?
您建議的鏈接非常有用,對於任何準備開始使用openssl進行編程的人來說,最值得推薦。但他們並沒有真正解決我的問題。 :( – mdk 2013-04-23 15:48:45