SORU
30 Ocak 2012, PAZARTESİ


özel kabul etmek için otomatik olarak imzalanan belirli bir https sunucu sertifikası uzaktan yapılandırmak Git

Sysadmin için bir proje ben üzerinde karar SSH "zahmet"; bunun yerine, o her yere Gıt erişilebilir) https:// URL (kullanıcı adı/parola kimlik doğrulaması). Bu URL için sunucu otomatik olarak imzalanan bir sertifika sunar, herkes sertifika doğrulama devre dışı bırakmak için tavsiye etti. Bu iyi bir kur olarak bana, güvenlik-bilge grev değil.

Uzaktan X (veya daha iyisi, https://$SERVERNAME/ ile başlayacak olan bir depo içinde herhangi bir uzak) için özel bir sertifika kabul için Gıt söylemek mümkünsadecebu sertifika? Temelde mükerrer SSH server-anahtar davranış.

CEVAP
14 Mayıs 2013, Salı


Kısaca:

  1. kendi kendine imzalanan sertifika almak
  2. bazı (/ör ~git-certs/cert.içine koy pem) dosya
  3. git bu sertifika, http kullanarak güven için ayarlayın.sslCAİnfo parametre.

Daha fazla bilgi:

Kendini uzak sunucu sertifikası imzalandı

Varsayarsak, sunucu url repos.sample.com ve erişmek için 443 bağlantı istiyorum.

Nasıl birden çok seçenek var.

openssl kullanarak bence

$ openssl s_client -connect repos.sample.com:443

Bir dosya cert.pem ve arasında tümünü sil ama bir kısmı (da) içine çıktı -BEGIN CERTIFICATE- -END CERTIFICATE- yakalamak

Sonuç dosya içeriği ~/git-certs/cert.pem bu gibi görünebilir:

-----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 tarayıcınızı kullanarak bence

Git repo ve ben gıt için web UI için ve aynı url erişim komut satırı erişimi olan redmine kullanıyorum. Bu şekilde, web tarayıcı, etki alanı için bir özel durum eklemek zorunda kaldım.

Firefox kullanıyorsanız, Options -> Advanced -> Certificates -> View Certificates -> Servers, orada bulunan selfsigned ana, openssl kullanılarak oluşturulan olarak seçilen ve aynı dosya var Export düğmesini kullanarak gittim.

Biraz şaşırdım, otorite gözle görülür bir şekilde bahsedilen bir isim yok. not: Bu gayet iyi.

Özel dosya güvenilen sertifika sahibi olmak

Önceki adımlar bazı dosya sertifika zorunda kalmasına neden olacaktır. Bu etki erişirken senin gıt görünür olduğu sürece bu dosya ne önemli değil. ~/git-certs/cert.pem kullandım

Not: Eğer daha güvenilir selfsigned sertifikaları ihtiyacınız Varsa, aynı dosya içine koymak:

-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
AnOtHeRtRuStEdCeRtIfIcAtEgOeShErExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----

Bu işe (ama test ettim tek tek sertifika ile) olacaktır.

Yapılandırma bu sertifikaya güvenmek için git

$ git config --global http.sslCAInfo /home/javl/git-certs/cert.pem

Ayrıca bu sistem geniş, --global yerine --system kullanarak yapabilirsiniz.

Test edin: şimdi başvurmadan: sunucu ile iletişim kurmak mümkün olacaktır

$ git config --global http.sslVerify false #NO NEED TO USE THIS

Eğer zaten ssl sertifikaları cehalet için gıt ayarlamak, ayarlama:

$ git config --global --unset http.sslVerify

ve de hepsi doğru, yazım hataları olmadan yaptığını kontrol edebilirsiniz:

$ git config --global --list

tüm değişkenleri listesinde, küresel olarak belirledik. (Htt http ben yanlış).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012