httpsからhttpに戻したのに、httpsに勝手にリダイレクトされる

Nginxにsslを設定してhttpsでアクセスできるようにした置いたサイトをhttpに戻したら使っていたGoogle Chromeで勝手にhttpsへリダイレクトされました

原因はHSTSでした

Nginxで設定していたconfの箇所は以下

  add_header Strict-Transport-Security max-age=15768000;

これで、対応しているブラウザはhttpのアクセスをhttpsにしてくれます
これをブラウザが覚えているせいで、Nginxの設定を変えても、ブラウザでリダイレクトしていたようでした

Google chromeの場合、消すには
chrome://net-internals/#hsts
にアクセス

Delete domainに該当のURLを入力して Delete すれば消えます
サブドメインも入力しないとだめでした

リバースプロキシnginxにsslを設定した裏のEC-CUBE 2で管理者ログインできない

EC-CUBE 2を触ることがあって、カード決済テストするにはhttpsの環境が必要..ということで開発環境にもsslを導入しました

Nginx – Apache – EC-CUBE 2

と表にNginxを立ててたので、そこにsslを導入
config.phpのHTTP_URLをhttpsにします

$ vim config/config.php

define('HTTPS_URL', 'https://sample.co.jp');

これで、https化できたのですが、管理者画面でエラーになります
コードを読み進めると、httpでアクセスしてるようで..

リバースプロキシNginxのconfに

proxy_set_header X-Forwarded-Proto $scheme;

を設定しておいて、EC-CUBE2でもhttpsで動いてほしかったのですが、対応してない様子

data/require_base.php で無理やり対応しました

$ vim data/require_base.php

33行目あたりに

if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
    $_SERVER['HTTPS']='on';
}

これで、動作するようになりました

Nginx+php-fpmで固定の値を渡したい

パスワードなどgit管理したくないものをパラメータ化して渡してみました
Nginx + php-fpm だと迷ったのでメモ

PHP: 設定 - Manual

あたりを見ると、プール設定ファイルにかけばいいとあります
探して編集

$ vim /etc/php5/fpm/pool.d/www.conf

clear_env = no
env[SAMPLE_PARAM] = "123456"

clear_envをオフにしてパラメータをセットしてみて

getenv('SAMPLE_PARAM');

とphpで値が取れるようになりました

クリックジャッキング対策をNginxのサイトにしてみた

Ubuntu + Nginxで運用しいているサイトを
Observatory by Mozillaっていうのでサイトのセキュリティを調べてみたらD+のランクだったので対応してみました

クリックジャッキング - Wikipedia
の対策ができてなかったのでそこの対応をしました

Nginxの設定を変えます

$ sudo vim /etc/nginx/conf.d/default.conf

  add_header X-Frame-Options SAMEORIGIN;                                           
  add_header X-Content-Type-Options nosniff;                                       
  add_header X-XSS-Protection "1; mode=block";                                     
  add_header Content-Security-Policy "default-src 'self' 'unsafe-eval' https:;";

Content-Security-Policy(CSP)は、httpsだったらOKにしているので、セキュリティとしては良くないです
本来なら、スクリプトの指定や、styleの指定など個別でしたほうがいいです

nginxを再起動して、再度、Observatory by Mozillaで調べてみると

Observatory by Mozilla

Aになりました

参考)
Nginxセキュリティ設定 - Qiita
Content Security Policy の利用方法 - Web セキュリティ | MDN