
私は持っている...
<VirtualHost example.com:80>
ServerAdmin webmaster@localhost
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
それはすぐに...に進みます。
<IfModule mod_ssl.c>
<VirtualHost example.com:443>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias example.com
DocumentRoot /home/klyde/ror/exampledev/public
SSLCertificateFile /etc/apache2/ssl/certs/123abc.crt
SSLCertificateChainFile /etc/apache2/ssl/certs/gd_bundle-g2-g1.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/examplekey.key
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLEngine on
SSLProxyEngine On
ProxyRequests On
<Proxy *>
AddDefaultCharset off
#Options Indexes FollowSymLinks
AllowOverride none
<RequireAny>
#<RequireAll>
# Require all granted
#</RequireAll>
<RequireAll>
Require host example.com
</RequireAll>
<RequireAll>
Require local
# Require ip 127.0.0.1
</RequireAll>
</RequireAny>
</Proxy>
ProxyPassReverseCookiePath / /
ProxyPass /errors/ !
ProxyPass /websockets ws://127.0.0.1:8675/
ProxyPassReverse /websockets ws://127.0.0.1:8675/
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>
</IfModule>
有効にすると...
Require all granted
すべて正常に動作します。しかし、サイトはフィッシングで溢れています。私は...
Require host example.com
しかし、これによりログ エラーが発生します...
access check of 'example.com' to / failed, reason: unable to get the remote host name
この構成を選択したのは、Apache での SSL と Torquebox への ajp を停止したいからです。これは、サイトをセキュリティ保護しようとする場合を除いて、問題なく動作します。もちろん、Torquebox を使用した Apache は、必ずしも望ましい、推奨できる、などというわけではありません。反対の提案は歓迎します。
主な質問 - 「リモート ホスト名」エラーが発生するのはなぜですか。何かアイデアはありますか?
答え1
名前によるリモート ホストの特定は、リモート IP アドレスにPTR
レコードがある場合にのみ機能します。すべての IP アドレスにレコードがあるわけではありません。可能な場合は、ステートメントで IP アドレスを使用しますRequire
。
アクセスを制限するために、基本認証 (https 経由が望ましい) を使用することもできます。
proxy
必要なのは機能だけであれば、を定義する必要はありませんproxypass
。
プロキシが必要な場合は、プロキシを自分のドメインに制限してみてください。
<Proxy http://www.example.com/*>
....
</Proxy>
答え2
使えると思います
Require ip 127.0.0.1
ローカルIPの代わりにサーバーのIPを使用する
答え3
単にオープンにして、任意の IP からのリクエストを許可したい場合は、次を使用できます。
Require all granted
詳細については、こちらをご覧ください:https://serverfault.com/a/887196/468080