2016-08-02 11 views
1

エンパカデロテクニカルサポートのこの質問をしましたが、ここでケースを挙げましたが、ここに誰かがこれに対する答えを知っているかどうか疑問に思っています。Delphi石鹸リクエスタ - TLS1.1/TLS1.2にアクセスする際の問題

私は小売企業で働き、Delphiでメールオーダープログラムを作成しました。

プログラムが重視していることの1つは、クレジットカードデータの処理です。 1日目以降、これほど大きな問題はありませんでした。私たちのゲートウェイプロバイダは英国のVerifoneで、これまではSOAPリクエスタを使ってVerifone処理サーバと話していました。私はこの問題を解決するにはあまりにも多くの問題を抱えていませんでした。私はSOAP呼び出しなどの専門家であると公言していません。このソフトウェアは、コンポーネントの遺産の理由から、D2007にまだ存在しています。私は必要に応じてそれを開発することができます。

「火曜日の2016年10月4日には、Verifoneを作ることになり、次の変更:今まで

......

昨日は、私は次のように述べてVerifoneから電子メールを受け取った 1セキュリティ証明書をSHA-1からより安全なSHA-256アルゴリズムにアップグレードしてください
2. SSL v3およびTLS v1.0のサポートを終了してください。

彼らは、このページへのリンクを提供:まず

http://www.verifone.co.uk/support/ssl

を、私は過度に心配はなかった、私たちは(主に、証明書の変更が)過去にいくつかの同様の変更があったし、このhasnています私たちは影響を受けませんでした。しかし、私がそれを読むほど、私は少し気になりました。

だから私はいくつかのテストをうまくやったほうがいいと決めました。 2番目のタブのそのページには、いくつかのテストURLがあります。私は既存のテストURL(システム上のトレーニングに使用したテスト)と新しいテスト用のURLを交換して失敗しました。私はエラーを取得する:

「を確立することができませんでしたサーバーとの接続 - URL:http://xml-cst.cxmlpg.com/gateway/gateway.asmx - のSOAPAction:https://www.commidea.webservices.com/GetServerStatus

または実際のテストのクレジットカードのチェックではなく、サーバーの状態で、このスクリーンショットのようにしチェック:

enter image description here

をこれがちょうど何のアカウントまたは資格情報を必要としないシンプルな「GetServerStatus」コールをしていました。私は、サーバーがChromeでこのURLを使って作業している知っている:

https://xml-cst.cxmlpg.com/gateway/gateway.asmx?op=GetServerStatus

私は、これはD2007でSOAP呼び出しのためのコンポーネントでは問題だったかしらようになりました。

昨晩、私はSeatlleで家で試しました。私が考えているのは、少なくともそこに行くことができれば、シアトルに小さなユーティリティを書いて、ちょうどクレジットカードを処理するためのD2007メールオーダースイートの横に座っているということでした。WSDLインポートツールを使用して

https://xml-cst.cxmlpg.com/gateway/gateway.asmx?wsdl

と(私はD2007に元の作業を得たのと同じ方法で)GetServerStatus関数を呼び出すために、フォームにボタンを追加しました:私はからWSDLをインポート

procedure TForm1.Button1Click(Sender: TObject); 

var 
gs : GatewaySoap; 

begin 
gs := (HTTPRIO1 as GatewaySoap); 
gs.GetServerStatus 
end; 

私は指を横切ってボタンをクリックしました。

ああ、上記と同じエラーメッセージが表示されます。だから私はそれがまったくデルファイのバージョンとは関係ないと仮定します。

これは基本的に、これが含まれる通販ソフトウェアの自動機能を完全に停止させるため、非常に厄介な問題です。私が単純なGetServerfStatusを動作させることができない場合、私は完全に喪失しています。

ここに何が起こっているのでしょうか? SOAPリクエスタ経由で非SSL/TLS1.0を実行できないのですか?それはTLS1.1/1.2でなければならないようです。どうすればこの問題を解決できますか?シアトルのために解決できれば、D2007の既存のメールオーダーコードに同じ解決策が適用されるかもしれないと私は今推測しています。

本当に誰かが私にこのことを助けることを願っています!私は最後の夜遅くまで別のものを試していたが、それを掴むことはできなかった。それは、文字通り私が見落とした、何か単純なものであることができます - 私の希望です。それからもう一度、私はそれが何かもっと技術的かもしれないと思う。

トレバー

+0

インディおそらく[TLS1.1](https://tools.ietf.org/html/rfc4346)(2006年4月のRFCとして公開)または[TLS1.2](https://tools.ietf.org/ html/rfc5246)(2008年8月にRFCとして公開)シアトルでIndy 10を使用し、 'SSLOptions.SSLVersions'で' [sslvTLS1_1、sslvTLS1_2] 'を指定すると動作します –

+0

こんにちは、 Delphiを使用してhttps://xml-cst.cxmlpg.com/gateway/gateway.asmx?wsdlからWDSLをインポートしてから、InDesignを使用しています。作成するTHTTPPRIOコンポーネントコール。古いURLでは正常に動作しますが、新しいURLでは接続できなくなります。 – Trevor

+0

Delphi SOAPは、Wininetの代わりにIndy(http://stackoverflow.com/a/24936972/6517492参照)を使用することがあります。 ChromeがテストURLにエラーを表示しない場合は、ChromeがWininetを使用していないため動作しているようです。 – mjn42

答えて

2

(彼らがhttpsである必要があり、一方)SOAPサーバが公開WSDLにそのサービスのためのHTTP URLを返しているようです。 SOAPサーバーを制御する場合は、WSDLジェネレータを修正する必要があります。 D2007に付属(それは、Delphiで書かれている場合、それはちょうど彼らTWSDLHTMLPublish.PublishOptionsプロパティにpoPublishLocationAsSecureオプションを逃すかなりおそらくだ。 クライアント上で可能な回避策は、直接ではなく、公開WSDLに依存している(HTTPS)URLを使用するのが良いかもしれない。

+1

こんにちは、ちょうど簡単なアップデート。私は昨晩D2007バージョンでこれを試してみましたが、それも問題を解決しました。だから私は大きな書き換えや別のユーティリティを行う必要はありません。 Embarcaderoの技術サポートにも同じ回答が返ってきました。私はこの問題をVerifoneに報告しましたが、wsdlとその部分が間違っていることを明確に説明しているにもかかわらず、すべての回答が「どのビットを意味していますか」という行に沿っていたと確信しています。とにかく、ちょうど更新して、そして助けと私を正しい方向に向けるためにもう一度感謝したいと思います。 – Trevor

+0

ようこそ、更新していただきありがとうございます。 –

関連する問題