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