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

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

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

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

受付中

apacheの応答時間・タイムアウトエラー

tk_flavor
tk_flavor

総合スコア104

Apache

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

1回答

0評価

0クリップ

12456閲覧

投稿2016/08/10 08:24

編集2022/01/12 10:55

クライアント証明書が入ったWebサイトにhttp接続した際
「サイトからの応答時間が長すぎます。」と表示されます

今はhttp接続した時に強制的にhttpsに接続させる設定はしていません

この「サイトからの応答時間が長すぎます。」のメッセージを出さないようにするためには
ErrorDocumentでエラーページ見せるようにしようかと思っているのですが
ssl_errorログにhttpステータスが表示されませんので、ErrorDocumentの設定ではうまく機能しないのではと
考えています
ssl_errorログには下記のようなログが出ています

Re-negotiation handshake failed: Not accepted by client

そもそも、「サイトからの応答時間が長すぎます。」の制御をapache側設定でどうにかなるのでしょうか?


クライアント証明書設定はssl.confに記述しています

■/etc/httpd/conf.d/ssl.conf

SSLInsecureRenegotiation off <Location /> SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 SSLRequireSSL SSLVerifyClient optional #SSLVerifyClient none SSLRequire %{SSL_CLIENT_S_DN_O} eq "*****." or%{REMOTE_ADDR}=~****** or%{REMOTE_ADDR}=~*****/ or%{REMOTE_ADDR}=~*****/ </Location> <Directory ""> # Options Indexes FollowSymLinks # AllowOverride All #add Order deny,allow Allow from all </Directory> ###サーバの公開鍵 SSLCACertificateFile /usr/local/ssl/CA/CA.key ###失効ファイル SSLCARevocationFile /etc/pki/exampleCA/crl.pem

iptablesでは、下記のように活かしています

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

netstatでも80はListenしています

[root@**** ~]# netstat -atlnp|grep ":80"
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5477/httpd

httpd -Sコマンドを実行すると下記のように443のみのvhost設定しかしていません

VirtualHost configuration:
wildcard NameVirtualHosts and default servers:
default:443 ..***.jp (/etc/httpd/conf.d/ssl.conf:81)
Syntax OK

  • サーバ内でcurlコマンドを実行しました

[root@*** conf.d]# curl -vvv http://localhost

  • About to connect() to localhost port 80 (#0)
  • Trying 127.0.0.1... connected
  • Connected to localhost (127.0.0.1) port 80 (#0)

GET / HTTP/1.1
User-Agent:
Host: localhost
Accept: /

< HTTP/1.1 302 Found
<
< Server: Apache
< X-Frame-Options: DENY

  • iptablesの内容

iptables -nvL

Chain INPUT (policy ACCEPT 551K packets, 43M bytes)
pkts bytes target prot opt in out source destination
153M 57G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
242K 23M ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0
583K 37M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
351 21052 ACCEPT tcp -- * * 192.168.. 0.0.0.0/0 state NEW tcp dpt:22
242K 15M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
7971K 465M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 144M packets, 96G bytes)
pkts bytes target prot opt in out source destination

書く順としては、*filter内容を記述してから、sourceIPでのポリシーを記載し、

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT
-A INPUT -i lo -j ACCEPT

最後に下記を記載しています

-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

ご教示のほどよろしくお願い致します

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

kunai

2016/08/10 08:30

サイトの設定をされている.confファイルに SSLInsecureRenegotiation on は記載されていますか?
tk_flavor

2016/08/10 08:39

ご回答ありがとうございます SSLInsecureRenegotiation on を一旦記述して確認しましたが 同じエラーログが出ます http://qa.itmedia.co.jp/qa8831426.html のサイトを見ると offが効力あるとの事で、現在はoffにしています
TaichiYanagiya

2016/08/12 10:24

HTTP 接続で Connection Timeout になっているのではないでしょうか。 HTTPS では接続できるのですか? Apache httpd のバージョンと、具体的な設定を教えてください。
tk_flavor

2016/08/12 10:50

apacheバージョンは Apache/2.2.15です http接続すると、「応答時間が長い。タイムアウトとなりました」表示になります httpsしか接続出来ないようにプログラム上で設定しています
tk_flavor

2016/08/12 10:51

設定はssl.confにクライアント証明書の設定が入っています 設定内容は、質問箇所に追記します
TaichiYanagiya

2016/08/12 12:10

「httpsしか接続出来ないようにプログラム上で設定」とは具体的にどのようにしているのですか? Connection Refused ではなく Connection Timeout なので、80番ポートへの接続を iptables で DROP (もしくは経路上のファイアーウォールで同様のフィルタリング)していませんでしょうか。
tk_flavor

2016/08/15 01:36 編集

うまく、改行など出来ませんでしたので、 質問欄に この回答・加筆を記載します iptablesでは80を活かしています netstatでも80はListenしています httpd httpd -Sコマンドを実行すると下記のように443のみのvhost設定としています
tk_flavor

2016/08/15 02:23

サーバ内でlocalhostでコマンドを実行した結果を質問した箇所に記載ます ステージング・開発環境ですと、httpd -Sすると *:80 is a NameVirtualHost が表示されまして、http接続するとページ表示されます 本番と開発との違いは80ポートでvhostを入れているかいないかだと思いますので、開発で80のvhostを削除してから同じ事が再現されるか確認してみます
tk_flavor

2016/08/15 02:46

すみません。 httpsしか接続出来ないようにプログラム上で設定しているのでは?の仮定で話ていましたが、そういった制御はしていないようです。 Locationヘッダは下記になります Location: /login?url=%2F
TaichiYanagiya

2016/08/15 03:03

情報ありがとうございます。 https にリダイレクトしているわけではないのですね。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Apache

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