GitHubにpushしようとしたら「error:1407742E:SSL」エラーが発生

GitHubにpushしようとしたら「error:1407742E:SSL」エラーが発生
カテゴリ
技術
タグ
git
github
ssl

事象

githubにpushしようとしたら以下のようなエラーが発生しました。ちなみにInteliJで操作しました。

Failed with error: unable to access 'https://github.com/nisioka/RubyOnRailsTutorial.git/': error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

2018 10 25 13h43 49

原因

以下のgithubのブログで報知されている通り、githubのセキュリティ向上のため、TLSのVersion1.0と1.1を無効にしたそうです。故に、TLSのVersion1.2に対応していないGitクライアントソフトを使用していると今回のようなエラーが発生してしまいます。 https://githubengineering.com/crypto-removal-notice/

(補足)SSL/TLSについて。

これらはセキュリティのプロトコルで、古くからの風習で総称してSSLとして呼ばれることも多いです。バージョンとしては、{SSL1.0、SSL2.0、SSL3.0、TLS1.0、TLS1.1、TLS1.2}などがあります(右に行くほど新しい)。このうち、SSL系は重大な脆弱性が見つかっており、基本的に使用してはならないというのが通説です。TLS1.0や1.1も脆弱性が見つかっているのですが、それほど致命的でないので許容していることも多いです。ただもちろんTLS1.2にするのがセキュリティ上、より安全ではあります。

ですので、GitHubが今回の対策をとったのは意識の高さの現れであると言えます。

対策

使用しているGitクライアントソフトの最新版では、基本的にTLS1.2対応がなされているはずなので、バージョンアップをすれば解決されます。

手順1

最新のGitクライアントをインストールします。Windowsなら例えばこちらでよいと思います。使用しているクライアントが別であればそれの最新版をインストールしましょう。

手順2(InteliJを使用している場合)

InteliJにGitクライアントを教えてあげる必要があるかもしれません。

Settings>Version Controll>Gitに設定箇所があります。(最後のところはGitHubではないので選択誤りに注意。)ここの"Path to Git executable"に手順1でインストールまたはアップデートしたGitクライアントソフトのパスを指定します。ただし、多くの場合、以下の画像にある通り、"Auto-detected"と、自動で捜索してくれているので、それに間違いがないか確認すれば大丈夫です。

2018 10 29 08h36 08 1024x648

結論

TLS1.2に対応したGitクライアントにすれば良いということでした。 InteliJからもそのGitクライアントのパスを指定させれば大丈夫です。(私の場合ですと、Railsインストーラによってそれに同梱されているGitが指定されていて、変更の必要を余儀なくされました。)


関連記事

  1. Git for Windowsでgitコマンドが何故か動かない

    Git_icon.svg-e1546851811534.png

    事象 gitコマンド(例えば「git svn fetch」)を実行すると、ずっと応答が返ってこないという事が起こりました。 補足 タスクマネージャを見てみると、「perl.exe」なるタスクがgit…

  2. GitHubにpushしようとしたら「error:1407742E:SSL」エラーが発生

    2018-10-25_13h43_49.png

    事象 githubにpushしようとしたら以下のようなエラーが発生しました。ちなみにInteliJで操作しました。 Failed with error: unable to access 'https://github.com/nisioka…

  3. GitHubのコードをブログに貼る時の注意点【gist-it】

    github.jpg

    はじめに GitHubにあるコードをブログで紹介したい時にgist-itという便利なサービスがあります。なのですが、ブログに貼り付けても上手く表示されなくてハマったので、注意点も交えつつ紹介したいと思います。 gist-itとは そもそもgist-it…

  4. 公式主催のGitHub Enterprise企業導入セミナーに行ってきた

    DSC_1318.jpg

    2018/1/23に開催された、「これで成功させる!GitHub Enterprise企業導入 虎の巻」に参加してきました。参加者は40歳前後が一番多く、また、Git…

  5. java.net.SocketException: Connection resetでハマった

    Cheap_SSL_Shop.png

    ーはじめにー JavaでSSL通信を行う実装をしていて、タイトルの通り、「java.net.SocketException: Connection reset」が発生。例外情報が少なすぎて原因が全く分からず、大ハマリしました。。 【環境】 Java:version 1.8.…