1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitでWindowsの認証局ストアに登録されたルート証明書を使用する

Posted at

課題・背景

会社のプロキシ利用した状況下かつ、会社独自のルート証明書を使用(Windowsの認証局ストアにインポート)している場合。
Gitは通常、認証局ストアを参照しないため、そのままだとSSLのエラーが発生する。
下記のように、sslVerifyをfalseにすることでも対処可能だが、セキュリティ的に心配。

git config --global http.sslVerify false
git config --global https.sslVerify false

対処方法

Windowsの認証局ストアに登録されたルート証明書をエクスポートせずにGitで使用することは、直接的には難しいです。Gitは通常、証明書ファイルを直接参照する設定を必要とするためです。

しかし、以下の方法で間接的に対応することができます:

  1. Windowsの証明書ストアを信頼するようにGitを設定:

    • Gitの設定ファイル(gitconfig)を編集し、Windowsの証明書ストアを信頼するように設定します。具体的には、以下のように設定します:
      git config --global http.sslBackend schannel
      
      この設定により、GitはWindowsの証明書ストアを使用するようになります。
  2. 環境変数の設定:

    • 環境変数を設定して、GitがWindowsの証明書ストアを使用するようにします。以下のコマンドを実行します:
      set GIT_SSL_BACKEND=schannel
      
      これにより、GitはWindowsの証明書ストアを使用するようになります。

これらの設定を行うことで、Windowsの認証局ストアに登録されたルート証明書をエクスポートせずに使用することが可能になります¹²³。

schannelとは?

schannelは、Windowsのセキュリティサポートプロバイダ(SSP)の一つで、SSL/TLSプロトコルを実装しています。これにより、Windowsの証明書ストアを利用してSSL/TLS接続を行うことができます。

コマンドの詳細

  • git config --global: これはGitのグローバル設定を変更するコマンドです。--globalオプションを使用すると、全ユーザーに対して設定が適用されます。
  • http.sslBackend schannel: これはGitがHTTPS接続において使用するSSL/TLSバックエンドをschannelに設定することを意味します。

メリット

  • Windowsの証明書ストアを利用: schannelを使用することで、Windowsの証明書ストアに登録されたルート証明書をそのまま利用できます。これにより、証明書のエクスポートや個別設定が不要になります。
  • 一貫したセキュリティ: Windowsのセキュリティ機能をフルに活用できるため、セキュリティが強化されます。

使い方

以下のコマンドを実行するだけで設定が完了します:

git config --global http.sslBackend schannel

これで、GitはHTTPS接続時にWindowsの証明書ストアを使用するようになります。

ソース:
(1) 【図解/Windows】ルート証明書のインストール方法と確認方法. https://milestone-of-se.nesuke.com/knowhow/lookup-windows-cert/.
(2) Windows環境にルート証明書をインストールする方法 - DigiCert. https://knowledge.digicert.com/ja/jp/solution/SO23057.
(3) ルートCA(証明機関)の証明書をインポートする - Windows - iPentec. https://www.ipentec.com/document/windows-import-root-ca-certification.
(4) セキュリティ証明書の検証が失敗する - Windows Server. https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/certificates-and-public-key-infrastructure-pki/secured-website-certificate-validation-fails.
(5) NT Auth ストア へ ルート証明書 をインポートする - Qiita. https://qiita.com/carol0226/items/5dde4fe77220f4388945.
(6) undefined. https://knowledge.digicert.com/ja/jp/solution/SOT0006.html.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?