Bu eğitim, Java keytool aracını kullanarak Apache Tomcat için CSR (Sertifika İmzalama Talebi) oluşturmayı göstermektedir. İş akışı iki komuttan oluşur: önce keytool -genkeypair seçilen bir takma ad altında bir keystore ve bir özel anahtar oluşturur, ardından keytool -certreq eşleşen CSR’yi dışa aktarır. Aynı takma ad daha sonra imzalanan sertifikayı içe aktardığınızda tekrar kullanılır, böylece anahtar, CSR ve sonuçtaki sertifika tek bir yerde bulunur.
İhtiyacınız olanlar
- Bir Java kurulumu (JDK veya JRE), böylece keytool komutu kullanılabilir olur.
keytool -helpile doğrulayın. - Özel anahtarı barındıracak sunucuda kabuk (shell) veya terminal erişimi. Özel anahtar bu sunucuda kalmalıdır.
- Güvence altına almak istediğiniz tam tam nitelikli alan adı (FQDN), örneğin www.yourdomain.com, ayrıca kapsamak istediğiniz ek alan adları (SAN alanı için).
- CSR’nin Ayırt Edici Adı (Distinguished Name) için kuruluşunuzun yasal bilgileri (ülke, eyalet, bölge, kuruluş adı).
Adım 1: Keystore ve özel anahtarı oluşturun
Eğer CSR’nizi zaten oluşturduysanız, CSR’yi gönderme adımına ve ardından SSL sertifikanızı Tomcat’e kurma adımına geçebilirsiniz.
Sunucuda bir terminal açın ve PKCS12 formatında yeni bir keystore oluşturun. PKCS12, modern ve taşınabilir standarttır ve JDK 9’dan itibaren Java’daki varsayılan keystore formatı olmuştur; eski JKS formatı kullanımdan kaldırılmıştır (deprecated). Şunu çalıştırın:
keytool -genkeypair
-alias tomcat
-keyalg RSA -keysize 2048
-storetype PKCS12
-keystore yourdomain.p12
-validity 825
Bayrakların (flag) anlamı şu şekildedir:
- -alias tomcat: keystore içindeki giriş adı. Tanıyabileceğiniz bir etiket seçin (genellikle tomcat veya alan adınız). Bunu bir yere not edin. CSR oluşturduğunuzda ve imzalanan sertifikayı içe aktardığınızda bu tam takma adı yeniden kullanmalısınız.
- -keyalg RSA -keysize 2048: 2048 bit RSA anahtarı, mevcut genel minimum değerdir. Yeni keystore’lar için, daha uzun ömürlü anahtarlar için 3072 bit mantıklı bir yükseltmedir. Çoğu genel CA, daha küçük ve daha hızlı bir anahtar tercih ederseniz ECDSA’yı da (-keyalg EC -groupname secp256r1) kabul eder.
- -storetype PKCS12: modern PKCS12 keystore’unu zorunlu kılar. Eşleşen uzantı .p12‘dir (veya .pfx).
- -keystore yourdomain.p12: oluşturulacak keystore dosyası. Adı hatırlayabileceğiniz bir isimle değiştirin ve bu dosyayı güvende tutun; özel anahtarınızı içerir.
- -validity 825: keystore içindeki kendinden imzalı yer tutucu sertifikanın geçerlilik süresi. CA’dan alınan imzalı sertifika bunun yerini daha sonra alacağından, tam değer üretim ortamındaki geçerlilik süresini etkilemez.
keytool ardından bir keystore parolası ister. Güçlü bir parola seçin ve şifre yöneticinizde saklayın: sonraki her keytool komutu için ve Tomcat’in server.xml dosyası için buna ihtiyacınız olacak. PKCS12 keystore’larında anahtar parolası keystore parolasıyla aynıdır, dolayısıyla hatırlanması gereken tek bir parola vardır.
Adım 2: Kuruluş bilgilerinizi girin (DN)
keytool şimdi Ayırt Edici Ad’ı (Distinguished Name – DN) ister: CSR’ye dahil edilen kimlik alanları. Her istemi kuruluşunuz için tam, yasal değerle yanıtlayın. Noktalama işaretleri ve doğruluk önemlidir: bir CA, genel işletme kayıtlarıyla uyuşmazlıkları reddedecektir.
- Ad ve soyad (CN): bu keytool’un ifadesidir, ancak bu Ortak Ad (Common Name) alanıdır. Güvence altına aldığınız tam FQDN‘yi girin, örneğin www.yourdomain.com, veya *.yourdomain.com gibi bir joker karakter. Bir kişinin adını girmeyin.
- Organizasyon birimi (OU): bu alan artık genel CA’lar tarafından verilmez ve boş bırakılması en iyisidir. Atlamak için Enter’a basın.
- Kuruluş (O): şirketinizin tam yasal adı, örneğin Your Company LLC.
- Şehir veya bölge (L): tam şehir adı, örneğin San Jose. Kısaltma kullanmayın.
- Eyalet veya il (ST): tam eyalet veya il adı, örneğin California. İki harfli bir kod kullanmayın.
- Ülke kodu (C): iki harfli ISO ülke kodu, örneğin US, GB, DE.
Son istemden sonra keytool, CN=www.yourdomain.com, OU=, O=Your Company LLC, L=San Jose, ST=California, C=US gibi bir özet gösterir. Onaylamak için yes yazın. Keystore dosyası artık bir girişle mevcuttur: özel anahtarı ve kendinden imzalı bir yer tutucu sertifikayı tutan takma adınız.
Etkileşimsiz bir komut tercih ediyorsanız, DN’yi satır içinde geçirin ve istemleri atlayın:
keytool -genkeypair
-alias tomcat
-keyalg RSA -keysize 2048
-storetype PKCS12
-keystore yourdomain.p12
-dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US"
-validity 825
Adım 3: SAN ile CSR oluşturun
Modern tarayıcılar ve istemciler, sertifikaları sadece Ortak Ad’a göre değil, Konu Alternatif Adı (Subject Alternative Name – SAN) uzantısına göre doğrular. SAN’ları doğrudan CSR’de talep edin, böylece CA bunları düzenlenen sertifikaya dahil eder. Adım 1’de kullandığınız aynı takma adı ve keystore’u kullanın:
keytool -certreq
-alias tomcat
-keystore yourdomain.p12
-file yourdomain.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Bayrakların anlamı şu şekildedir:
- -alias tomcat: Adım 1’deki takma adla eşleşmelidir. Bu, özel anahtarının talebi imzaladığı takma addır.
- -keystore yourdomain.p12: Adım 1’deki keystore ile eşleşmelidir.
- -file yourdomain.csr: CSR için çıktı dosya adı.
- -ext san=dns:…: Konu Alternatif Adı uzantısı. Sertifikanın kapsaması gereken her ana bilgisayar adını listeleyin; bare apex (yourdomain.com) ve www alt alan adı dahil. Virgülle ayrılmış daha fazla giriş ekleyin, örneğin dns:api.yourdomain.com.
keytool, keystore parolasını ister ve CSR’yi geçerli dizindeki yourdomain.csr dosyasına yazar.
Önemli: takma adınızı ve keystore’unuzu koruyun
Tomcat’te en sık yapılan keytool hatası, imzalanan sertifikayı yeni bir takma ad altında içe aktarmaktır. Bunu yapmak, sertifikayı özel anahtar olmadan bağımsız güvenilir bir giriş olarak depolar ve TLS çalışmaz. İmzalanan yanıtı her zaman özel anahtarı tutan aynı takma ada (Adım 1’deki takma ad) geri içe aktarın.
Terminali kapatmadan önce şu üç değeri not edin:
- Takma ad (bu kılavuzda, tomcat).
- Keystore dosya yolu (örneğin yourdomain.p12).
- Keystore parolası.
Hangi takma adın anahtarınızı tuttuğundan emin değilseniz, keystore içeriğini listeleyin ve türü PrivateKeyEntry olan girişi arayın:
keytool -list -v -keystore yourdomain.p12
Adım 4: Göndermeden önce CSR’yi doğrulayın
CA bunları doğrulamadan önce DN’deki yazım hatalarını veya eksik SAN’ları yakalayın. CSR’yi keytool ile yazdırın:
keytool -printcertreq -file yourdomain.csr
Veya, OpenSSL yüklüyse, onu da kullanabilirsiniz:
openssl req -noout -text -in yourdomain.csr
Çıktıda üç şeyi doğrulayın: Subject tam DN’nizi gösterir, Subject Alternative Name ihtiyacınız olan her ana bilgisayar adını listeler ve Public-Key boyutu istediğiniz değerle eşleşir (2048 bit RSA veya seçtiğiniz herhangi bir değer). Ayrıca aynı kontrolü bir tarayıcıda yapmak için CSR’yi CSR Çözücü’müze yapıştırabilirsiniz.
Adım 5: CSR’yi Sertifika Yetkilinize gönderin
yourdomain.csr dosyasını herhangi bir metin düzenleyicisinde açın. Dosya, —–BEGIN CERTIFICATE REQUEST—– ile başlayan ve —–END CERTIFICATE REQUEST—– ile biten düz metindir. Bu başlık ve alt bilgi satırları dahil tüm bloğu kopyalayın ve CA’nızla ödeme sırasında CSR alanına yapıştırın. Windows’ta tam metni almak için Ctrl + A ardından Ctrl + C kullanın; macOS’ta Cmd + A ardından Cmd + C kullanın.
CA talebinizi doğruladıktan ve sertifikayı düzenledikten sonra, SSL sertifikanızı Tomcat’e kurma adımına geçin. İmzalanan sertifikayı aynı keystore içindeki aynı takma ada geri içe aktaracaksınız ve ardından Tomcat’in HTTPS bağlayıcısını (connector) o keystore’a yönlendireceksiniz.
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


