Menjalankan agen dengan sertifikat yang ditandatangani sendiri
Azure DevOps Server 2022 - Azure DevOps Server 2019
Topik ini menjelaskan cara menjalankan agen yang dihost sendiri dengan sertifikat yang ditandatangani sendiri.
Catatan
Artikel ini berlaku untuk agen versi 2.x dan yang lebih baru.
Bekerja dengan sertifikat server SSL
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.
Log diagnostik agen menunjukkan:
[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
Kesalahan ini mungkin menunjukkan sertifikat server yang Anda gunakan di server TFS Anda tidak dipercaya oleh komputer build. Pastikan Anda menginstal sertifikat server ssl yang ditandatangani sendiri ke penyimpanan sertifikat OS.
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
Anda dapat dengan mudah memverifikasi apakah sertifikat telah diinstal dengan benar dengan menjalankan beberapa perintah. Anda harus baik selama jabat tangan SSL selesai dengan benar bahkan Anda mendapatkan 401 untuk permintaan tersebut.
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)
Jika entah bagaimana Anda tidak dapat berhasil menginstal sertifikat ke penyimpanan sertifikat komputer Anda karena berbagai alasan, seperti: Anda tidak memiliki izin atau Anda berada di komputer Linux yang disesuaikan. Agen versi 2.125.0 atau lebih tinggi memiliki kemampuan untuk mengabaikan kesalahan validasi sertifikat server SSL.
Penting
Ini tidak aman dan tidak disarankan, kami sangat menyarankan Anda untuk menginstal sertifikat ke penyimpanan sertifikat komputer Anda.
Teruskan --sslskipcertvalidation
selama konfigurasi agen
./config.cmd/sh --sslskipcertvalidation
Catatan
Ada batasan penggunaan bendera ini di Linux dan macOS
Pustaka libcurl di komputer Linux atau macOS Anda perlu dibuat dengan OpenSSL, Detail Selengkapnya
Git mendapatkan sumber gagal dengan masalah sertifikat SSL (hanya agen Windows)
Kami mengirimkan Git baris perintah sebagai bagian dari agen Windows. Kami menggunakan salinan Git ini untuk semua operasi terkait Git. Ketika Anda memiliki sertifikat SSL yang ditandatangani sendiri untuk server TFS lokal Anda, pastikan untuk mengonfigurasi Git yang kami kirim untuk memungkinkan sertifikat SSL yang ditandatangani sendiri. Ada 2 pendekatan untuk menyelesaikan masalah.
Atur konfigurasi git berikut di tingkat global oleh agen yang dijalankan sebagai pengguna.
git config --global http."https://tfs.com/".sslCAInfo certificate.pem
Catatan
Pengaturan konfigurasi Git tingkat sistem tidak dapat diandalkan di Windows. File .gitconfig sistem disimpan dengan salinan Git yang kami kemas, yang akan diganti setiap kali agen ditingkatkan ke versi baru.
Aktifkan git untuk digunakan
SChannel
selama konfigurasi dengan 2.129.0 atau agen versi yang lebih tinggi Pass--gituseschannel
selama konfigurasi agen./config.cmd --gituseschannel
Catatan
Git SChannel memiliki persyaratan yang lebih terbatas untuk sertifikat yang ditandatangani sendiri. Sertifikat yang dinyanyikan sendiri yang dihasilkan oleh perintah IIS atau PowerShell mungkin tidak mampu dengan SChannel.
Bekerja dengan sertifikat klien SSL
IIS memiliki pengaturan SSL yang memerlukan semua permintaan masuk ke Azure DevOps Server atau TFS harus menunjukkan sertifikat klien selain kredensial reguler.
Ketika pengaturan SSL IIS diaktifkan, Anda perlu menggunakan 2.125.0
atau di atas agen versi dan mengikuti langkah-langkah tambahan ini untuk mengonfigurasi komputer build terhadap server Azure DevOps atau TFS Anda.
Siapkan semua informasi sertifikat yang diperlukan
- Sertifikat CA dalam
.pem
format (Ini harus berisi kunci publik dan tanda tangan sertifikat CA, Anda perlu memasukkan sertifikat ca akar dan semua sertifikat ca perantara Anda ke dalam satu.pem
file) - Sertifikat klien dalam
.pem
format (Ini harus berisi kunci publik dan tanda tangan sertifikat Klien) - Kunci privat sertifikat klien dalam
.pem
format (Ini hanya boleh berisi kunci privat sertifikat Klien) - Paket arsip sertifikat klien dalam
.pfx
format (Ini harus berisi tanda tangan, kunci publik, dan kunci privat sertifikat Klien) - Gunakan
SAME
kata sandi untuk melindungi kunci privat sertifikat Klien dan paket arsip sertifikat Klien, karena keduanya memiliki kunci privat sertifikat klien
- Sertifikat CA dalam
Menginstal sertifikat CA ke penyimpanan sertifikat mesin
- Linux: Penyimpanan sertifikat OpenSSL
- macOS: Sistem atau Rantai Kunci Pengguna
- Windows: Penyimpanan sertifikat Windows
Teruskan
--sslcacert
,--sslclientcert
,--sslclientcertkey
.--sslclientcertarchive
dan--sslclientcertpassword
selama konfigurasi agen..\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
Kata sandi kunci privat sertifikat klien Anda disimpan dengan aman di setiap platform.
Linux: Encrypted with a symmetric key based on the machine ID macOS: macOS Keychain Windows: Windows Credential Store
Pelajari selengkapnya tentang dukungan sertifikat klien agen.