SSLアクセラレータでSSLを応答させた場合にhttpサーバ側でリダイレクト時にportが変になる

linux

状況説明

AWSを例にすると、ELB(Elastic Load Balancing)でACM(AWS Certificate Manager)を利用してSSLを応答させ、サーバ側ではSSLの処理を無くすということしている環境が多いと思います。

  • メリット
    • SSLの処理は負荷が高いのでサーバから切り離した方が良い
    • サーバ側でSSL証明書を管理すると煩雑になるのを防ぐことができる

このとき、サーバ側では、ポート番号を443ではなく、8443や8080など異なるポートにするケースが多いと思います。

そのような環境にしていた場合、リダイレクト時にクライアントにサーバが応答していたポート番号で返してしまいますので、それを防ぐための設定方法。

設定方法

Apache

ServerNameを下記のようにする。

<VirtualHost *:8443>
  ServerName https://www.piteki.com:443
</VirtualHost>

nginx

serverディレクティブに下記を追記

server {
      port_in_redirect off;
}

出典

うまいぼう兄貴に教わっていたけど、良く忘れるので自分の方にnginx含めてメモ。(ほげーってwww中身めっちゃ丁寧に書いてるのに、1ミリも伝わってこないw)

うまいぼうぶろぐ
ほげー

コメント