- Konu sahibi
- #1
SSL sertifikasında CSR nedir?
CSR (Certificate Signing Request), bir SSL/TLS sertifikası almak için sertifika otoritesine gönderilen sertifika imzalama isteğidir. İçinde alan adını tanımlayan bilgiler, sunucunun açık anahtarı ve bu isteğin ilgili özel anahtarla oluşturulduğunu doğrulayan dijital imza bulunur. Özel anahtar CSR dosyasının içinde yer almaz ve sertifika otoritesine CSR ile birlikte gönderilmemelidir; erişimi sınırlandırılmış ortamda tutulmalıdır.
CSR tek başına SSL sertifikası değildir. Sertifika otoritesi CSR içindeki bilgileri ve alan adı sahipliğini doğruladıktan sonra, açık anahtarı içeren imzalı sertifikayı üretir. Daha sonra sertifika ile CSR oluşturulurken üretilen aynı özel anahtar birlikte kullanılarak HTTPS kurulumu yapılır.
CSR nasıl çalışır?
CSR oluşturulurken genellikle önce bir özel anahtar ve ona karşılık gelen açık anahtar üretilir. CSR, açık anahtarı ve sertifika talebinin sahibine ilişkin bilgileri taşır; istek özel anahtarla imzalanır. Sertifika otoritesi bu imzayı ve başvuruya ait doğrulama yöntemini kontrol eder.
Alan adları için en önemli bilgi Subject Alternative Name (SAN) alanıdır. Örneğin hem
example.com hem de www.example.com kullanılacaksa bu örnekte adları CSR talebine ekleyip CA’nın verdiği nihai sertifikadaki SAN listesini ayrıca doğrulayın. Bazı otomasyonlarda istenen ad listesi sipariş aşamasında da yönetilir; CSR’daki talep tek başına CA’nın aynısını vereceği garantisi değildir. Yalnızca Common Name alanına yazılmış olması, modern istemciler açısından yeterli olmayabilir.| CSR bölümü | Ne ifade eder? | Örnek |
|---|---|---|
| Common Name | Ana alan adı | example.com |
| Subject Alternative Name | Sertifikada bulunacak alan adları | example.com, www.example.com |
| Public Key | Sertifika ile ilişkilendirilecek açık anahtar | Sunucuda üretilen anahtarın açık kısmı |
| Private Key | CSR içinde bulunmaz | Sunucuda gizli tutulur |
Alan adının sertifikada bulunup bulunmayacağına karar verirken tabloya değil, sertifika başvurusunda seçilen SAN listesine bakılmalıdır. Sertifikayı yalnızca
www.example.com için alıp daha sonra kök alan adı için kullanmak, sertifika kapsamı buna izin vermiyorsa tarayıcı uyarısına neden olur.Basit bir CSR oluşturma örneği
OpenSSL 3.x bulunan bir ortamda, daha önce kullanılmamış dosya adlarıyla aşağıdaki tek satırlık komut örnek anahtar ve CSR üretir. Aynı adlı mevcut anahtar veya CSR varsa komutu çalıştırmayın; farklı ad seçin. Örnekte anahtar şifrelenir ve sizden parola istenir:
Kod:
openssl req -new -newkey rsa:2048 -keyout example.com.key -out example.com.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Komut başarılı olursa
example.com.key özel anahtarını ve example.com.csr CSR dosyasını oluşturur. CSR dosyasının başlangıcında genellikle -----BEGIN CERTIFICATE REQUEST----- satırı görülür. Sertifika başvuru ekranına CSR dosyasının içeriği yapıştırılır veya dosya yüklenir; özel anahtar ise sunucuda korunur.- Sertifikada kullanılacak tüm alan adlarını belirleyin ve SAN listesine ekleyin.
- CSR ve anahtarı kuruluşunuzun anahtar yönetimine uygun güvenilir ortamda üretin; özel anahtarı yedeklerken erişimini sınırlandırın.
- Oluşan CSR içeriğini sertifika otoritesine gönderin ve istenen alan adı doğrulamasını tamamlayın.
- Sertifika verildiğinde sertifikayı, varsa ara sertifikaları ve CSR ile eşleşen özel anahtarı sunucuda yapılandırın.
- HTTPS bağlantısını test edin; alan adının sertifikada bulunduğunu ve sunucunun doğru sertifikayı sunduğunu kontrol edin.
CSR’ı içerik ve öz imza açısından kontrol etmek için
openssl req -in example.com.csr -text -verify -noout kullanılabilir. Bu doğrulama alan adına sahipliği veya sertifika verildiğini kanıtlamaz. Şifreli özel anahtarı üretimde kullanacak hizmetin parola yönetimini de planlayın.Komut
-addext seçeneğini tanımıyorsa kullanılan OpenSSL sürümü bu sözdizimini desteklemiyor olabilir. Bu durumda aynı SAN değerleri bir OpenSSL yapılandırma dosyasındaki subjectAltName bölümünden verilmelidir; SAN bilgisini tamamen atlamak çözüm değildir.Sık yapılan hatalar
Özel anahtarı CSR sanmak: CSR paylaşılabilir başvuru dosyasıdır; özel anahtar gizli kalmalıdır. Özel anahtar silinirse veya kaybedilirse verilen sertifika sunucuda kullanılamayabilir ve yeni anahtar ile yeni CSR gerekebilir.
Yanlış alan adı istemek: Sertifikada bulunmayan bir alan adı için HTTPS kullanılamaz. Kök alan adı, www alt alan adı ve gerçekten kullanılacak diğer adlar baştan belirlenmelidir.
CSR ile sertifikayı karıştırmak: CSR, sertifika otoritesine yapılan istektir. Sertifika otoritesinin gönderdiği sertifika dosyası ise imzalı, kullanılmaya hazır kimlik belgesidir.
Mevcut sertifikayı yeni özel anahtarla kullanmak: Sertifika ile özel anahtar eşleşmiyorsa web sunucusu sertifikayı yüklemeyebilir veya TLS bağlantısı başarısız olabilir. Yeni bir anahtar üretildiğinde genellikle ona karşılık gelen yeni CSR ve sertifika gerekir.