2

私がやろうとしているのは、SSLを使用して(私が構築した)Webサービスにアクセスすることです。しかし、それは機能していないようです。いくつかの関連情報:

  • HTTPを使用するとすべてが正常に機能します。この問題は、HTTPSを使用している場合にのみ発生します。
  • 出力される実際のエラーメッセージは次のとおりです。

SOAP-エラー:WSDLの解析:からロードできませんでした...:外部エンティティのロードに失敗しました...

  • このサービスはPHPで実装されています。
  • php -mを実行するか、phpinfo()を確認すると、opensslが正しくインストールされているように見えます。
  • それ以外の場合、SSL証明書は正常に機能しているようです。サイトの残りの部分でHTTPSを使用できます。問題が発生しているのはWebサービスだけです。

  • HTTPS経由でブラウザを介してWSDLにアクセスしようとすると、正常に機能します。SOAPエンドポイントURLの1つにアクセスしようとすると、エラーメッセージが表示されます。

  • サービスを実際に呼び出すために、最小化されたPHPスクリプトを作成しました。WSDL自体を取得しようとすると、エラーメッセージが表示されます。
  • WebサーバーはDebianで実行されているApacheです
  • コードの問題ではないようです。私は開発サーバーで同等のコードを実行しており、HTTPSを使用していても正常に動作します。
  • 本番システムはプロキシシステムで実行されており、nginxが前面にあります。これは問題に関連している可能性が高いようですが、その問題の解決をどこから始めればよいかわかりません。
4

1 に答える 1

2

これはおそらくnginxの構成に関連していることを指摘したいと思います。SSLの場合、探し始めるのに適した場所がいくつかあります。

  1. nginxのリスニングポートが443であることを確認します
  2. プロキシの場所が127.0.0.1:80であることを確認します(カスタマイズしない限り、HTTPであるためポート80)
  3. CentOSを使用している場合、iptablesが多くの問題の原因であることがわかりました。ファイアウォールでポート443を開くのを忘れることがあります。構成するに/etc/sysconfig/iptables/は、ファイアウォールルールに移動して追加します。

そして最後になりましたが…。

この気の利いたSOAPoverSSLガイドを見つけました:) http://soapoverhttps.blogspot.ca/

于 2012-05-13T02:52:19.910 に答える