やりたいこと
nginxでcloudflare向き先のオリジンサーバのIPを直叩きを拒否したい
ドメイン: example.com
オリジンサーバIP: XX.XX.XX.XX
|クライアント||cloudflare||オリジンサーバ|
|:--|:--:|:--|:--|
|ブラウザ|←→|example.com|←→|XX.XX.XX.XX|
http://XX.XX.XX.XX → 444(nginx)
https://XX.XX.XX.XX → 444(nginx)
試したこと
こちらを参考に下記のように設定
nginx
1eo $realip_remote_addr $cf { 2 default 0; 3 # IPv4 4 173.245.48.0/20 1; 5 103.21.244.0/22 1; 6 103.22.200.0/22 1; 7 103.31.4.0/22 1; 8 141.101.64.0/18 1; 9 108.162.192.0/18 1; 10 190.93.240.0/20 1; 11 188.114.96.0/20 1; 12 197.234.240.0/22 1; 13 198.41.128.0/17 1; 14 162.158.0.0/15 1; 15 104.16.0.0/12 1; 16 172.64.0.0/13 1; 17 131.0.72.0/22 1; 18 # IPv6 19 2400:cb00::/32 1; 20 2606:4700::/32 1; 21 2803:f800::/32 1; 22 2405:b500::/32 1; 23 2405:8100::/32 1; 24 2a06:98c0::/29 1; 25 2c0f:f248::/32 1; 26} 27server { 28 if ($cf = 0){ 29 return 444; 30 } 31}
結果
443で接続すると下記のようにオリジンサーバであることがバレてしまいます。
http://XX.XX.XX.XX → 444(nginx)
https://XX.XX.XX.XX → ブラウザエラー
Chrome
1この接続ではプライバシーが保護されません 2XX.XX.XX.XX では、悪意のあるユーザーによって、パスワード、メッセージ、クレジット カードなどの情報が盗まれる可能性があります。詳細 3NET::ERR_CERT_COMMON_NAME_INVALID 4このサーバーが example.com であることを確認できませんでした。このサーバーのセキュリティ証明書は example.com から発行されています。原因としては、不適切な設定や、悪意のあるユーザーによる接続妨害が考えられます。
サーバ設定以前の問題な気がしますが、
オリジンのIPを直叩きした場合にオリジンサーバとわからなくする方法はないのでしょうか?
(そもそもなぜIPから証明書が逆引き?できてしまうのかよくわかっておらず。。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/15 11:46