SSL Sertifikası

Jenkins Pipeline Kod İmzalama

Jenkins ile kod imzalamada ayrılmış ajan, Credentials ile parmak izi yönetimi ve etiketli sürümlerde imzalayan örnek bir Jenkinsfile.

Jenkins, kod imzalama için en esnek ama en kolay yanlış yapılandırılan CI araçlarından biridir; çünkü imzalama kimlik bilgileri ve ajanlar üzerinde tam kontrol sizdedir. Doğru kurgu, imzalama işini yalnızca etiketli sürümlerde ve ayrılmış bir ajan üzerinde çalıştırmaktır.

Ön koşullar

  • Windows ajanında Windows SDK içindeki signtool.exe kurulu olmalı.
  • Sertifika anahtarı token, akıllı kart veya HSM üzerinde olmalı; ajan etiketi örneğin signing olarak verilmeli.
  • Token PIN'i veya parolası Jenkins Credentials deposunda tutulmalı, Jenkinsfile içine yazılmamalı.

Declarative Pipeline örneği

pipeline {
  agent { label 'windows && signing' }
  stages {
    stage('Build') {
      steps { bat 'dotnet publish -c Release -o out' }
    }
    stage('Sign') {
      when { buildingTag() }
      steps {
        withCredentials([string(credentialsId: 'codesign-thumbprint', variable: 'THUMB')]) {
          bat 'signtool sign /sha1 %THUMB% /fd SHA256 /tr http://time.certum.pl /td SHA256 out\\app.exe'
        }
        bat 'signtool verify /pa /v out\\app.exe'
      }
    }
  }
  post { always { cleanWs() } }
}

withCredentials değeri log'larda maskelenir; yine de echo ile yazdırmayın. PIN gerektiren kurulumlarda, token yazılımının önbelleğe alma ayarını kullanmak ya da imzalama sunucusunu kullanıcı oturumu açık bir servis hesabıyla çalıştırmak gerekebilir; ayrıntı token üreticisine bağlıdır.

Güvenlik

  1. Jenkinsfile'ı değiştirebilenleri sınırlayın; imzalama aşamasını yalnızca korumalı dalda çalıştırın.
  2. Ajan çalışma alanını iş sonunda temizleyin.
  3. Jenkins erişim loglarını ve kimlik bilgisi kullanımını düzenli gözden geçirin.
  4. Bulut HSM kullanıyorsanız Certum bulut kod imzalama akışında anahtar dışarı çıkmaz.

Sertifika seçimi ve EV/OV farkı için kod imzalama sertifikaları sayfasına bakabilirsiniz. Kural basit: derleme herkesin, imza yalnızca yetkili hattın işidir.

Hata ayıklama

Ajan servis hesabı olarak çalışıyorsa token PIN penceresi açılamayabilir ve imzalama sessizce takılabilir; bu durumda token yazılımının PIN önbelleği ayarlarını inceleyin veya ajanı etkileşimli oturumda çalıştırın. Hata mesajında sertifikanın bulunamadığı yazıyorsa, sertifikanın hangi kullanıcı mağazasında olduğunu certutil -store My ile kontrol edin. Pipeline günlüklerini kısa süre saklayın ve içinde hassas bilgi kalmadığını denetleyin.

  • Jenkins eklentilerini güncel tutun.
  • Yönetici erişimini ve kimlik bilgisi düzenlemelerini sınırlayın.

Bu makale faydalı oldu mu?

Bu konuyla ilgili SSL sertifikaları

Makalede geçen sertifika türlerine uygun ürünler.

Makale Ara

Kod İmzalama Sertifikaları

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç