Bu kılavuz, OpenSSL ile çalışırken bir kod imzalama sertifikası için Sertifika İmzalama Talebinin (CSR) nasıl oluşturulduğunu ve daha da önemlisi, bu yaklaşımın artık ne zaman geçerli olmadığını açıklamaktadır. 1 Haziran 2023’ten itibaren kod imzalama anahtarlarına ilişkin kurallar değiştiği için, eski yalnızca yazılım tabanlı OpenSSL iş akışı, Sertifika Yetkilileri tarafından genel olarak güvenilir bir kod imzalama sertifikası için kabul edilmemektedir. Önce aşağıdaki gereksinimi okuyun, ardından anahtarınızın nasıl saklandığına uygun yolu kullanın.
Önemli: kod imzalama anahtarları donanımda bulunmalıdır
CA/Browser Forum Kod İmzalama Temel Gereksinimleri kapsamında, 1 Haziran 2023 tarihinden itibaren geçerli olmak üzere, hem standart (OV) hem de Genişletilmiş Doğrulama (EV) genel olarak güvenilir her kod imzalama sertifikasının özel anahtarı, FIPS 140-2 Seviye 2, Common Criteria EAL4+ veya eşdeğer bir standardı karşılayan bir donanım şifreleme modülünde oluşturulmalı ve saklanmalıdır. Anahtar dışa aktarılamaz olmalıdır. EV kod imzalama her zaman donanım gerektirmiştir; bu kural aynı korumayı standart sertifikalara da genişletmiştir.
Pratik sonuç şudur: bir dizüstü bilgisayarda veya sunucuda yalnızca yazılımla, düz OpenSSL ile oluşturulan bir özel anahtar ve CSR, genel olarak güvenilir bir kod imzalama sertifikası vermek için artık kabul edilmemektedir. Sertifika Yetkilileri bu ürünler için tarayıcı tabanlı anahtar oluşturma ve yazılım CSR’lerini desteklemeyi durdurmuştur. Anahtarınız şu an aşağıdaki yerlerden birinde bulunur:
- Size gönderilen bir donanım belirteci (örneğin bir YubiKey veya SafeNet/Thales eToken). Belirteç + gönderim teslimat yöntemiyle, Sertifika Yetkilisi anahtarı cihazda oluşturur ve CSR işlemini gerçekleştirir; böylece siz OpenSSL ile bir CSR oluşturmazsınız.
- Kontrolünüzde olan bir Donanım Güvenlik Modülü (HSM), şirket içinde veya bulut tabanlı. Burada anahtarı HSM içinde oluşturur ve anahtarın donanımda oluşturulduğunu kanıtlayan bir CSR ile birlikte bir anahtar tasdiki (key attestation) üretirsiniz.
- Anahtarı sizin adınıza uyumlu bir HSM’de tutan bir bulut imzalama hizmeti.
Sertifikayı nasıl alıp saklamayı planladığınıza göre yolunuzu seçin. Genel bir bakış için kod imzalama teslimat yöntemleri kılavuzuna bakın. Donanım destekli CSR ve tasdik adımları için, cihazınıza uygun kılavuzu izleyin:
Farklı bir HSM kullanıyorsanız, anahtarın donanımda kalması için CSR’yi o üreticinin araçlarıyla oluşturun. Aşağıda gösterilen OpenSSL req komutu, OpenSSL bir sağlayıcı veya motor (engine) aracılığıyla HSM’yi yönlendirdiğinde bu iş akışlarında hâlâ bir rol oynar, ancak genel olarak güvenilir bir sertifika için asla düz bir yazılım anahtar dosyasına değil, modülde zaten bulunan bir anahtara referans vermelidir.
Yazılım OpenSSL yönteminin hâlâ geçerli olduğu durumlar
Aşağıdaki yazılım iş akışı diskte bir anahtar dosyası üretir. Bu, genel olarak güvenilir bir kod imzalama sertifikası olmayan durumlar için kabul edilebilir, örneğin:
- Özel/kurumsal bir CA ile iç veya test imzalama, burada genel CA/Browser Forum kuralları değil, kendi politikanız anahtar saklamayı yönetir.
- Bir belirteç veya HSM’ye geçmeden önce OpenSSL komut yapısını öğrenmek.
- Donanım anahtarınıza karşı gerçek CSR’yi oluştururken yeniden kullanacağınız konu (subject) detaylarını ve komut sözdizimini hazırlamak.
Yazılımla oluşturulmuş bir anahtar ve CSR’yi bir OV veya EV kod imzalama sertifikası için genel bir Sertifika Yetkilisine göndermeyin. Reddedilecektir. Bu sınır açıkça belirlendiğine göre, işte OpenSSL süreci ve dahil olan komutlar.
1. OpenSSL’i indirin ve yükleyin
OpenSSL bilgisayarınızda henüz yoksa, işletim sisteminiz için güncel bir sürüm (OpenSSL 3.x veya üzeri) indirin ve yükleyin. macOS ve çoğu Linux dağıtımı OpenSSL’i zaten içerir; Windows’ta ise genellikle üçüncü taraf bir sürüm yüklersiniz. Kurulumu ve sürümü şu şekilde doğrulayın:
openssl version
2. Bir terminal açın ve OpenSSL’i yükleyin
Windows’ta Windows tuşu + R‘ye basın, cmd yazın ve Enter‘a basın. Korumalı klasörlere dosya yazan komutlar için Komut İstemi’ni yönetici olarak çalıştırın: Komut İstemi simgesine sağ tıklayın ve Yönetici olarak çalıştır‘ı seçin. Görev çubuğu aramasına da cmd yazıp Komut İstemi’ni buradan açabilirsiniz. macOS veya Linux’ta terminal uygulamanızı açın.
Windows’ta OpenSSL ikili dosyası sistem yolunuzda değilse, önce kurulum klasörüne geçin; sürümünüze uygun yolu kullanın:
cd OpenSSL-Win32bin
cd "Program FilesOpenSSL-Win64bin"
3. Özel anahtarı ve CSR’yi oluşturun
Önce özel anahtarı oluşturun. Kod imzalama sertifikaları güçlü bir anahtar gerektirir: kod imzalama için yaygın minimum olan RSA 3072 bit (veya daha büyük) bir anahtar kullanın veya P-256 eğrisinde bir ECDSA anahtarı kullanın. RSA 3072 bit bir anahtar oluşturmak için:
openssl genrsa -out code_signing_key.key 3072
Ardından bu anahtardan CSR’yi oluşturun. OpenSSL, mevcut sürümlerde varsayılan olarak talep imzası için SHA-256 kullanır:
openssl req -new -key code_signing_key.key -out code_signing_csr.txt
4. CSR alanlarını doldurun
OpenSSL, sertifika sahibini tanımlayan detayları sorar. Yasal kuruluş kayıtlarınızla eşleşen doğru ve güncel bilgileri girin, çünkü CA bunu doğrular. Örnekleri kendi bilgilerinizle değiştirin:
- Ülke (C): şirketinizin kayıtlı olduğu veya ikamet ettiğiniz ülkenin iki harfli kodu, örneğin US.
- Eyalet veya İl (ST): tam eyalet veya il adı, örneğin California.
- Yer (L): şirketinizin kayıtlı olduğu şehir, örneğin San Jose.
- Kuruluş Adı (O): kuruluşunuzun resmi, yasal adı veya sertifika bir birey içinse tam yasal adınız, örneğin GPI Holding LLC.
- Organizasyon Birimi (OU): sertifikayı talep eden departman, örneğin IT. Bu alan isteğe bağlıdır.
- Ortak Ad (CN): kuruluşunuzun yasal adı veya bireysel bir sertifika için tam adınız. Kod imzalama için Ortak Ad, yayıncı olarak görünen kimliktir.
- E-posta Adresi: geçerli bir iletişim e-posta adresi.
İsteğe bağlı olan meydan okuma parolası ve isteğe bağlı şirket adı alanlarını boş bırakabilirsiniz: bu istemlerde sadece Enter‘a basın.
3. ve 4. adımları tek bir komutta da birleştirebilirsiniz. -subj bayrağı konuyu satır içinde sağlar, böylece OpenSSL sormaz ve -nodes anahtarı diskte şifrelenmemiş olarak bırakır (OpenSSL 3.x bu bayrağın adını -noenc olarak değiştirmiştir, ancak -nodes yine de çalışır). Değerin düz tırnak işareti kullandığına, kıvrık tırnak kullanmadığına ve tüm dizenin bir çift tırnak içine alındığına dikkat edin:
openssl req -new -newkey rsa:3072 -nodes -keyout code_signing_key.key -out code_signing_csr.txt -subj "/C=US/ST=California/L=San Jose/O=GPI Holding LLC/OU=IT/CN=GPI Holding LLC"
5. CSR’yi doğrulayın
Herhangi bir şey göndermeden önce, CSR’nin geçerli olduğunu ve detaylarının doğru olduğunu onaylayın. Bu komut, kodu çözülmüş konuyu yazdırır ve talep imzasını kontrol eder:
openssl req -noout -text -verify -in code_signing_csr.txt
Konu satırının ülke, kuruluş ve ortak adı tam olarak amaçladığınız gibi listelediğini, açık anahtar boyutunun 3072 bit veya daha fazla olduğunu (veya bir ECDSA anahtarı olduğunu) ve imza algoritmasının SHA-256 olduğunu kontrol edin. Ayrıca, CSR’nin eşleşen özel anahtarıyla imzalandığını doğrulayan bir verify OK mesajı görmelisiniz.
6. Özel anahtarı ve CSR’yi güvenli bir dizine taşıyın
Özel anahtarı ve CSR’yi OpenSSL klasöründen kontrol ettiğiniz bir dizine taşıyın. Özel anahtarı gizli tutun ve asla kuruluşunuz dışındaki kimseyle paylaşmayın: onu elinde bulunduran herkes sizin adınıza yazılım imzalayabilir. Windows’ta bir klasör oluşturun ve dosyaları içine taşıyın:
md c:codesigningcertificates
move code_signing_key.key c:codesigningcertificates
move code_signing_csr.txt c:codesigningcertificates
7. CSR’yi CA’nıza gönderin
CSR dosyasını Notepad gibi herhangi bir düz metin düzenleyicide açın ve —–BEGIN CERTIFICATE REQUEST—– ve —–END CERTIFICATE REQUEST—– satırları da dahil olmak üzere tüm içeriğini, sertifika siparişiniz sırasında kayıt formuna kopyalayın. Bir CSR bloğu şöyle görünür:
-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAw...
...base64 encoded request...
-----END CERTIFICATE REQUEST-----
Bu kılavuzun başındaki kuralı unutmayın: genel olarak güvenilir bir kod imzalama sertifikası için, gönderdiğiniz CSR’nin uyumlu donanımda oluşturulmuş ve tutulan bir anahtara karşılık gelmesi gerekir. Yukarıdaki adımlarla bir yazılım anahtarı oluşturduysanız, onu yalnızca iç veya test imzalama için kullanın. Genel bir CA siparişi için, YubiKey veya Luna HSM kılavuzunu kullanarak belirteciniz veya HSM’nizden CSR’yi oluşturun, veya belirteç + gönderim teslimat yöntemini seçtiğinizde anahtarı CA’nın oluşturmasına izin verin.
CSR oluşturmanın ötesinde genel OpenSSL sözdizimi için, OpenSSL komutları referansı yararlı bir yol arkadaşıdır. Daha fazla OpenSSL eğitimi ve kod imzalama eğitimi keşfedebilir, veya CSR oluşturmaya dair başka yöntemleri okuyabilirsiniz.
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

