21 Şubat 2018 Çarşamba

keytool komutu

Giriş
genkey seçeneği ile self signed sertifika oluşturulur.
export seeçeneği ile sertifika dosyaya kaydedilir.
import seçeneği ile dosya başka bir sistemin "trust store" dosyasına ithal edilir.

certreq seçeneği
CertReq oluşturmak için şöyle yaparız. İlk komut ismi mykey olan bir private key oluşturur. İlk önce keystore'u korumak için en az 6 karakterli bir şifre ister.

Daha sonra "Last Name", "Organizational Unit", "Organization", "City", "State", "Country Code" gibi bilgiler istenir. En son olarak ta mykey için şifre istenir.

İkinci komut ise certificate signin request oluşturur.
keytool -genkey -keyalg RSA -keysize 2048 -keystore server.keystore

keytool -certreq -keyalg RSA -file server.csr -keystore server.keystore
export seçeneği
Public Key dışarı ihraç edilir.

Örnek
Şöyle yaparız.
-keystore seçeneği ile kullanılacak keystore belirtilir.
-storedpass seçeneği ile varsa keystore için şifre belirtilir.
-file seçeneği ile çıktı dosya belirtilir.
keytool -export -alias server -storepass zzzzzz -file server.cer 
-keystore mykeystore.jks

genkey seçeneği
Self signed sertifika oluşturur. Bu sertifika örneğin SSL için kullanılır.
-keyalg ile kullanılacak algoritma seçilir.
-keystore ile sertifikanın yazılacağı dosya belirtilir
-storetype ile dosya tipi belirtilir. Bu seçenek belirtilmezse JKS formatı kullanılır. İstenirse PKCS12 belirtilebilir.

Örnek
Şöyle yaparız.
keytool  -genkey -alias tomcat -keyalg RSA -keystore c:\mykeystore
Komutu çalıştırınca şu tür soruları cevaplarız.
Enter keystore password: ...
Re-enter new password:
What is your first and last name?
   [Unknown]:  ...
What is the name of your organizational unit?
...

Enter key password for <...>
    (RETURN if same as keystore password):
  Re-enter new password:...
Örnek
Daha fazla parametre verebiliriz. Şöyle yaparız. Çıktı keystore.key dosyasındadır.
keytool -genkey -alias tomcat -keypass mypassword -keystore keystore.jks 
-storepass mypassword -keyalg RSA -validity 360 -keysize 2048
Örnek
Şöyle yaparız.
keytool -genkey -alias tomcat
-storetype PKCS12
-keyalg RSA -keysize 2048 -keystore keystore.p12
-validity 3650
list seçeneği
keytool Lomutu İle Listeleme yazısına taşıdım.

import veya importcert seçeneği
Açıklaması şöyle. Bir "trust store" oluşturmak için kullanılır. Yani client artık server'a güvenmektedir.
You import a certificate for two reasons: To add it to the list of trusted certificates, and to import a certificate reply received from a certificate authority (CA) as the result of submitting a Certificate Signing Request to that CA (see the -certreq option in Commands).

Which type of import is intended is indicated by the value of the -alias option. If the alias does not point to a key entry, then the keytool command assumes you are adding a trusted certificate entry. In this case, the alias should not already exist in the keystore. If the alias does already exist, then the keytool command outputs an error because there is already a trusted certificate for that alias, and does not import the certificate. If the alias points to a key entry, then the keytool command assumes you are importing a certificate reply.
Bu seçeneğin ismi daha sonra importcert olarak değiştirildi.

Bence sertifika import işleminde kullanılan dosya ismi pfx uzantısına sahip olmalı. Bir çok örnekte farklı uzantılar görülebilir. pfx dosyası bir PKCS#12 arşividir.

Örnek
Cer dosyası alias olmadan şöyle ithal edilir.
keytool -import -file file_i_got.cer -keystore certificate.pfx
Örnek
Cer dosyası alias ile şöyle ithal edilir.
keytool -import -alias mykey -file file_i_got.cer -keystore certificate.pfx
Örnek
Eğer Root CA dosyası ithal etmek istersek şöyle yaparız.
keytool -import -alias rootca -file rootca.cer -keystore
 $JAVA_HOME/jre/lib/security/cacerts
cacerts dosyası Root CA sertifikalarının saklandığı dosyadır.

Örnek
Şöyle yaparız.
keytool -importcert -trustcacerts -file myapp-csr.pem -alias myorg -keystore myapp.jks

importkeystore seçeneği
storepassword ve keypassword genellikle aynı seçilir.

keypass seçeneği
keystore dosyasındaki private key nesnesine erişmek için gerekir.

trustcacerts seçeneği
Sertifika ithal ederken sadece Sadece truststore'daki CA sertifikaları değil, JRE dizinini lib/security yolu altında bulunan cacerts sertifikalarını da kullanarak sertifikayı doğrular. Şöyle yaparız.
keytool -import -v -trustcacerts -alias mm_tg_server -file mm-tg-server.cer 
-keystore mm_tg_trustkeystore.jks -keypass zzzzzz -storepass zzzzzz
storepass seçeneği
keystore dosyasına erişmek için gerekir.

storepasswd seçeneği
keystore dosyasının şifresini değiştirmek için kullanılır.

v seçeneği
verbose (daha ayrıntılı) çıktı almak için kullanılır.

Hiç yorum yok:

Yorum Gönder