2010-12-10 64 views
1

這是我的計算器上的第一篇文章。但願我沒有打擾任何人... :)
我一直在gSOAP的連接到HTTP的Web服務爲我的iPhone應用程序,而現在的工作。現在我正在嘗試開通https-web服務。我在項目中包含了openssl,並添加了compileflat -DWITH_OPENSSL。生成&運行正在工作,但不幸openssl不會讓我驗證Web服務器證書。
開啓調試模式時,我發現有一個與Web服務器證書的問題:gSOAP的和OpenSSL在iPhone上

SSL深度爲1校驗錯誤或 證書警告:無法獲得 本地發行人證書 發行人/ C = US/O = VeriSign,Inc./OU=Class 3公共主要認證 授權證書主題 /O = VeriSign Trust網絡/ OU = VeriSign, Inc./OU=VeriSign國際服務器 CA - Class 3/OU = www.verisign.com/CPS Ref.inc Ref。 。責任有限公司(C)97 威瑞信

SSL Shoppers SSL Checker結果檢查中:

證書應該是可信的 所有的主流瀏覽器(所有 正確的中間證書 安裝)。

如何解決這個問題的任何想法?

BR

馬丁

回答

0

很好,有時候真的RTFM幫助:)

第19.20(安全SOAP客戶端使用HTTPS/SSL)寫着:「要爲測試目的禁用服務器身份驗證,使用以下內容:「

if (soap_ssl_client_context(&soap, 
    SOAP_SSL_NO_AUTHENTICATION, 
    NULL, 
    NULL, 
    NULL, 
    NULL, 
    NULL 
    )) 
{ 
    soap_print_fault(&soap, stderr); 
    exit(1); 
} 

不幸的是,-DSOAP_DEBUG選項仍然寫着」在深度1 SSL驗證錯誤或證書警告:無法GE t本地發行人證書「。無論如何,它現在正在工作。

0

禁用驗證是不是正確的解決方案。我懷疑你沒有設置openssl用來信任CA的ca證書文件路徑。

soap_ssl_client_context(& soapObject,SOAP_SSL_DEFAULT,NULL,NULL,cacerts.pem,NULL,NULL))

你可以從Mozilla瀏覽器得到cacerts.pem。如果您的應用程序只允許連接到一個網站,那麼你應該剛剛離開的哈希爲CA該網站證書頒發,並從PEM文件中刪除所有不需要的CA的。