SSL3_GET_SERVER_CERTIFICATEエラーが出たのでNeoBundleのBundleInstallをhttpsからgitに変えたメモ

先日新規の案件で関わるサーバにGithubから自分用のVim環境をセットアップしようとしたところ、SSL3_GET_SERVER_CERTIFICATEエラー*1が出てしまいました。

$ git clone https://github.com/Shougo/neobundle.vim.git ~/.vim/bundle/neobundle.vim
Cloning into /home/アカウント名/.vim/bundle/neobundle.vim...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/Shougo/neobundle.vim.git/info/refs

根本的な解決方法としては、EV SSLルート証明書を入れれば良いのですが、権限もなく申請して数日待って承認さたら可能という状況だったので仕方なくNeoBundleのプロトコルをgitにして解決したので、その時のメモです。*2

1. NeoBundleのインストール

こちらは普通にコマンドラインで変えるだけ。何の問題も無し。

$ git clone git://github.com/Shougo/neobundle.vim.git ~/.vim/bundle/neobundle.vim
Cloning into /home/アカウント名/.vim/bundle/neobundle.vim...
remote: Counting objects: 7183, done.
remote: Total 7183 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (7183/7183), 1.80 MiB | 595 KiB/s, done.
Resolving deltas: 100% (3098/3098), done.

2. NeoBundleのコードを修正

取得したNeoBundleのソースから以下のファイルを開いて編集してやります。

$ vim ./.vim/bundle/neobundle.vim/autoload/neobundle/types/git.vim

34~36行目らへんにdefault_protocolと書かれている行があり、そこにhttpsと書かれているので以下のようにgitに変更。

 34 call neobundle#util#set_default(  
 35       \ 'g:neobundle#types#git#default_protocol', 'git',
 36       \ 'g:neobundle_default_git_protocol')  

あとは一度vimを閉じて再度起動して:NeoBundleInstallしてやったらプロトコルがgitに変わってくれました。

before

[neobundle/install] ( 1/14): |vimproc| git clone --recursive https://github.com/Shougo/vimproc.git "/home/[アカウント名]/.vim/bundle/vimproc"
[neobundle/install] ( 2/14): |neocomplcache| git clone --recursive https://github.com/Shougo/neocomplcache.git "/home/[アカウント名]/.vim/bundle/neocomplcache"
[neobundle/install] ( 3/14): |vim-quickrun| git clone --recursive https://github.com/thinca/vim-quickrun.git "/home/[アカウント名]/.vim/bundle/vim-quickrun"

after

[neobundle/install] ( 1/14): |vimproc| git clone --recursive git://github.com/Shougo/vimproc.git "/home/[アカウント名]/.vim/bundle/vimproc"
[neobundle/install] ( 2/14): |neocomplcache| git clone --recursive git://github.com/Shougo/neocomplcache.git "/home/[アカウント名]/.vim/bundle/neocomplcache"
[neobundle/install] ( 3/14): |vim-quickrun| git clone --recursive git://github.com/thinca/vim-quickrun.git "/home/[アカウント名]/.vim/bundle/vim-quickrun"

*1:Githubが使うDigiCertのEV SSLルート証明書が無いためです

*2:容易に根本解決できる環境であればこちらの記事が参考になります。
GitHubにおけるSSLの認証エラーを回避するため、EV SSL用ルート証明書を追加する - 祈れ、そして働け 〜 Ora et labora

覚えやすくて破られにくいパスワードを作る5つのステップ+1

今回は自分が実践している、
パスワードを少しマシなものにする方法を紹介してみます。

忘れると面倒だから結局簡単な文字列にしちゃってる人、
いくつも覚えるのが面倒だから全部同じパスワードにしちゃってる人は参考にしてみてください。

理想のパスワード

  • 他人には推測されないランダムな文字列
  • 大文字小文字、数字、記号を織り交ぜて作られている
  • 可能な限り長い文字列
  • 手帳、付箋、スマホなどに安易に保存しない

ざっと条件を挙げるとすればこんなとこでしょうか。
ところが実際には…

現実のパスワード

  • 自分の名前+誕生日など、覚えやすくわかりやすいもの
  • 全部小文字、同じ文字の繰り返しもなんのその
  • そもそも記号がパスワードに使えない場合がある
  • 忘れないように長さは極力短く
  • 忘れたときのために手帳やスマホにメモしておく

いま使っているパスワードはこんな風になってないでしょうか。

という訳で覚えやすさ・忘れにくさは極力失わずにマシなパスワードを作る5つのステップを紹介します。

【ステップ1】パスワードの元になるキーワードを2つ以上決める

自分の名前やメールアドレスに使っていない単語であれば何でも良いです。
アダ名、親の名前、好きなアーティスト名、好きな食べ物などを軸に2つ以上用意してください。
複数用意する理由は、パスワードの長さを確保するためと他人に推測されるのを防ぐためです。

例:ビートルズ+えんがわ(寿司ネタ)

※注意:自分の名前やアカウント名、メールアドレスの@より前などをそのまま使わないこと

【ステップ2】キーワードを英字に置き換える

ローマ字表記で充分OKです。もちろん英単語に置き換えてもいいです。 とにかく全部いったん英字に置き換えましょう。

例:The Beatles+Engawa

【ステップ3】置き換えた単語を組み合わせる

さきほど英字にしたキーワードをくっつけます。
単純に前後にくっつけるでもいいし、子音だけを抜き出してくっつけるも良し。

大事なのは2つ。

  1. この時点で長さをなるべく長くすること(できれば8文字以上)
  2. ゴロや響きが自分に覚えやすいものであること

です。

例:EngawaBeatles(13文字)、ThBtlsngw(9文字)

【ステップ4】英字を他の文字に置き換える

ここはランダムな文字列っぽく見せる重要な箇所になります。
英字を似た文字や同じ響きの文字などルールを決めて置き換えていきます。

b -> 6
B -> 8
o -> 0(数字のゼロ)
q, Q -> 9
i -> l(小文字エル), !
l -> I(大文字アイ), !

他にも

a -> @(@の中にaがある)
w -> vv Ai -> アイ -> i, I
En -> エン -> o, O(オー), 0(ゼロ)
at -> アット -> @

などなど。

ここに挙げたのはあくまで一例です。 実際にはパスワードに記号が使えないサービスも未だに多いですし、
英数大文字小文字混ぜてないとダメな場合もあるので自分の覚えやすいやり方で対応してください。

例:EngawaBeatles -> Ogawa8e@!es

【ステップ5】単語の前後やつなぎ目に記号を挟み込む

既にぱっと見では意味不明な文字列が出来上がってるかもしれませんが、 念には念を入れ最後のひと押し。
\, $, %, @, {}, []などを単語の区切り文字として使ったり単語を囲ったりします。

例:{Ogawa}8e@!es

以上で完成です。

早速今回作ったパスワードを適当に見つけてきたパスワード強化チェッカーでチェックしてみると結果は見事100%でした。 http://www.benricho.org/password_meter/

いかがでしょう?覚えておくのは最初に設定したキーワード「エンガワビートルズ」といくつかの変換ルールだけ。 これで充分な強度のパスワードは作れたかと思います。

【One more thing...】使い回し対策(おまけ)

せっかく覚えやすく他人にはわかりづらいパスワードを作っても、いろんなところで使い回していたら意味が薄れてしまいます。
かといって毎回考えて用意して覚えておくのも大変、という方へ。
どーしても同じパスワードを使いまわしてしまうくらいなら
作ったパスワードに、どこで使うかを混ぜておくとよいでしょう。

例:Ogawa8e@!es+
Facebook -> fb, fcbk Twitter -> tw, twttr
Gmail -> gm, gml
LINE -> LN

などなど。
これを一定のルールを決めてパスワードに混ぜ込んでおきます。 例えば

fOgawa8e@!esb(挟む)
Ogawa8e@!estw(後ろに付け足す) Ogawagml8e@!es(単語の境目に入れる)

こんな感じでしょうか。 混ぜ込む位置さえ自分で決めておけば使いまわしても多少マシになるでしょう。多少ですが。


以上になります。
いまだにパスワードに記号が使えないサービスが多々有りますが、その場合は変換ルールのところで記号を混ぜないように対応してください。

なお、個人的に使っている「マシにする方法」を紹介しただけなのでもし何かあっても責任は取れないですごめんなさい。

dotfileの管理をGithubに置いて一元化したりどこでもセットアップできるようにする

これまではバックアップ的にDropboxに置いていたものの、
環境を新しく作る際に何かと手間が掛かっていたので、
Gitと組み合わせてコマンド一つで設定できるようにした。

dotfileとは?

.bashrcや.vimrc、.tmux.confなど「.(ドット)」で始まるファイルのこと。
LinuxUnix系OSの設定ファイル名はこの形式を取ることが多い。

0. 置き場所を決める

Githubに置くのもよし、自分でGitサーバを用意するもよし。
.ssh/config等、外部に公開したくないファイルを含める場合はPrivate Repositoryが作れる有料版に申し込むか、Bitbucketcodebreak;等の利用も検討すること。

1. 下準備 〜 dotfileの置き場所をローカルに作り、dotfileを移動させる

$ cd
$ mkdir -p ~/dotfiles
$ mv .vimrc ~/dotfiles/
$ mv .gvimrc ~/dotfiles/
$ mv .vim/ ~/dotfiles/
$ mv .bashrc ~/dotfiles/
$ mv .ssh ~/dotfiles/.ssh # GithubなどでPublicなとこに置く際は要注意
$ mv .gitconfig ~/dotfiles
$ mv .gitconfig_global ~/dotfiles

他にも必要なファイルがあれば随時移動する。

※注意

上記例では .sshも含めているが、configや秘密鍵などもアップする際には充分注意すること

2. シンボリックリンクを張るシェルスクリプトを用意する

$ vim dotfiles/setup.sh

シェルスクリプトの中身はこんな感じ。

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

# スクリプトがあるディレクトリの絶対パス
dir=$(cd $(dirname $0);pwd)

# リンクを作成しないファイル名のリスト
ignorefiles=("." ".." ".git" "${0##*/}")

for dotfile in .?*; do
  is_ignored=0
  for ignorefile in ${ignorefiles[@]}; do
    if [ $dotfile = $ignorefile ]; then
      is_ignored=1
      break
    fi
  done

  if [ $is_ignored -ne 1 ]; then
    ln -s -v -f "$dir/$dotfile" $HOME
  fi
done

3. git pushする

$ cd ~/dotfiles
$ git init
$ git add .
$ git commit -m “first commit”
$ git remote add origin git@github.com:madai0517/dotfiles.git
$ git push -u origin master

これで環境は完成。

4. 利用方法

新しく環境を作るサーバで以下のコマンドを実行すればOK。

$ git clone --recursive git://github.com/madai0517/dotfiles.git
$ cd dotfiles
$ chmod +x setup.sh
$ ./setup.sh
$ source ~/.bashrc

自分のホームディレクトリにシンボリックリンクが作成されているはず。 めでたしめでたし。