htaccessでwww付きにリダイレクトする前に「安全ではない接続」と表示される

投稿者: Anonymous ELB-EC2-apache でサーバーを構築しております。 証明書はwww付きのモノですので、 https://example.com と接続すると「安全ではない接続」と表示されるので、 RewriteCond %{HTTP_HOST} ^example.com RewriteRule ^(.*)$ https://www.example.com/$1 [QSA,R=301,L] のように設定しているのですが、 https://example.com にアクセスすると 「安全ではない接続」と表示され、許可してアクセスした後にwww付きにリダイレクトされます。 ネットで沢山情報ありますので、いろいろ試しましたが「安全ではない接続」と表示されます。 このパターンですと、どのようにwww付きにリダイレクトさせれば良いのでしょうか? 解決 サーバーの設定に関係なく、ユーザーが https://example.com にアクセスした時点で https://example.com の正しい証明書が存在しないようなので、ユーザーから見ればそれは「安全ではない接続」になります。 SNI などを使い証明書が example.com に対して有効である状態にしない限り、安全にリダイレクトさせることは SSL の仕組み上できません。 回答者: Anonymous

httpsでAWSのClassic load balancerのDNSに直接アクセスすることはできますか?

投稿者: Anonymous https://hogehoge-***.ap-northeast-1.elb.amazonaws.com/ にアクセスすると HTTP/1.1 504 GATEWAY_TIMEOUT Content-Length: 0 Connection: keep-alive と返ってくるのですが、これはELBが返しているのでしょうか? 解決 作成したELBは、クラッシクロードバランサでしょうか、ALBでしょうか。 ELBが504を返している場合の調べ方と対処方法が下記のドキュメントにあります。 クラッシクロードバランサは使ったことがないので、わかりませんが、ALBはモニタタブでエラーの発生状況が確認できます。発生しているようであれば、接続タイムアウトの時間を長くすると良いかもしれません。 クラッシクロードバランサ https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/ts-elb-error-message.html#ts-elb-errorcodes-http504 ALB https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-504-issues 回答者: Anonymous

nginxを使っているインスタンスでELBのproxyProtocolを有効にすると400(Bad Request)エラーが発生する

投稿者: Anonymous アクセス元のIPアドレスをELBのproxyProtocolを有効にして取得する際に BadRequestが発生してそもそもページが表示できません。 ■ ELBのリスナー 80(TCP) -> 80(TCP) 443(SSL) -> 80(TCP) ※proxyProtocolは80に対して有効にしています ■ アクセスログについて(個人的にはここが怪しいと思いますが、何をどう調査すればいいのかわかりません・・・) 現在、 $status の中身が 『PROXY TCP4 …..』となっています。 他の参考サイト様をみると、『GET ….』となるのが正常のようです。 アクセス元のIPアドレスを取りたいということが目的で、Teratailにも質問を上げています。 https://teratail.com/questions/26850 現在の設定ファイルの内容はTeratailを見ていただければと思います。 何かご存知の方がいらっしゃいましたら、ご教授願います。 (こういう調べ方をした方がいいんじゃない?等のご助言でも有りがたいです。) よろしくお願い致します。 解決 BadRequestの原因として、 nginx内に80をHTTPとしてListenしているVH環境が他に存在していたからと思われます。 現在、 TCP/SSL通信をするELBは内部的に80以外の別ポートを使用し HTTP/HTTPS通信をするELBは内部的に80のポートを使用するように分けました。 今のところ問題なく動作しています。 回答者: Anonymous

ALBを経由したアクセスができない

投稿者: user39764 お世話になっております。 下記問題について知見のある方がいらっしゃいましたらご教示お願いします。 起きている問題 AWS環境でNginx+Unicorn+Railsを実装し、EC2にALBを経由してアクセスしようとしているのですが、 ALBのDNS 名でアクセスするとNginxのデフォルトページが表示されてしまいます。 デプロイしているRailsのアプリケーションを開くためにはどのようにすればよろしいでしょうか。 確認したこと nginxの構文を確認したところ、サーバー名の長さが上限を超えていました。(ALBのDNS名を設定しているため) $ sudo nginx -t [sudo] ryouya のパスワード: nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64 nginx: configuration file /etc/nginx/nginx.conf test failed nginx設定ファイルに『server_names_hash_bucket_size 128;』を追記したいのですが、構文エラーになってしまいます。 #追記時のエラー_1 $ vi coffee_app.conf : server { listen 80; client_max_body_size 4G; server_name {ALBのDNS名}; keepalive_timeout 5; server_names_hash_bucket_size 128; #この一文を追記…(Continue Reading)

Fuel real_ip に HTTP_X_FORWARDED_FOR の値が入らない

投稿者: Anonymous ELB 経由で接続する Fuel サーバーのコントローラの先頭に以下のようなログを仕込んだのですが $ip = Input::real_ip(); Log::error(print_r($_SERVER, true)); Log::error($ip); $_SERVER には [HTTP_X_FORWARDED_FOR] => xxx.xxx.xxx.xxx と送信元アドレスが入っていたのですが $ip に入っていたのは [REMOTE_ADDR] => yyy.yyy.yyy.yyy と同じもの(ELBのアドレス)でした http://developer.wonderpla.net/entry/blog/engineer/FuelPHP/ この記事をよむと real_ip で HTTP_X_FORWARDED_FOR に値が入ってたら優先して取得してくれるとあるんですが、使い方がまずいのでしょうか なぜ送信元が取得できないのかなにか可能性があったら教えていただきたいです 解決 fuel1.6以降セキュリティの懸念からHTTP_X_系のヘッダーの利用は allow_x_headers を trueに設定することで利用できるようになっています。 デフォルトはfalseです。 そのためreal_ipの結果にHTTP_X_FORWARDED_FORに書き換えたいのであれば allow_x_headers を trueにしてください。 HTTP_Xヘッダーは偽装できてしまいますので、きちんとロードバランサ以下のところからしかアクセスできないなどのネットワーク側の設定をした上で利用してくださいね 参考サイト http://fuelphp.jp/docs/1.7/general/configuration.html http://developer.wonderpla.net/entry/blog/engineer/FuelPHP_v1.6_RealIP/ 回答者: Anonymous

AWSのElasticBeanstalkで作成したインスタンスを別VPCに移行したい。

投稿者: Anonymous ネットワークの整理をすることになったため、VPC間の移動を行いたいのですが、 ElasticBeanstalkで作成したEC2やRDS、ELBを別VPCに移行させることは可能でしょうか。 よろしくお願いします。 解決 Elastic Beanstalkには設置先のVPCを後から変更する機能は無かったと思います。 ですので、新しく環境(Enviroment)を作成してそこに移行する事になると思います。 アプリケーション自体はデプロイしなおすだけなので簡単かと思います。 Elatic BeanstalkでRDSも管理されていて、停止時間が許容されるなら、RDSのスナップショットを取得しておき新しい環境を作成時にそのスナップショットを指定すればよいかと思います。 回答者: Anonymous