bg-tutorials

macOS’ta Keychain Access ile Code Signing Sertifikası için CSR Nasıl Oluşturulur

Keychain Access hala her Mac’te bulunuyor ve Certificate Assistant aracı hala sertifika imzalama istekleri oluşturuyor. Bu isteğin kod imzalama için işe yarayıp yaramayacağı tamamen hangi sertifikayı sipariş ettiğinize bağlıdır. Mac App Store dışında Mac yazılımı dağıtmanızı sağlayan Apple Developer ID sertifikası için Keychain Access doğru araçtır ve aşağıdaki adımlar güncelliğini korumaktadır. Windows çalıştırılabilir dosyalarını, yükleyicileri, sürücüleri ve Java uygulamalarını imzalamak için kullanılan türden, genel bir Sertifika Otoritesinden alınan ticari kod imzalama sertifikası için ise Keychain Access’te oluşturulan bir istek 1 Haziran 2023’ten bu yana kabul edilmemektedir, çünkü özel anahtarın artık donanım üzerinde oluşturulması gerekmektedir.

Önce iki seçenekten hangisine ihtiyacınız olduğunu belirleyin, ardından ilgili bölümü takip edin.

Aslında hangi kod imzalama sertifikasını alıyorsunuz?

Her iki ürün de kod imzalama sertifikası olarak adlandırılır ve her ikisi de bir yazılım parçasını kimin yayınladığını kanıtlar, ancak farklı ihraç edenlerden gelirler ve farklı kurallara tabidirler. Okuyucular bu sayfaya geliyor çünkü Apple ve genel Sertifika Otoriteleri iki farklı şey için aynı sözcükleri kullanıyor.

  • Apple Developer ID sertifikası. Apple Developer Program üyelerine, Apple’ın kendi Developer ID Sertifikasyon Otoritesi altında Apple tarafından verilir. Kendinizin dağıttığı Mac uygulamalarını, eklentileri ve yükleyici paketlerini imzalar, böylece macOS Gatekeeper sizi tanımlanmış bir geliştirici olarak tanır. Anahtar çifti Mac’inizde oluşturulur ve giriş anahtarlığınızda kalır, isteği ise Keychain Access’te siz oluşturursunuz.
  • Kamuya güvenilir kod imzalama sertifikası. Sectigo, DigiCert veya GlobalSign gibi genel bir Sertifika Otoritesinden satın alınır. Windows çalıştırılabilir dosyalarını, MSI yükleyicilerini, sürücüleri, PowerShell betiklerini ve Java uygulamalarını imzalar. Özel anahtarın sertifikalı donanım üzerinde oluşturulmasını ve orada kalmasını zorunlu kılan CA/Browser Forum Kod İmzalama Temel Gereksinimleri tarafından yönetilir, dolayısıyla burada Keychain Access’in yapacağı bir şey yoktur.

Kısa karar kuralı şu şekildedir: imzaladığınız yazılım macOS üzerinde çalışıyorsa ve bunu Mac App Store dışında dağıtıyorsanız, bir Developer ID sertifikasına ihtiyacınız vardır. Windows için herhangi bir şey imzalıyorsanız veya bir Java uygulaması imzalıyorsanız, bunu bir Mac’te derlemiş olsanız bile ticari bir kod imzalama sertifikasına ihtiyacınız vardır. Bunların hiçbiri bir SSL/TLS sertifikası değildir. Aslında istediğiniz bir Mac sunucusunda HTTPS ise, bunun yerine macOS Sunucularında CSR nasıl oluşturulur rehberini takip edin.

Ticari yol: Keychain yöntemi neden artık geçerli değil

1 Haziran 2023‘ten bu yana, CA/Browser Forum Kod İmzalama Temel Gereksinimleri, standart (OV) ve Genişletilmiş Doğrulama (EV) sertifikalar dahil olmak üzere kamuya güvenilir her kod imzalama sertifikası için özel anahtarın FIPS 140-2 Level 2, Common Criteria EAL4+ veya eşdeğer bir standardı karşılayan bir donanım kripto modülünde oluşturulmasını ve saklanmasını, ayrıca dışa aktarılamaz olmasını zorunlu kılmaktadır. EV kod imzalama zaten donanım gerektiriyordu; 2023 değişikliği aynı kuralı standart sertifikalara da genişletti.

Certificate Assistant tarafından oluşturulan bir anahtar bu testte üç ayrı nedenden dolayı tasarım gereği başarısız olur:

  • Anahtar, dışa aktarılabilir yazılım anahtar malzemesidir. Giriş anahtarlığınıza yazılır ve onu seçip .p12 dosyası olarak dışa aktarabilirsiniz. Bu taşınabilirlik Apple geliştirme için uygundur ve donanım gerekliliğinin ortadan kaldırmayı amaçladığı özelliğin tam olarak kendisidir.
  • Anahtar boyutu uyumlu değildir. Temel Gereksinimler kod imzalama için minimum RSA 3072 bit belirler, ancak Certificate Assistant’ın Key Size menüsünde 3072 seçeneği yoktur.
  • İstek neredeyse hiç kimlik bilgisi taşımaz. Certificate Assistant yalnızca bir Common Name ve e-posta adresleri ister. Bir Sertifika Otoritesinin kuruluş doğrulamalı bir kod imzalama sertifikası için doğruladığı kuruluş, yerleşim yeri, eyalet veya ülke bilgilerini girecek bir yer yoktur.

Bu durumda kamuya güvenilir bir kod imzalama sertifikası edinmek için geçerli iki yol kalır ve hangisini kullanacağınız sipariş verirken belirlenir:

  • Token artı gönderim. Sertifika Otoritesi anahtar çiftini ve isteği kendi tarafında sertifikalı bir USB token üzerinde oluşturur, verilen sertifikayı bu tokene yükler ve tokeni size postalar. Sizin oluşturmanız veya herhangi bir yere yapıştırmanız gereken bir CSR yoktur. Bkz. hangi kod imzalama sertifikası teslim yöntemi seçilmeli.
  • Kendi donanım tokeninizle, HSM veya bulut HSM ile, tasdik belgesiyle. Anahtarı cihaz içinde oluşturur, isteği orada üretir ve anahtarın uyumlu donanım üzerinde oluşturulduğunu ve dışa aktarılamayacağını kanıtlayan bir tasdik dosyası sunarsınız. YubiKey 5 FIPS CSR oluşturma ve tasdik rehberini veya Luna Network Attached HSM v7.x CSR ve tasdik rehberini ya da HSM sağlayıcınızın kendi belgelerini takip edin.

Zaten yürürlüğe girmiş bir değişiklik daha var: CSC-31 oylaması, 1 Mart 2026‘dan itibaren verilen sertifikalar için kamuya güvenilir kod imzalama sertifikalarının maksimum geçerlilik süresini 39 aydan 460 güne düşürdü, bu nedenle yenilemeler artık yaklaşık her 15 ayda bir gündeme geliyor. Daha geniş bir bakış için bkz. kod imzalama sertifikası için CSR nasıl oluşturulur ve aynı rehberin OpenSSL versiyonu.

Apple Developer ID sertifikası için Keychain Access’te CSR oluşturun

Zaten bir .certSigningRequest dosyası kaydettiyseniz, onu geliştirici hesabınızda gönderme bölümüne atlayabilirsiniz.

Başlamadan önce kontrol edilmesi gereken iki şey var. Bir Apple Developer Program üyeliğine ihtiyacınız var ve Apple, bir Developer ID sertifikası oluşturmak için Account Holder rolünü gerektiriyor. Ayrıca ekip başına beş Developer ID Application sertifikasına ve beş Developer ID Installer sertifikasına kadar izin verilir. Portal, her sertifika oluşturduğunuzda bir istek yüklemenizi ister, bu yüzden bu süreci her sertifika için bir kez çalıştırın.

Adım 1: Keychain Access’i açın ve isteği başlatın

Keychain Access artık çoğu eğitimin belirttiği yerde değil. macOS Sonoma’ya kadar Applications > Utilities içinde bulunuyordu. macOS Sequoia‘dan itibaren Apple onu, Finder’ın Applications’a göz atarken göstermediği bir sistem klasörü olan /System/Library/CoreServices/Applications/ içine taşıdı, bu nedenle artık Utilities altına bakmak hiçbir sonuç vermiyor. Onu açmanın en hızlı yolları Spotlight (Command-Space tuşuna basın ve Keychain Access yazın) veya Terminal’de tek bir komuttur:

open "/System/Library/CoreServices/Applications/Keychain Access.app"

Uygulama açıkken, menü çubuğundan Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority seçeneğini seçin.

Bunu yapmadan önce, hiçbir şey seçili olmayacak şekilde öğe listesinde boş bir alana tıklayın. Bir anahtar veya sertifika seçiliyse, menü öğesi Request a Certificate From a Certificate Authority With ve ardından o öğenin adı şeklinde değişir ve yeni bir çift oluşturmak yerine isteği mevcut anahtar etrafında oluşturur. Bu, kasıtlı olarak bir anahtarı yeniden kullanmak istediğinizde faydalıdır, ancak istemediğinizde kafa karıştırıcıdır.

Certificate Assistant üzerinde açık olan Keychain Access menüsü, Request a Certificate From a Certificate Authority seçeneği vurgulanmış şekilde

Adım 2: Certificate Information penceresini doldurun

Certificate Assistant, Certificate Information başlıklı bir bölmede açılır. Çok az şey ister:

  • User Email Address: Apple Developer hesabınızdaki e-posta adresi.
  • Common Name: anahtar çifti için bir etiket, örneğin Developer ID Application Key. Bu, sertifikada sonunda görünecek isim değildir. Apple, verilen sertifikanın konusunu ekibinizden Developer ID Application: Your Team Name (TEAMID) biçiminde oluşturur, bu yüzden bu alanı kendi referansınız olarak düşünün.
  • CA Email Address: boş bırakın. Bu yalnızca diğer teslim seçeneği tarafından kullanılır.
  • Request is: Emailed to the CA değil, Saved to disk seçeneğini seçin. Apple’ın geliştirici portalı yüklenmiş bir dosya alır.

Anahtar boyutunu veya algoritmasını da seçmek istiyorsanız, burada Let me specify key pair information kutusunu işaretleyin. Ardından Continue düğmesine tıklayın.

Certificate Assistant'ta User Email Address, Common Name ve CA Email Address alanlarını gösteren, Saved to disk seçeneğinin seçili olduğu Certificate Information bölmesi

Adım 3: Gerekirse anahtar çifti ayarlarını seçin

Bu bölme yalnızca 2. adımda kutuyu işaretlediyseniz görünür ve bir Developer ID sertifikası için genellikle bunu atlayabilirsiniz. Varsayılan ayarlar Apple’ın kendi talimatlarında kullanılan 2048 bit boyutundaki RSA‘dır. RSA seçiliyken, Key Size menüsü 2048, 4096 ve 8192 bit seçenekleri sunar. Algorithm menüsü RSA ve ECC seçeneklerini sunar ve ECC’ye geçmek bu boyutları 256, 384 ve 521 bit ile değiştirir. Kaydolduğunuz hizmet özellikle bir eliptik eğri anahtarı istemedikçe algoritmayı RSA olarak bırakın.

Bu rehberin önceki sürümleri size bu noktada en az 3072 bit seçmenizi söylüyordu. Bu rakam ticari kod imzalama sertifikaları için CA/Browser Forum minimumudur. Developer ID için geçerli değildir ve bu menüde sunulmaz, dolayısıyla seçilecek bir şey yoktur. Continue düğmesine tıklayın.

Certificate Assistant'ta Key Size ve Algorithm menülerini gösteren Specify Key Pair Information bölmesi

Adım 4: İsteği kaydedin ve içeriğini kontrol edin

Dosyayı nereye kaydedeceğinizi seçin ve Save düğmesine tıklayın. .certSigningRequest uzantılı bir dosya elde edersiniz ve Certificate Assistant ayrıca eşleşen anahtar çiftini giriş anahtarlığınıza yerleştirir. Dosyanın kendisi sıradan PEM metnidir, bu yüzden onu TextEdit’te açıp okuyabilirsiniz, ancak kodlanmış blok tek başına size çok fazla bilgi vermez.

TextEdit'te açık bir sertifika imzalama isteği dosyası, kodlanmış blok etrafında BEGIN ve END CERTIFICATE REQUEST işaretlerini gösteriyor

Yüklemeden önce ayrıntıları doğrulamak için, isteği Terminal’de çözümleyin. Bu, macOS’te zaten bulunan openssl komutuyla çalışır, ki bu aslında OpenSSL’in kendisi değil LibreSSL’dir, dolayısıyla kurulacak bir şey yoktur:

openssl req -noout -text -in CertificateSigningRequest.certSigningRequest

Çıktıda üç şeyi kontrol edin: Subject satırı yazdığınız Common Name ve e-posta adresini gösteriyor mu, açık anahtar satırı 2048 bit (veya seçtiğiniz herhangi bir boyutu) bildiriyor mu ve imza algoritması SHA-256 mı. Terminal kullanmak istemiyorsanız, aynı alanları okumak için dosyanın içeriğini CSR çözücümüze yapıştırın.

Adım 5: İsteği gönderin ve sertifikayı kurun

Apple Developer hesabınıza giriş yapın ve Certificates, Identifiers & Profiles bölümünü açın. Kenar çubuğunda Certificates seçeneğine, ardından ekle düğmesine tıklayın ve Software altında Developer ID seçeneğini seçin. İhtiyacınız olan türü seçin:

  • Developer ID Application bir Mac uygulamasını, eklentisini veya paketini imzalar.
  • Developer ID Installer imzalanmış uygulamanızı içeren bir Mac yükleyici paketini imzalar.

Continue düğmesine, ardından Choose File düğmesine tıklayın, .certSigningRequest dosyanızı seçin, tekrar Continue düğmesine tıklayın ve Download düğmesine tıklayın. Apple, .cer uzantılı bir sertifika dosyası döndürür. Kurmak için üzerine çift tıklayın; 4. adımda oluşturulan özel anahtarla eşleştirilmiş olarak Keychain Access’te My Certificates altında görünecektir.

Sertifikayla imzalamak, macOS’in kontrol ettiği şeyin yalnızca yarısıdır. Gatekeeper, Mac App Store dışından indirilen yazılımların bir Developer ID sertifikasıyla imzalanmasını ve Apple tarafından noter onaylı (notarized) olmasını bekler, bu yüzden dağıtmadan önce imzalanmış derlemeyi noter onayı için gönderin. Noter onayı imzanın yerine geçmez, onun üzerine eklenir.

Özel anahtarı bulun ve yedekleyin

Sertifika, Certificate Assistant’ın oluşturduğu özel anahtar olmadan değersizdir ve bu anahtar siz onu kopyalayana kadar tam olarak bir yerde bulunur. Bulmak için Keychain Access’i açın, login anahtarlığını, ardından Keys kategorisini seçin ve 2. adımda yazdığınız Common Name’i arayın. Bu isim altında iki girdi göreceksiniz: bir açık anahtar ve bir özel anahtar. Açık anahtarın CSR’ınız olmadığını unutmayın: CSR, diske kaydettiğiniz .certSigningRequest dosyasıdır.

Keychain Access, login anahtarlığında Certificate Assistant tarafından oluşturulan açık anahtar ve özel anahtar çiftini gösteriyor

.cer dosyası kurulduktan sonra, bunun yerine My Certificates altına bakın. Orada sertifika ve özel anahtarı, codesign, Xcode ve derleme betiklerinizin kullandığı imzalama kimliği olan tek bir girdi olarak görünür. Bu kimliği başka bir Mac’e veya bir derleme sunucusuna taşımak için, girdiye sağ tıklayıp Export seçeneğini seçin; bu, sizin belirlediğiniz bir parolayla korunan bir .p12 dosyası üretir. Bu dosyayı herhangi bir imzalama anahtarını saklayacağınız gibi saklayın, çünkü onu ve parolayı elinde bulunduran herkes sizin adınıza yazılım imzalayabilir.

Buna ihtiyaç duymadan önce yedekleyin. Developer ID sertifikaları beş yıl geçerlidir ve yenilenemez: biri süresi dolduğunda yerine yenisini oluşturursunuz. Özel anahtarı kaybederseniz, sertifika bir daha asla kullanılamaz ve başka bir tane oluşturmanız gerekir, bu da beş Developer ID Application veya beş Developer ID Installer yuvanızdan birini kullanır. Düzenlemek için ölü olanı iptal etme isteğine karşı direnin. Apple, iptal edilmiş bir Developer ID sertifikasıyla imzalanmış bir uygulamanın kurulmayacağını ve halihazırda ona sahip olan bir kullanıcı için başlatılmayacağını açıkça belirtir, dolayısıyla iptal etmek zaten dışarıda olan her kopyayı bozar. Yalnızca anahtar gerçekten çalındıysa iptal edin ve bunun bozulmaya yol açacağını beklemeniz gerekir.

Ticari bir sertifika için buraya gelen herkes için bir ev işi notu: bir genel Sertifika Otoritesi siparişi için zaten Keychain Access’te bir anahtar çifti oluşturduysanız, bu kullanılamaz ve hiçbir CA onu kabul etmez. Onu olduğu yerde bırakırsanız hiçbir şey bozulmaz, ancak dışa aktarılabilir imzalama anahtarı malzemesini bir anahtarlıkta tutmanın pek bir nedeni yoktur. Keys altında hem açık hem de özel anahtarı seçin ve silin, ardından bunun yerine bir token veya HSM üzerinden sipariş verin.

Sıkça Sorulan Sorular

Keychain Access ile hala bir kod imzalama CSR’ı oluşturabilir miyim?

Bir Apple Developer ID sertifikası için evet, ve bu Apple’ın belgelediği yöntemdir. Ticari bir Sertifika Otoritesinden alınan kamuya güvenilir bir kod imzalama sertifikası için hayır. 1 Haziran 2023’ten bu yana bu özel anahtarların FIPS 140-2 Level 2, Common Criteria EAL4+ veya eşdeğer bir standardı karşılayan bir donanım kripto modülünde oluşturulması ve saklanması gerekmektedir; Keychain Access’te oluşturulan bir anahtar ise dışa aktarılabilir yazılım anahtar malzemesidir.

Güncel macOS’te Keychain Access nerede bulunur?

/System/Library/CoreServices/Applications/ içinde. Apple onu macOS Sequoia’da oraya taşıdı, dolayısıyla artık Applications > Utilities içinde değil ve Finder’da Applications’a göz atarken görünmüyor. Onu Spotlight ile açın veya Terminal’de open "/System/Library/CoreServices/Applications/Keychain Access.app" komutunu çalıştırın. Onunla birlikte tanıtılan ayrı Passwords uygulaması yalnızca parolaları yönetir, sertifikaları ve anahtarları değil.

Certificate Assistant’ta hangi anahtar boyutunu seçmeliyim?

Bir Developer ID sertifikası için varsayılan olan RSA 2048 bit, dolayısıyla Let me specify key pair information kutusunu işaretsiz bırakabilirsiniz. RSA seçiliyken, Key Size menüsü 2048, 4096 ve 8192 bit seçenekleri sunar ve ECC’ye geçmek bunları 256, 384 ve 521 bit ile değiştirir. Hiçbir ayarda ticari kod imzalama sertifikaları için CA/Browser Forum minimumu olan 3072 bit sunulmaz ve bu, bu yolun ticari bir sipariş için uygun olmamasının birkaç nedeninden biridir.

Certificate Assistant neden şirket adımı, şehrimi veya ülkemi sormuyor?

Çünkü oluşturduğu istek yalnızca bir Common Name ve e-posta adresleri taşır. Apple’ın daha fazlasına ihtiyacı yoktur: bir Developer ID sertifikasının konusunu geliştirici hesabınızdan doldurur. Ticari bir Sertifika Otoritesi ise kuruluş bilgilerine ihtiyaç duyar ve bunları kamuya açık kayıtlara göre doğrular, ki bu da bir Keychain isteğinin bu sipariş için yanlış biçimde olmasının bir başka nedenidir.

Apple Developer ID sertifikası için bir donanım tokenine ihtiyacım var mı?

Hayır. CA/Browser Forum donanım kuralı, ticari Sertifika Otoriteleri tarafından verilen kamuya güvenilir kod imzalama sertifikaları için geçerlidir. Developer ID sertifikaları, Apple Developer Program üyelerine Apple’ın kendi sertifika otoritesi tarafından verilir ve anahtar, yukarıda açıklandığı şekilde Certificate Assistant tarafından giriş anahtarlığınızda oluşturulur.

Developer ID Application ve Developer ID Installer için ayrı bir CSR’a ihtiyacım var mı?

Her biri için bir tane oluşturun. Geliştirici portalı her sertifika oluşturmada bir sertifika imzalama isteği yüklemenizi ister ve her kimliğe kendi anahtar çiftini vermek, birini değiştirmenin veya iptal etmenin diğeriyle imzalanmış yazılımı etkilemeden bırakması anlamına gelir. Her isteğe daha sonra Keychain Access’te ayırt edebileceğiniz bir Common Name verin.

CSR’ı kaydettim ama özel anahtarı bulamıyorum. Ne yanlış gitti?

Dosya adı yerine yazdığınız Common Name’i arayarak login anahtarlığının Keys kategorisini kontrol edin. Eğer gerçekten yoksa, olağan nedenler anahtar çiftinin farklı bir Mac’te veya farklı bir kullanıcı hesabı altında oluşturulmuş olması, anahtarlık öğesinin silinmiş olması veya isteğin menü öğesinin Request a Certificate From a Certificate Authority With varyantıyla mevcut bir anahtardan oluşturulmuş olmasıdır. Özel anahtar olmadan istek kullanılamaz, bu yüzden yeni bir tane oluşturun.

Bir kod imzalama sertifikası ne kadar süre geçerlidir?

1 Mart 2026’dan itibaren verilen kamuya güvenilir kod imzalama sertifikaları, CA/Browser Forum CSC-31 oylamasıyla 39 aydan düşürülerek 460 gün ile sınırlandırılmıştır. Apple Developer ID sertifikaları beş yıl geçerlidir ve yenilenmek yerine değiştirilir. Her iki durumda da, sertifika geçerliyken imzaladığınız yazılım, imza zaman damgalıysa süresi dolduktan sonra da çalışmaya devam eder. Apple bir istisna uygular: bir yükleyici paketi çalıştığı anda Developer ID Installer sertifikasını kontrol eder, bu yüzden içindeki uygulama etkilenmese bile o sertifika süresi dolduğunda bir .pkg dosyasının yeniden imzalanması gerekir.

İlgili okumalar için, kod imzalama eğitimlerimize, CSR oluşturmanın diğer yollarına ve bir kod imzalama sertifikası kullanarak bir EXE dosyası nasıl imzalanır rehberine göz atın.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.