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 すれば消えます
サブドメインも入力しないとだめでした

Rails5でBootstrap Toggleが初回表示だけ動かない

Ruby on Rails 5をrailstutorialをやっていれていたので、そこにBootstrap Toggleを導入してみました

gemは

rails 5.0.3
bootstrap-sass 3.3.7
bootstrap-toggle-rails 2.2.1
turbolinks 5.0.1

な感じです

assetにjsとcssをセット

$ vim app/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require bootstrap-toggle
//= require turbolinks
//= require_tree .

$ vim app/assets/stylesheets/custom.scss

@import "bootstrap-sprockets";
@import "bootstrap";
@import "bootstrap-toggle";

として、bootstrap-toggleを読み込みました

Viewに

<%= check_box_tag "mode", 1, true,
  data: { toggle: "toggle", on: "On", off: "Off", onstyle: "primary", offstyle: "danger" },
  class: "toggle"
%>

を用意
これだけで、表示されてたりします
初回表示がただのチェックボックスで、リロードすると表示されたり..

Turbolinkの動きのせいらしいので、
GitHub - rkallensee/bootstrap-toggle-rails: Bootstrap Toggle plugin for the Rails asset pipeline
に記載があるように

$(document).on('ready page:change', function() {
  $('input[type="checkbox"].toggle').bootstrapToggle(); // assumes the checkboxes have the class "toggle"
});

としたら良さそうでしたが Turbolink 5 からは書き方が違うので

$(document).on('turbolinks:render', function() {
  $('input[type="checkbox"].toggle').bootstrapToggle();
});

としてあげると、正しく動きました

Vivaldiが起動しなくなった

Windows10で使っていたVivaldiが起動しなくなったので、復旧してみました
立ち上げてて、普通に使えてたのが、新しいタブを開いても新しいページが真っ白、Vivaldiを閉じると、立ち上がらなくなり、PC再起動でも変わらず..でした

PCを再起動してから

C:\Users\username\AppData\Local\Vivaldi\Application\User Data

の名前を変えます(e.g. User Data backup)
そして、Vivaldi起動

すると設定のされてないVivaldiが立ち上がりました
いったんVivaldiを閉じて、設定を戻すのにバックアップを取った

C:\Users\username\AppData\Local\Vivaldi\Application\User Data backup\Default

を新しく作られた

C:\Users\username\AppData\Local\Vivaldi\Application\User Data\Default

に上書きします

そして起動!で戻りました

URLバーにabout:aboutでバージョンを確認したら
Vivaldi: 1.10.867.42 (Stable channel) (32-bit)

でした

リバースプロキシ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';
}

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