bg-tutorials

Apache’de CSR Nasıl Oluşturulur

Bu eğitim, Apache HTTP Server’ı çalıştıran aynı sunucuda OpenSSL komut satırını kullanarak Apache üzerinde nasıl CSR oluşturulacağını gösterir. Tek bir komutla iki dosya oluşturacaksınız: yeni bir özel anahtar ve Sertifika Yetkilinize (CA) göndereceğiniz eşleşen CSR (Sertifika İmzalama Talebi).

Aşağıdaki adımlar, Apache’yi barındıran her modern Linux dağıtımında (Ubuntu, Debian, RHEL, AlmaLinux, Rocky Linux, Amazon Linux 2023) çalışır, çünkü her biri OpenSSL 1.1.1 veya OpenSSL 3.x ile birlikte gelir. Her iki sürüm de talebi varsayılan olarak SHA-256 ile imzalar, bu nedenle bir özet (digest) bayrağı eklemenize gerek yoktur. Aynı komut FreeBSD ve Apache içeren macOS üzerinde de çalışır.

Adım 1: Apache sunucunuza bağlanın

macOS veya Linux’ta Terminal’i, Windows’ta ise PowerShell veya Windows Terminal’i açın ve SSH üzerinden sunucuya bağlanın. Kullanıcı adını ve ana bilgisayarı kendi bilgilerinizle değiştirin:

ssh your-user@your-apache-server

CSR’yi sertifikayı barındıracak aynı sunucuda oluşturun. Özel anahtar CSR ile birlikte oluşturulur ve o sunucuda kalmalıdır; bu nedenle komutu dizüstü bilgisayarınızda çalıştırıp ardından anahtarı ortalıkta kopyalamak amacı boşa çıkarır. Ayrıca işlemi daha sonra tekrar bulabileceğiniz özel bir dizinde yapmak isteyebilirsiniz, örneğin:

sudo mkdir -p /etc/ssl/yourdomain
cd /etc/ssl/yourdomain

Adım 2: Özel anahtarı ve CSR’yi oluşturun

CSR’nizi başka bir araçla zaten oluşturduysanız, Apache’ye sertifika yükleme bölümüne geçin.

Aşağıdaki OpenSSL komutunu çalıştırın. Bu komut, tek bir adımda 2048 bit RSA anahtarı ve bir CSR oluşturur; konu (subject) ve Alternatif Konu Adları (SAN’lar) doğrudan komut içinde sağlanır, böylece OpenSSL soru sormak için durmaz:

openssl req -new -newkey rsa:2048 -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

Her bölümün ne işe yaradığı:

  • -newkey rsa:2048 yeni bir 2048 bit RSA anahtarı oluşturur. 2048 bit, genel sertifikalar için geçerli minimum değerdir; daha büyük bir anahtar için rsa:4096 kullanabilir veya ECDSA’ya geçebilirsiniz (aşağıya bakın).
  • -nodes özel anahtarı şifrelenmemiş bırakır, böylece Apache başlangıçta parola istemeden onu okuyabilir.
  • -keyout ve -out özel anahtar ve CSR dosyalarını adlandırır.
  • -subj sertifika konusunu (subject) sağlar. Buraya yer tutucular değil, gerçek şirket adınızı, eyaletinizi ve şehrinizi yazın. CN (Ortak Ad – Common Name) birincil alan adınızdır.
  • -addext “subjectAltName=…” sertifikanın kapsaması gereken tüm ana bilgisayar adlarını listeler. Genel CA’lar SAN listesine göre doğrulama yapar, bu nedenle Ortak Adı da buraya ekleyin.

yourdomain.com‘u her yerde gerçek alan adınızla değiştirin. Ekstra ana bilgisayar adlarını kapsamak için, bunları virgülle ayırarak SAN listesine ekleyin, örneğin DNS:api.yourdomain.com. Joker karakter (wildcard) sertifikası için, hem joker karakteri hem de düz alan adını dahil edin: DNS:*.yourdomain.com,DNS:yourdomain.com. Konu alanlarında yalnızca alfanümerik karakterler kullanın ve C alanı için resmi iki harfli ülke kodunu kullanın.

Bir ECDSA anahtarı tercih ederseniz (daha küçük ve daha hızlı, P-256 yaygın olarak desteklenir), anahtarı ve CSR’yi şu şekilde oluşturun:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

Alanları tek tek yanıtlamayı tercih ederseniz, -subj ve -addext olmadan openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr komutunu çalıştırın. OpenSSL her alanı sırayla soracaktır. Bunlar sorulduğunda:

  • Ülke Adı (C): ülkenizin iki harfli ISO kodu, örneğin US veya GB. İşletme Doğrulaması veya Genişletilmiş Doğrulama sertifikaları için bu, kuruluşunuzun resmi tescil ülkesi olmalıdır.
  • Eyalet veya İl Adı (ST): tam adı, örneğin California. Kısaltma yapmayın.
  • Yerel Bölge Adı (L): şehir veya kasaba, örneğin San Francisco.
  • Kuruluş Adı (O): şirketinizin resmi tescilli adı, örneğin GPI Holding LLC. Alan Doğrulama sertifikaları için NA girebilirsiniz.
  • Kuruluş Birimi Adı (OU): bu alan artık kullanılmamaktadır ve genel CA’lar tarafından yok sayılır. Enter tuşuna basarak boş bırakın.
  • Ortak Ad (CN): sertifikanın ait olduğu Tam Nitelikli Alan Adı, örneğin www.yourdomain.com. Joker karakter için *.yourdomain.com kullanın.
  • E-posta Adresi: isteğe bağlıdır ve genel CA’lar tarafından kullanılmaz. Boş bırakabilirsiniz.
  • A challenge password ve An optional company name: her ikisi de genel CA’lar tarafından yok sayılan eski özelliklerdir. Boş bırakın.

-addext bayrağı olmadan, ortaya çıkan CSR’de hiçbir SAN girişi olmayacaktır. Genel CA’lar SAN listesine göre doğrulama yapar ve bu olmayan bir talebi reddeder (veya sessizce geçersiz kılar), bu nedenle önerilen yol yukarıdaki satır içi -subj ile -addext komutudur.

Adım 3: Dosyalarınızı bulun

Her iki dosyanın da oluşturulduğunu doğrulamak için geçerli dizini listeleyin:

ls

İki yeni dosya görmelisiniz:

  • yourdomain.key: özel anahtarınız. Bunu sunucuda tutun, güvenli bir şekilde yedekleyin ve Sertifika Yetkilisi dahil hiç kimseye göndermeyin. Bu anahtara sahip olan kişi sitenizin kimliğine bürünebilir.
  • yourdomain.csr: Sertifika İmzalama Talebiniz. Bu, SSL sağlayıcınıza göndereceğiniz dosyadır.

Özel anahtarı, yalnızca dosya sahibinin okuyabileceği şekilde sınırlandırın:

chmod 600 yourdomain.key

Adım 4: CSR’yi doğrulayın (isteğe bağlı ama önerilir)

Göndermeden önce, CSR’nin doğru konuyu ve SAN’ları içerdiğini ve imzasının geçerli olduğunu kontrol edin. Bu, talebi yerel olarak OpenSSL ile çözer:

openssl req -noout -text -verify -in yourdomain.csr

Subject satırının bilgilerinizi gösterdiğini, X509v3 Subject Alternative Name‘in beklediğiniz her ana bilgisayar adını listelediğini ve imza kontrolünün verify OK yazdırdığını doğrulayın. İmza algoritması sha256WithRSAEncryption (veya bir ECDSA anahtarı için ecdsa-with-SHA256) olarak okunmalıdır. Komut satırını kullanmak istemiyorsanız, aynı alanları bir tarayıcıda okumak için CSR’yi çevrimiçi CSR çözücümüze yapıştırın.

Adım 5: CSR’nizi gönderin

Siparişiniz için CSR’yi kopyalamak amacıyla içeriğini yazdırın:

cat yourdomain.csr

Şuna benzer bir metin bloğu göreceksiniz:

-----BEGIN CERTIFICATE REQUEST-----
MIICyzCCAbMCAQAwTDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQsw...
...(many more lines of base64 characters)...
-----END CERTIFICATE REQUEST-----

Tüm bloğu, —–BEGIN CERTIFICATE REQUEST—– ve —–END CERTIFICATE REQUEST—– satırları dahil olacak şekilde kopyalayın (her işaretçinin her iki yanında beş tire bulunur). Bu bütün blok CSR’nizdir. Satın alma işleminiz sırasında sipariş formuna yapıştırın ve eşleşen özel anahtarı sunucuda yerinde tutun.

Komut satırını kullanmak istemiyorsanız, talebi çevrimiçi CSR Oluşturucumuz ile de oluşturabilirsiniz. Bunun özel anahtarı tarayıcınızda oluşturduğunu unutmayın, bu nedenle o anahtarı kendiniz kaydedin ve sunucuya taşıyın.

CA’nız talebi doğruladıktan sonra sertifikanızı alacaksınız. Doğrulama düzeyine bağlı olarak bu, Alan Doğrulama için birkaç dakika, İşletme Doğrulaması ve Genişletilmiş Doğrulama için ise birkaç iş gününe kadar sürebilir.

Adım 6: Sertifikayı Apache’ye yükleyin

Sertifika geldiğinde, verilen sertifikayı (tüm ara sertifikaların birleştirildiği bir tam zincir dosyası dahil) ve özel anahtarı sunucuya yerleştirin, ardından sitenizin sanal ana bilgisayarında (virtual host) Apache’yi bunlara yönlendirin:

SSLCertificateFile    /etc/ssl/yourdomain/fullchain.crt
SSLCertificateKeyFile /etc/ssl/yourdomain/yourdomain.key

Modern Apache (2.4.8 ve sonrası), yaprak sertifikayı ve tüm ara sertifikaları SSLCertificateFile‘a iletilen tek bir dosyadan okur, bu nedenle sertifikanızı ve CA paketini tek bir dosyada birleştirin. Eski SSLCertificateChainFile yönergesi kullanımdan kaldırılmıştır ve güncel Apache’de kullanılmamalıdır. Yapılandırmayı apachectl configtest ile test edin ve değişikliği uygulamak için Apache’yi yeniden yükleyin. Tam iş akışı için, Apache’ye SSL sertifikası nasıl yüklenir kılavuzumuza bakı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.