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.
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.
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ı
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.