Bu eğitim, NGINX’te nasıl CSR oluşturulacağını göstermektedir. NGINX, Sertifika İmzalama Taleplerini kendisi oluşturmaz: özel anahtarı ve CSR’ı, sertifikayı barındıracak sunucunun aynısında OpenSSL ile oluşturur, ardından CSR’ı Sertifika Yetkilinize gönderirsiniz. Verilen sertifika size geri geldiğinde, NGINX’i ssl_certificate ve ssl_certificate_key direktifleriyle ona yönlendirirsiniz.
Aşağıdaki adımlar, NGINX ile birlikte sunulan desteklenen her Linux dağıtımında (Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, Amazon Linux) çalışır, çünkü her biri OpenSSL 1.1.1 veya 3.x sürümüyle gelir. Modern OpenSSL, talepleri varsayılan olarak SHA-256 ile imzalar, bu nedenle bir özet (digest) bayrağı eklemenize gerek yoktur.
Adım 1: NGINX sunucunuza bağlanın
Yerel makinenizden (macOS veya Linux’ta Terminal, Windows’ta PowerShell veya Windows Terminal) SSH üzerinden NGINX çalıştıran sunucuya bağlanın. Kullanıcı adını ve sunucu adresini kendi bilgilerinizle değiştirin:
ssh your-user@your-nginx-server
CSR’ı, sertifikayı sunacak sunucuda oluşturun. Özel anahtar, CSR’ın yanında oluşturulur ve o sunucuda kalmalıdır. Bu komutları yerel olarak çalıştırıp anahtarı sonra kopyalamak, özel anahtara sahip olmanın amacını tamamen ortadan kaldırır.
Adım 2: Özel anahtarı ve CSR’ı oluşturun
Aşağıdaki komutu çalıştırın. Bu komut, tek bir adımda 2048 bit’lik bir RSA özel anahtarı ve eşleşen bir CSR oluşturur; konu (subject) ve Konu Alternatif Adları (SAN’lar) satır 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 yaptığı:
- -newkey rsa:2048, yeni bir 2048 bit’lik RSA anahtarı oluşturur. 2048 bit, genel Sertifika Yetkililerinin kabul ettiği geçerli minimumdur; daha büyük bir anahtar için rsa:4096 kullanabilir ya da ECDSA’ya geçebilirsiniz (aşağıya bakın).
- -nodes, özel anahtarı şifrelenmemiş bırakır, böylece NGINX başlangıçta bir parola istemi olmadan onu okuyabilir. Anahtarı şifrelemeyi tercih ederseniz, -nodes‘u kaldırın ve NGINX’in ssl_password_file direktifini kullanarak parolayı başlatma ve yeniden yükleme sırasında sağlayın.
- -keyout ve -out, özel anahtarı ve CSR dosyalarını adlandırır.
- -subj, sertifika konusunu sağlar. Buraya yer tutucular değil, gerçek şirket adınızı, eyaletinizi ve şehrinizi yazın. CN (Ortak Ad), birincil alan adınızdır.
- -addext “subjectAltName=…”, sertifikanın kapsaması gereken her ana bilgisayar adını listeler. Genel Sertifika Yetkilileri SAN listesine göre doğrulama yapar, bu nedenle Ortak Adı da buraya ekleyin. -addext bayrağı, OpenSSL 1.1.1 veya daha yenisini gerektirir; desteklenen her Linux sürümü en azından bu sürümle gelir.
yourdomain.com‘u tüm metin boyunca gerçek alan adınızla değiştirin. Ek ana bilgisayar adlarını kapsamak için, bunları virgülle ayırarak SAN listesine ekleyin, örneğin DNS:api.yourdomain.com. Bir joker karakter (wildcard) için, hem joker karakteri hem de çıplak alan adını ekleyin: DNS:*.yourdomain.com,DNS:yourdomain.com.
ECDSA anahtarı (daha küçük ve daha hızlı, P-256 yaygın olarak desteklenir) tercih ederseniz, anahtarı ve CSR’ı ş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"
OpenSSL’iniz -addext’i desteklemiyorsa
OpenSSL 1.1.1’den daha eski çok eski sistemlerde, -addext bayrağı kullanılamaz. Bu içerikle san.cnf adında küçük bir yapılandırma dosyası oluşturun:
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext
[ dn ]
C = US
ST = YourState
L = YourCity
O = YourCompany
CN = yourdomain.com
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = yourdomain.com
DNS.2 = www.yourdomain.com
Ardından çalıştırın:
openssl req -new -newkey rsa:2048 -nodes
-keyout yourdomain.key -out yourdomain.csr -config san.cnf
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. Onu sunucuda tutun, güvenli bir şekilde yedekleyin ve Sertifika Yetkilisi dahil kimseye asla göndermeyin. Anahtara sahip olan kişi, sitenizin kimliğine bürünebilir.
- yourdomain.csr: Sertifika İmzalama Talebiniz. Bu, SSL sağlayıcısına göndereceğiniz dosyadır.
Sadece root’un okuyabilmesi için özel anahtar üzerinde hemen sıkı izinler ayarlayın:
sudo chmod 600 yourdomain.key
sudo chown root:root yourdomain.key
Adım 4: CSR’ı doğrulayın (isteğe bağlı ama önerilir)
Göndermeden önce, CSR’ın doğru konuyu ve SAN’ları içerdiğini ve imzasının geçerli olduğunu kontrol edin. Bu, talebi OpenSSL ile yerel olarak çö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) olmalıdır. Komut satırını kullanmayı tercih etmiyorsanız, aynı alanları bir tarayıcıda okumak için CSR’ı çevrimiçi CSR çözücümüze yapıştırabilirsiniz.
Adım 5: CSR’ınızı gönderin
Siparişiniz için CSR’ı kopyalamak amacıyla, içeriğini yazdırın:
cat yourdomain.csr
Şuna benzer bir metin bloğu göreceksiniz:
-----BEGIN CERTIFICATE REQUEST-----
MIIBozCB... (uzun bir karakter dizisi)
-----END CERTIFICATE REQUEST-----
Tüm bloğu, —–BEGIN CERTIFICATE REQUEST—– ve —–END CERTIFICATE REQUEST—– satırları dahil olmak üzere kopyalayın (her işaretin her iki tarafında beş tire bulunur). O tüm blok sizin CSR’ınızdır. 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ı kullanmayı tercih etmiyorsanız, talebi çevrimiçi CSR Oluşturucumuzla da oluşturabilirsiniz. Unutmayın, bu araç özel anahtarı tarayıcınızda oluşturur, bu nedenle o anahtarı kendiniz kaydedip sunucuya taşıyın.
CA sertifikayı verdikten sonra ne olur
CA, CSR’ı doğruladıktan ve sertifikayı verdikten sonra, genellikle sunucu sertifikanızı (alan adınızın adını taşıyan bir .crt dosyası) ve bir veya daha fazla ara sertifika alırsınız; bunlar bazen bir .ca-bundle dosyasında paketlenir. NGINX, sunucu sertifikasının ve ara zincirin tek bir dosyada (“fullchain”) birleştirilmesini bekler ve bu dosya ssl_certificate ile gösterilir; yukarıda oluşturduğunuz özel anahtar ise ayrı olarak ssl_certificate_key ile gösterilir. Tam prosedür (fullchain oluşturma, sunucu bloğunu düzenleme, test etme ve yeniden yükleme) NGINX SSL kurulum eğitimimizde ele alınmıştır.
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


