🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CentOS

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

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

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

Apache

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

Q&A

解決済

1回答

10529閲覧

HTTPS通信のIP直打ちのアクセスを403にできない

ryo_engineer

総合スコア33

CentOS

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

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

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

Apache

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

0グッド

1クリップ

投稿2018/03/12 01:06

CentOS 7、Apache2.4.29を使用しています

http通信の場合は、以下でアクセス禁止にすることができたのですが、

<VirtualHost *:80> ServerName any <Location /> Order Deny,Allow Deny from all </Location> </VirtualHost>

https通信の場合、*:80 を *:443 に変えた同様のディレクティブを書いても動作しません(普通にアクセスできてしまいます)
どうすればhttps通信でもアクセス禁止にできるでしょうか?

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

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

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

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

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

maisumakun

2018/03/12 01:13

HTTPS通信の場合、SSLとしてのCommon Name不一致でエラーとなるかと思いますが、どのような証明書をお使いでしょうか。
ryo_engineer

2018/03/12 01:14

回答ありがとうございます Let's Encryptを利用しています
guest

回答1

0

ベストアンサー

<VirtualHost *:443> を 2つ定義して、1つ目で 403 を返し, 2つ目に正式なホスト名を設定するといいと思います。

(ssl.conf 抜粋) <VirtualHost *:443> ServerName (IPアドレス) SSLEngine on SSLCertificateFile (任意) SSLCertificateKeyFile (任意) <Location /> Require all denied </Location> </VirtualHost> <VirtualHost *:443> ServerName (ホスト名) (略) </VirtualHost>

投稿2018/03/12 07:19

TaichiYanagiya

総合スコア12173

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

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

ryo_engineer

2018/03/13 03:21

無事IP直打ちでのアクセスを弾くことができました。ありがとうございます 疑問なのですが、 ServerName any ではダメで、ServerName 'IPアドレス' だと可能になる理由は何でしょうか? *:80 の場合は any でいけたのですが…
TaichiYanagiya

2018/03/13 15:10

「1つ目」に設定することが重要です。 Name ベースのバーチャルホストでは、リクエストの Host: ヘッダと ServerName を照合しますが、どの ServerName にも合致しない場合、1つ目の <VirtualHost> が有効になります。 「ServerName (IPアドレス)」でも「ServerName any」でも何でもいいはずです。
ryo_engineer

2018/03/14 00:23

解決しましたので、ベストアンサーに選ばさせて頂きました 元々、1つ目に設定していて、変更点は any から IPアドレス に変えただけだったのですが… あとは、Order Deny,Allow Deny from all から Require all denied に変えたことが原因だったのかもしれません いずれにしても、80番ではできたことが443番ではできなかったということが不思議です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問