質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

2回答

1527閲覧

サーバーへのHTTPリクエストが完了しない。

wasabin

総合スコア13

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

1グッド

1クリップ

投稿2018/05/11 09:24

編集2018/05/11 10:57

問題点

とあるポイントサイトにて、ポイント購入の手続きで決済サービスから
管理しているサーバーに決済完了のリクエストを事前に指定したURL
で受け付けております。

その際、決済会社側ではリクエストが完了せずにタイムアウトにて、
エラーとなっているようで、現在対応を求められています。

しかし、サーバーのアクセスログにも記録が残り、
指定したURLのスクリプトも正常に実行されております。
(HTTPステータスコードは、決済会社のリクエストも 200 となっております。 )

イメージ説明

今回問題になっているのは、図の2のリクエストに対する3のレスポンスが
決済会社側ではタイムアウトになってしまう状況です。

問題の切り分けの為、スクリプト側の問題でないか判断するため
別ファイルを用意し、OKを返却するだけのページを設置しました。

https://example.com/test.php

php

1<?php 2//test.php 3exit('OK'); 4

ブラウザでの確認、ローカル環境/外部の別サーバーからcurlによる確認
など試した所、OKを取得することができました。
決済会社にも
https://example.com/test.php
へのリクエストを試していただきましたが、
タイムアウトになるとの回答で事でした。

今回の決済会社からのリクエストもアクセスログでは、200のステータスコードが
ログに残っておりました。

期待される状態

  • 図の2〜3のリクエスト-レスポンスにて、決済会社がHTTPステータスコード200でOKを取得する。

決済会社への確認

決済会社からは、
「リクエストが完了せずタイムアウトになるので200が返るようにして下さい。」
「こちら側は問題ないので御社で対応してください。」
との事で、現状これ以上の情報を引き出せていない状況となります。

知りたいこと

この状況で試すべき事は何があるのか、
決済会社に確認依頼するべき内容はあるのか、
問題を切り分けるには、何を試してみるべきか教えていただけないでしょうか?

補足情報

CentOS 7.2
Apache 2.4.6

set0gut1👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

決済会社側がもう少し丁寧にエラー情報を開示してくれれば、
調べるべき箇所を絞れるのかもしれませんが、
この質問文を読まされても多分誰も何も出来ない気がします。

・第三者がその状況を再現できない。
・サービスの名前も伏せられているので経験談を提供しようにも出来ない。

せめて、どういうやり取りを相手方としているのか、
時系列上にどっちからどういうパラメータを送って
どういう応答を期待しているのか、
などUMLのシーケンス図に起こしてくれないとわからない。

質問者さんの把握されている状況を第三者に伝えるために
何が必要か丁寧に考えてほしいです。

投稿2018/05/11 09:31

編集2018/05/11 09:44
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wasabin

2018/05/11 10:59 編集

ご回答ありがとうございます。 かなり言葉足りませんでした。申し訳ございません。 把握している状況を加筆致します。
guest

0

ベストアンサー

不思議な話ですね。

アクセスログがある以上TCPでのデータ受信には成功しており、
つまりスリーウェイハンドシェイクが完了しているのでL3では双方向に疎通しているのは確定かと思います。

L4は問題ないかどうか未確定です。
FINフラグが立っているパケットを破棄する存在が経路上にいるとかあるかも知れません。

怪しいところを削って行きましょう。

  • test.php ではなく test.html を返却する(phpを疑いの範囲から外す)
  • tcp 疎通確認コマンドをあちらに打ってもらう(L4を疑いの範囲から外す)

とかですかね。ぶっちゃけよく分からないです。
他の回答が状況を打開することを期待します。

投稿2018/05/11 11:21

set0gut1

総合スコア2413

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wasabin

2018/05/14 02:02

ありがとうございます! 一度その線で確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問