簡単に:
- 自己署名証明書を取得する
- いくつかの(例えば
~/git-certs/cert.pem
)ファイルに入れます
- パラメータ
git
を使用してこの証明書を信頼するように設定しhttp.sslCAInfo
ます
詳細:
リモートサーバーの自己署名証明書を取得する
サーバーのURLがでrepos.sample.com
あり、ポート経由でアクセスしたいと仮定します443
。
それを取得する方法は複数あります。
opensslを使用して証明書を取得する
$ openssl s_client -connect repos.sample.com:443
ファイルに出力をキャッチcert.pem
し、すべてが、一部の間(および含む)を削除-BEGIN CERTIFICATE-
し、-END CERTIFICATE-
結果のファイル〜/ git-certs / cert.pemの内容は次のようになります。
-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
EwYDVQQIEwxMb3dlciBTYXhvbnkxEjAQBgNVBAcTCVdvbGZzYnVyZzEYMBYGA1UE
ChMPU2FhUy1TZWN1cmUuY29tMRowGAYDVQQDFBEqLnNhYXMtc2VjdXJlLmNvbTEj
MCEGCSqGSIb3DQEJARYUaW5mb0BzYWFzLXNlY3VyZS5jb20wHhcNMTIwNzAyMTMw
OTA0WhcNMTMwNzAyMTMwOTA0WjCBkzELMAkGA1UEBhMCREUxFTATBgNVBAgTDExv
d2VyIFNheG9ueTESMBAGA1UEBxMJV29sZnNidXJnMRgwFgYDVQQKEw9TYWFTLVNl
Y3VyZS5jb20xGjAYBgNVBAMUESouc2Fhcy1zZWN1cmUuY29tMSMwIQYJKoZIhvcN
AQkBFhRpbmZvQHNhYXMtc2VjdXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMUZ472W3EVFYGSHTgFV0LR2YVE1U//sZimhCKGFBhH3ZfGwqtu7
mzOhlCQef9nqGxgH+U5DG43B6MxDzhoP7R8e1GLbNH3xVqMHqEdcek8jtiJvfj2a
pRSkFTCVJ9i0GYFOQfQYV6RJ4vAunQioiw07OmsxL6C5l3K/r+qJTlStpPK5dv4z
Sy+jmAcQMaIcWv8wgBAxdzo8UVwIL63gLlBz7WfSB2Ti5XBbse/83wyNa5bPJPf1
U+7uLSofz+dehHtgtKfHD8XpPoQBt0Y9ExbLN1ysdR9XfsNfBI5K6Uokq/tVDxNi
SHM4/7uKNo/4b7OP24hvCeXW8oRyRzpyDxMCAwEAATANBgkqhkiG9w0BAQUFAAOC
AQEAp7S/E1ZGCey5Oyn3qwP4q+geQqOhRtaPqdH6ABnqUYHcGYB77GcStQxnqnOZ
MJwIaIZqlz+59taB6U2lG30u3cZ1FITuz+fWXdfELKPWPjDoHkwumkz3zcCVrrtI
ktRzk7AeazHcLEwkUjB5Rm75N9+dOo6Ay89JCcPKb+tNqOszY10y6U3kX3uiSzrJ
ejSq/tRyvMFT1FlJ8tKoZBWbkThevMhx7jk5qsoCpLPmPoYCEoLEtpMYiQnDZgUc
TNoL1GjoDrjgmSen4QN5QZEGTOe/dsv1sGxWC+Tv/VwUl2GqVtKPZdKtGFqI8TLn
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
Webブラウザーを使用して証明書を取得する
RedmineとGitリポジトリを使用し、Web UIとgitコマンドラインアクセスに同じURLにアクセスします。このように、そのドメインの例外をWebブラウザーに追加する必要がありました。
Firefoxを使用してに移動しOptions -> Advanced -> Certificates -> View Certificates -> Servers
、そこで自己署名ホストを見つけて選択し、Export
ボタンを使用して、を使用して作成したものとまったく同じファイルを取得しましたopenssl
。
注:私は少し驚いた、目に見える言及された当局の名前はありません。これで結構です。
信頼できる証明書を専用ファイルに含める
前の手順では、一部のファイルに証明書が含まれます。そのドメインにアクセスするときにgitから見える限り、どのファイルでもかまいません。使った~/git-certs/cert.pem
注:さらに信頼できる自己署名証明書が必要な場合は、同じファイルに入れてください。
-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
AnOtHeRtRuStEdCeRtIfIcAtEgOeShErExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
これは機能します(ただし、1つの証明書でのみテストしました)。
この証明書を信頼するようにgitを構成する
$ git config --global http.sslCAInfo /home/javl/git-certs/cert.pem
の--system
代わりにを使用して、システム全体に適用することもでき--global
ます。
そして、それをテストします。これで、以下に頼らずにサーバーと通信できるようになります。
$ git config --global http.sslVerify false #NO NEED TO USE THIS
gitですでにssl証明書を無視するように設定している場合は、設定を解除します。
$ git config --global --unset http.sslVerify
また、スペルミスなしに、すべて正しく実行されたことを確認することもできます。
$ git config --global --list
すべての変数をリストする必要があります。グローバルに設定しました。(httpをhttにつづりました)。