我有一個網絡服務器,我在(www.trailmyx.com)上運行一個小型企業。最近我開始開發一些基本的SSL套接字代碼(使用C++),並且我編寫了一個與OpenSSl連接並執行http GET的小型測試程序。我可以使用我的客戶端在www.google.com 443端口(或任何其他站點)上成功使用,除了我自己的。爲什麼我的SSL代碼只能對MY webserver失敗?
當我嘗試對我自己的服務器使用SSL_get_verify_result(ssl)時,返回:X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT。
現在,當我在瀏覽器(https://www.trailmyx.com)中訪問我的網站時,我可以檢查證書,看起來一切正常......它不會顯示爲自簽名。
同樣,當我對我的服務器使用wget時,我得到了相同的自簽名證書錯誤。
我的直覺是不知何故我的網站配置錯誤,但如果是這樣,瀏覽器怎麼做?他們的一些其他瀏覽器知道的OpenSSL調用序列是什麼?
注意:當wget對我的服務器返回時,它會打印證書中的一些信息。沒有任何信息是有效的(例如:/ C = -/ST = SomeState/L = SomeCity/O = SomeOrganization/OU = SomeOrganizationalUnit)我強烈懷疑由於某種原因,在某些情況下,apache會返回一個自簽名證書... 但爲什麼?那麼瀏覽器如何做呢? BTW-CURL工作得很好。
也許可信CA的瀏覽器的列表不同的是一個比OpenSSL的使用? – 2012-02-22 18:30:28
@BrendanLong - 如果是這樣,爲什麼SELF_SIGNED_CERT錯誤?而不是一個更通用的錯誤,它只是未通過身份驗證? – dicroce 2012-02-22 18:35:22
此外,wget https://www.godaddy.com(這對我的服務器失敗)對https://www.godaddy.com(誰是CA)工作... – dicroce 2012-02-22 18:37:04