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

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

ただいまの
回答率

89.23%

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

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 7,399

tk_flavor

score 104

クライアント証明書が入った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ページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • TaichiYanagiya

    2016/08/15 11:36

    「httpsしか接続出来ないようにプログラム上で設定」とは具体的にどのようにしているのですか?
    「今はhttp接続した時に強制的にhttpsに接続させる設定はしていません」とのことですが、「curl http://127.0.0.1/」の結果、302 リダイレクトしています
    「curl -D - http://localhost/」でレスポンスヘッダの Location を教えてください。

    キャンセル

  • tk_flavor

    2016/08/15 11:46

    すみません。

    httpsしか接続出来ないようにプログラム上で設定しているのでは?の仮定で話ていましたが、そういった制御はしていないようです。

    Locationヘッダは下記になります
    Location: /login?url=%2F

    キャンセル

  • TaichiYanagiya

    2016/08/15 12:03

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

    キャンセル

回答 1

0

現状、サーバー内から「curl http://127.0.0.1/」で接続できるが、外部からは(リダイレクト先ではなく、単純に最初の URL に) Connection Timeout となるということだと思います。
確認ですが、外部から HTTP でアクセスしたときは access_log に何も記録されないのですよね?

iptables では 80/TCP を許可していますが、DROP や REJECT ルールの前に設定しているか確認ください。
iptables -nvL の出力があるとわかると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/15 12:24

    iptablesの設定内容については、質問箇所に追記しました

    キャンセル

  • 2016/08/15 12:39

    ありがとうございます。iptables は問題ないですね。DROP, REJECT がないので全許可だと思います。

    80/TCP のパケットがカウントされていますので、外部からアクセスがあると思うのですが ... access_log はどうなっていますか?

    キャンセル

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

  • ただいまの回答率 89.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

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