そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

GitLab「fatal: unable to access SSL certificate problem: unable to get local issuer certificate」エラーの対処法

※[PR]当ブログの記事の中にはプロモーションが含まれています。

・GitLabをHTTPS化した後に、pullとかpushするときに「SSL certificate problem: unable to get local issuer certificate」エラーが出るようになった。

こういった疑問に答えます。

本記事の内容

  1. GitLabをHTTPS化してから、「fatal: unable to access 'https://gitlab.xxxxxxxxxxx.git/': SSL certificate problem: unable to get local issuer certificate」エラーが出るようになったときの対処方法

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

GitLabをHTTPS化してから「fatal: unable to access 'https://gitlab.xxx.git/': SSL certificate problem: unable to get local issuer certificate」エラーが出るようになったときの対処方法

前回の記事

下記の記事の手順で、GitLabサーバーをHTTPS化しました。

souiunogaii.hatenablog.com

開発PC(Windows10)側で、リモートリポジトリのURLをHTTPSに変更

PS > git remote set-url origin https://gitlab.sv-mars.planet.space.com/●●●/xxx.git
PS > git remote -v
origin  https://gitlab.sv-mars.planet.space.com/●●●/xxx.git (fetch)
origin  https://gitlab.sv-mars.planet.space.com/●●●/xxx.git (push)

開発PC(Windows10)からpullしようとするとエラー

PS > git pull origin develop
fatal: unable to access 'https://gitlab.sv-mars.planet.space.com/●●●/xxx.git/': SSL certificate problem: unable to get local issuer certificate

pullしようとすると、以下のエラーメッセージが出てしまいます。

fatal: unable to access 
'https://gitlab.sv-mars.planet.space.com/●●●/xxx.git/': 
SSL certificate problem: unable to get local issuer certificate

エラーの原因

今回の環境は、プライベート認証局からサーバ証明書を発行していたので、「Git for Windows」に、信頼できる認証局として登録する必要があるみたいです。

http.sslcainfoの確認

PS > git config --list
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

git config --list コマンドで現在の設定を確認すると、
以下のファイルに信頼できる認証局が登録されていることが分かります。

C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

対処方法

プライベート認証局(中間証明局)の証明書をファイルにエクスポート

Chromeブラウザの鍵マークをクリック>証明書をクリック

証明書のパス>中間認証局を選択して「証明書の表示」をクリック

中間認証局の証明書が開く

詳細タブを開いて「ファイルにコピー」をクリック

証明書のエクスポートウィザード画面が開く

Base 64 encoded X.509 (.CER) を選択

ファイル名を入力

エクスポートの完了

エクスポートされたファイルの改行コードを「LF」に変更

そのままだと、改行コードが「CRLF」になっています。

エディタで開いて、改行コードを「LF」に変更します。

「LF」に変更できました。

ca-bundle.crt に認証局の内容を追記する

C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

ca-bundle.crt をエディタで開いて、エクスポートした中間認証局の内容を追記します。

C:/Program Files/配下のファイルは、直接は編集できないので、一旦、別の場所にコピーした上で編集して、元もファイルに上書きします。

認証局を追加した後に、再度、pullしてみる

git pull origin develop

セキュリティ画面が表示されたら、
GitLabのユーザー名とパスワードを入力します。

PS > git pull origin develop
From https://gitlab.sv-mars.planet.space.com/●●●/xxx
 * branch            develop    -> FETCH_HEAD
Already up to date.

エラーが解消して、無事にpullできるようになりました。

参考サイト

kkamegawa.hatenablog.jp

stakiran.hatenablog.com