2010-12-10 11 views
1

これは私の最初の投稿です。うまくいけば私は誰も邪魔していません... :)
私はgSOAPでhttp-webserviceに接続しています。今、私はhttps-webserviceに目を向けようとしています。私はプロジェクト内でopensslを組み込み、コンパイルフラット-DWITH_OPENSSLを追加しました。 Build &実行中ですが、残念ながらopensslはWebサーバー証明書を確認できません。
は 上のデバッグモードを向けると、私は、Webサーバ証明書に問題があることを見出し:iPhone上のgSOAPとOpenSSL

SSLは、エラーを確認するか、深さ1で 証明書を使用して警告: ローカル発行者証明書の証明書 発行者/ Cを取得できません= US/O =ベリサイン、Inc./OU=Class 3公共プライマリ証明 機関の証明書のサブジェクト /O =ベリサイン・トラスト・ネットワーク/ OU =ベリサイン、 Inc./OU=VeriSign国際サーバー CA - クラス3/OU = www.verisign.com/CPS Incorp.by Ref。責任LTD(C)97 ベリサイン

SSL Shoppers SSL Checker結果を確認する:証明書は(すべて 正しい中間証明書が をインストールされている) により、すべての主要なWebブラウザを信頼すべき

この問題を解決する方法についてのアイデアはありますか?

BR

マーティン

答えて

0

だけでなく、時にはRTFMは本当に役立ちます:)

節19.20(HTTPS/SSLによる安全なSOAPクライアント)読み込む:「テストの目的のためにサーバー認証をディセーブルにするには、次:SSLは、エラーを確認するか、深さ1で証明書を使用して警告「

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

残念ながら、-DSOAP_DEBUGオプションは、まだ読み込み」:GEにできませんtローカル発行者証明書 "を参照してください。とにかく、今働いています。

0

認証を無効にすることは適切な解決策ではありません。 OpenSSLがCAを信頼するために使用するCA証明書ファイルのパスを設定していないと思われます。

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

あなたは、Mozillaからcacerts.pemを得ることができます。あなたのアプリケーションが1つのWebサイトにしか接続できない場合は、Webサイト証明書が発行されたCAのハッシュを残して、不要なcaをすべてpemファイルから削除する必要があります。