IPアドレスでWebサイトへのアクセスを制限します。

IPアドレスでWebサイトへのアクセスを制限します。

ポート80/tcpを介して自分のWebサイトにアクセスすると、www.mysite.comhttps 443/tcpにリダイレクトされます。それは問題ではありません。
ただし、IPアドレスを介してリンクにアクセスすると、アクセスが簡単でhttps://xx.xx.xx.xx信頼
できないサイトが表示されます。

IPアドレスに私のウェブサイトへのアクセスを制限したいと思います。
私のWebサーバーはApacheです
。 000-default.confに次のコード行を追加してみました。

<VirtualHost *:80>
ServerName xx.xx.xx.xx (ip address)
Redirect 403 /
ErrorDocument 403 “Sorry, direct IP access not allowed.”
DocumentRoot /dev/null/
UseCanonicalName Off
</VirtualHost>

Apacheの再起動中にエラーが発生しました。

現在、Apacheには次の設定があります。

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
Redirect / https://www.mysite.com/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

この目標をどのように達成できますか?ありがとうございます。

答え1

これは間違っています:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
Redirect / https://www.mysite.com/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

リダイレクトするからすべて。そこに403の拒否を入れる必要があります。次に、適切なサーバー名を使用してサーバーにリダイレクトをコピーします001-yoursite.conf。これで http://yoursite は https://yoursite にリダイレクトされますが、 http://IPADDRESS はデフォルト値に達するため返送されます。 http://anyothersiteでも同様です。

だからあなたは返品SSL用のデフォルトサーバー(000-default-ssl.confのようです)を追加して拒否する必要があります。したがって、*:443「何でも」がログインするサーバー名と一致しない限り、https://whateverは返されます001-yoursite-ssl.conf

DocumentRootを指定する必要はありません。投稿するだけで403 Forbiddenエラーログとアクセスログを心配する必要はなく、とにかくボットトラフィックにすぎません(本当に必要な場合は非常に小さなaccess_log形式を定義できます。ソースIPのみを使用してください。ボットを分類するためのユーザーエージェントがあります)。

関連情報