CSR (Certificate Signing Request), CA'ya gönderdiğiniz imza talebidir ve açık anahtarınızla kimlik bilgilerinizi içerir. "CSR oluşturma API'si" denince iki ayrı senaryo akla gelir; hangisini kastettiğinizi ayırmak önemlidir.
Senaryo 1: Kendi kodunuzda CSR üretmek
Özel anahtarın sunucunuzda üretilmesi ve orada kalması güvenlik açısından doğru yoldur. Uygulamanızdan CSR üretirken OpenSSL ya da dilin kriptografi kütüphanesi kullanılır:
openssl req -new -newkey rsa:2048 -nodes \
-keyout ornek.key -out ornek.csr \
-subj "/C=TR/ST=Istanbul/L=Istanbul/O=Ornek A.S./CN=www.ornek.com.tr"
Birden çok alan adı için SAN içeren bir yapılandırma dosyası kullanın:
[req]
distinguished_name = dn
req_extensions = v3_req
prompt = no
[dn]
C = TR
O = Ornek A.S.
CN = www.ornek.com.tr
[v3_req]
subjectAltName = DNS:www.ornek.com.tr, DNS:ornek.com.tr
openssl req -new -newkey rsa:2048 -nodes -keyout ornek.key -out ornek.csr -config csr.cnf
Senaryo 2: Sağlayıcı API'sine CSR göndermek
Sipariş uç noktası CSR'ı düz metin (PEM) olarak, başlık ve son satırlarıyla birlikte bekler. Satır sonlarının JSON içinde \n olarak kaçışlandığından emin olun.
Kontrol listesi
- CN ve SAN, sipariş edilen alan adlarıyla birebir uyumlu olmalı.
- Anahtar en az RSA 2048 veya ECDSA P-256 olmalı.
- Özel anahtar dosyasını yetkisiz erişime karşı koruyun; CA'ya asla göndermeyin.
Komut satırı kullanmak istemezseniz CSR oluşturucuyu deneyebilirsiniz. Sertifika sonrası kurulumu doğrulamak için SSL denetleyici, ürünler için SSL sertifikaları sayfası yararlıdır.
Sık yapılan hatalar
- Özel anahtarı kaybetmek: CSR'ı yeniden üretmek ve yeni bir anahtar oluşturmak gerekir.
- CSR'da ülke kodunu iki harfli (TR) yazmamak.
- Wildcard için CN alanına
*.ornek.com.tryerine düz alan adı girmek.
Üretilen CSR'ı göndermeden önce openssl req -in ornek.csr -noout -text ile içeriğini gözden geçirin.