Aracıyı otomatik olarak imzalanan bir sertifikayla çalıştırma

Azure DevOps Server 2022 - Azure DevOps Server 2019

Bu konuda, otomatik olarak imzalanan bir sertifikayla şirket içinde barındırılan bir aracıyı çalıştırma işlemi açıklanmaktadır.

Not

Bu makale 2.x ve daha yeni aracı sürümleri için geçerlidir.

SSL sunucu sertifikasıyla çalışma

Enter server URL > https://corp.tfs.com/tfs
Enter authentication type (press enter for Integrated) >
Connecting to server ...
An error occurred while sending the request.

Aracı tanılama günlüğü şunları gösterir:

[2017-11-06 20:55:33Z ERR  AgentServer] System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred

Bu hata, TFS sunucunuzda kullandığınız sunucu sertifikasının derleme makinesi tarafından güvenilmediğini gösterebilir. Otomatik olarak imzalanan ssl sunucu sertifikanızı işletim sistemi sertifika deposuna yüklediğinizden emin olun.

Windows: Windows certificate store
Linux: OpenSSL certificate store
macOS: OpenSSL certificate store for agent version 2.124.0 or below
       Keychain for agent version 2.125.0 or above

Birkaç komut çalıştırarak sertifikanın doğru yüklenip yüklenmediğini kolayca doğrulayabilirsiniz. İstek için 401 aldığınızda bile SSL el sıkışması doğru şekilde bittiği sürece iyi olmanız gerekir.

Windows: PowerShell Invoke-WebRequest -Uri https://corp.tfs.com/tfs -UseDefaultCredentials 
Linux: curl -v https://corp.tfs.com/tfs 
macOS: curl -v https://corp.tfs.com/tfs (agent version 2.124.0 or below, curl needs to be built for OpenSSL)
       curl -v https://corp.tfs.com/tfs (agent version 2.125.0 or above, curl needs to be built for Secure Transport)

Bir şekilde, aşağıdakiler gibi çeşitli nedenlerle sertifikayı makinenizin sertifika deposuna başarıyla yükleyemiyorsanız: izniniz yok veya özelleştirilmiş bir Linux makinesindesiniz. Aracı sürüm 2.125.0 veya üzeri, SSL sunucusu sertifika doğrulama hatasını yoksayma özelliğine sahiptir.

Önemli

Bu güvenli değildir ve önerilmez; sertifikayı makine sertifika deponuza yüklemenizi kesinlikle öneririz.

Aracı yapılandırması sırasında geçirme --sslskipcertvalidation

./config.cmd/sh --sslskipcertvalidation

Not

Linux ve macOS'ta bu bayrağı kullanmanın sınırlaması vardır
Linux veya macOS makinenizdeki libcurl kitaplığının OpenSSL ile derlenmesi gerekiyor, Daha Fazla Ayrıntı

Git alma kaynakları SSL sertifika sorunuyla başarısız oluyor (yalnızca Windows aracısı)

Komut satırı Git'i Windows aracısının bir parçası olarak göndeririz. Git'in bu kopyasını Git ile ilgili tüm işlemler için kullanırız. Şirket içi TFS sunucunuz için otomatik olarak imzalanan bir SSL sertifikanız olduğunda, otomatik olarak imzalanan SSL sertifikasına izin vermek için gönderdiğiniz Git'i yapılandırdığınızdan emin olun. Sorunu çözmek için 2 yaklaşım vardır.

  1. Aracının kullanıcı olarak çalıştırdığı genel düzeyde aşağıdaki git yapılandırmasını ayarlayın.

    git config --global http."https://tfs.com/".sslCAInfo certificate.pem
    

    Not

    Windows'ta sistem düzeyinde Git yapılandırmasının ayarlanması güvenilir değildir. Sistem .gitconfig dosyası, aracı yeni bir sürüme yükseltildiğinde değiştirilecek olan paketlediğimiz Git kopyasıyla birlikte depolanır.

  2. Aracı yapılandırması sırasında 2.129.0 veya üzeri sürüm aracısı Pass --gituseschannel ile yapılandırma sırasında git'in kullanılmasını SChannel sağlama

    ./config.cmd --gituseschannel
    

    Not

    Git SChannel,otomatik olarak imzalanan sertifikanız için daha kısıtlayıcı bir gereksinime sahiptir. IIS veya PowerShell komutu tarafından oluşturulan kendi kendine oluşturulan sertifika SChannel ile uyumlu olmayabilir.

SSL istemci sertifikasıyla çalışma

IIS,Azure DevOps Server veya TFS'ye gelen tüm isteklerin normal kimlik bilgilerine ek olarak istemci sertifikası sunması gereken bir SSL ayarına sahiptir.

Bu IIS SSL ayarı etkinleştirildiğinde, derleme makinesini Azure DevOps veya TFS sunucunuza göre yapılandırmak için veya daha üst sürüm aracısını kullanmanız 2.125.0 ve bu ek adımları izlemeniz gerekir.

  • Tüm gerekli sertifika bilgilerini hazırlama

    • CA sertifikaları .pem biçiminde (Bu, CA sertifikasının ortak anahtarını ve imzasını içermelidir, kök ca sertifikanızı ve tüm ara ca sertifikalarınızı tek bir .pem dosyaya yerleştirmeniz gerekir)
    • İstemci sertifikası biçiminde .pem (Bu, ortak anahtarı ve İstemci sertifikasının imzasını içermelidir)
    • İstemci sertifikası özel anahtarı biçiminde .pem (Bu yalnızca İstemci sertifikasının özel anahtarını içermelidir)
    • İstemci sertifikası arşiv paketi biçiminde .pfx (bu, İstemci sertifikasının imzasını, ortak anahtarını ve özel anahtarını içermelidir)
    • her ikisi de istemci sertifikasının özel anahtarına sahip olduğundan, İstemci sertifikası özel anahtarını ve İstemci sertifikası arşiv paketini korumak için parola kullanın SAME
  • CA sertifikalarını makine sertifika deposuna yükleme

    • Linux: OpenSSL sertifika deposu
    • macOS: Sistem veya Kullanıcı Anahtar Zinciri
    • Windows: Windows sertifika deposu
  • , --sslcacert, --sslclientcert--sslclientcertkey. --sslclientcertarchive ve --sslclientcertpassword aracı yapılandırması sırasında.

    .\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
    

    İstemci sertifikası özel anahtar parolanız her platformda güvenli bir şekilde depolanır.

    Linux: Encrypted with a symmetric key based on the machine ID
    macOS: macOS Keychain
    Windows: Windows Credential Store
    

Aracı istemci sertifikası desteği hakkında daha fazla bilgi edinin.