Neden Root CA Üretiriz
Local Certificate Authority yazısına taşıdım.
Sertifika Uyarısı
Bazen site adı ile sertifikası uyuşmaz. O zaman tarayıcı uyarı verir. Aşağıda bir örnek var.
Güvenlik Sertifikası
Site adı sertifika üzerindeki adla uyuşmuyor.
Düzenlenen kişi
Genel ad:
*.tai.com.tr
Organizasyon:
TUSAS TURK HAVACILIK VE UZAY SANAYI A.S.
Kurumsal birim:
BILISIM DESTEK MUDURLUGU
Düzenleyen
Genel ad:
TÜRKTRUST Elektronik Sunucu Sertifikası Hizmetleri
Organizasyon:
TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş.(c) Kasım 2005
Kurumsal Birim:
Geçerlilik:
Düzenleme tarihi:
31 01 2011
Sona erme tarihi:
30 01 2014
Java İle İlgili Notlarım
Java keystore dosyası içinde iki çeşit girdi var. İlki trustedCertEntry diğeri ise keyEntry.
trustedCertEntry
SSL ile el sıkışma esnasında sertifikayı yayınlayan CA'nın istemci (client) tarafından biliniyor olması gerekir. CA sertifikasının içinde CA otoritesinin public anahtarı bulunmaktadır.
CA Listeleme
Normalde JVM ile çok kullanılan CA'lar tanımlı olarak geliyorlar. Tanımlı CA'lar şöyle listelenebilir.
Ancak bazı CA'lar tanımlı olmayabilirler. Eğer sistemde tanımlı bulunmayan CA'nın sertifikasını girmek istiyorsak aşağıdaki komutu kullanıyoruz.
keytool -import -v -trustcacerts -alias myServer -file caCert.cer -keystore $JAVA_HOME/jre/lib/security/cacerts
Bu komutta trustcacerts parametresi ile CA sertifikasını aldığımızı belirtiyoruz. caCert.cer ise CA'nın sertifikası.
Dikkat edilmesi gereken nokta benim sistemimde cacerts dosyası bulunduğu için bu komutu kullandım.
Aslında CA sertifikası sistemden aşağıdaki yerlerden birinde bulunabilir ve kullanılan komutta keystore'un nerede olduğu değişebilir.
keyEntry
keyEntry public/private anahtarları içerir.
keytool - genkey komutu ile üretiliyor. Oracle dokümanında örnekler var. Üretilen sertifika için kullanılacak algoritmayı seçebiliyoruz. Örneğin RSA'yı seçmek için aşağıdaki komut kullanılabilir.
keytool -genkey -alias tomcat -keyalg RSA
Eğer keystore ile sertifikayı almak istemiyorsaj JVM'e çalışma parametresi olarak verebiliriz. Örnek,
Certificate Request Nedir
Önce kendi private ve public anahtalarımızı oluşturuyoruz. Sonra public anahtarımızı ve bilgilerimizi bir CA'ya gönderiyoruz. CA da kendi private anahtarı ile bizim public anahtarımızı şifreleyip bize geri gönderiyor. Böylece bizi tanımlayan bir kimlik oluşuyor.
Intermediate CA (Certificate Authority) 'dan Satın Aldığımız Sertifikamızı Kurmak
Bir Intermediate CA'dan satın aldığımız sertifika aynı zamanda Primary Sertifika olarak ta adlandırılıyor. Bizi tanımlayan kimlik anlamına geliyor. İçinde bizim public key'imiz var diye anlıyorum.
Java ile bu işi yaparken aşağıdaki komutu kullanıyoruz. Aşağıdaki örneği buradan aldım.
İşlem bittikten sonra certfile.cer dosyasınıa artık ihtiyacımız kalmıyor ve silinebilir.
------------------------------------------
Bir başka örnekte ise Tomcat'e kurma komutu verilmiş.
keytool -import -trustcacerts -alias tomcat -file PrimaryCertFileName.crt -keystore keystore.key
İşlemi yaparken keystore.key dosyasına erişim için şifre istenecek. Bu keystore dosyasını oluştururken kullandığımı şifreyi kullanmamız lazım.
Web Servis İle Bir Başka Kurumun Servisine Erişim İçin Sertifika Kurmak
Buradaki örnekte de görüldüğü gibi yukarıdaki işlemler ile aynı komut çalıştırılıyor.
keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -file /Users/..../Sertifika/ptt.pem
SSL
SSL ile tek yönlü veya iki yönlü kimlik doğrulama mümkün. Nasıl çalıştığını gösteren bulabildiğim en güzel şekilleri buradan aldım ve aşağıya ekledim.
Tek yönlü doğrulama
Çift yönlü doğrulama
Local Certificate Authority yazısına taşıdım.
Sertifika Uyarısı
Bazen site adı ile sertifikası uyuşmaz. O zaman tarayıcı uyarı verir. Aşağıda bir örnek var.
Güvenlik Sertifikası
Site adı sertifika üzerindeki adla uyuşmuyor.
Düzenlenen kişi
Genel ad:
*.tai.com.tr
Organizasyon:
TUSAS TURK HAVACILIK VE UZAY SANAYI A.S.
Kurumsal birim:
BILISIM DESTEK MUDURLUGU
Düzenleyen
Genel ad:
TÜRKTRUST Elektronik Sunucu Sertifikası Hizmetleri
Organizasyon:
TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş.(c) Kasım 2005
Kurumsal Birim:
Geçerlilik:
Düzenleme tarihi:
31 01 2011
Sona erme tarihi:
30 01 2014
Java İle İlgili Notlarım
Java keystore dosyası içinde iki çeşit girdi var. İlki trustedCertEntry diğeri ise keyEntry.
trustedCertEntry
SSL ile el sıkışma esnasında sertifikayı yayınlayan CA'nın istemci (client) tarafından biliniyor olması gerekir. CA sertifikasının içinde CA otoritesinin public anahtarı bulunmaktadır.
CA Listeleme
Normalde JVM ile çok kullanılan CA'lar tanımlı olarak geliyorlar. Tanımlı CA'lar şöyle listelenebilir.
keytool -list -keystore cacerts >> /opt/app/temp/<filename_here>
CA TanımlamaAncak bazı CA'lar tanımlı olmayabilirler. Eğer sistemde tanımlı bulunmayan CA'nın sertifikasını girmek istiyorsak aşağıdaki komutu kullanıyoruz.
keytool -import -v -trustcacerts -alias myServer -file caCert.cer -keystore $JAVA_HOME/jre/lib/security/cacerts
Bu komutta trustcacerts parametresi ile CA sertifikasını aldığımızı belirtiyoruz. caCert.cer ise CA'nın sertifikası.
Dikkat edilmesi gereken nokta benim sistemimde cacerts dosyası bulunduğu için bu komutu kullandım.
Aslında CA sertifikası sistemden aşağıdaki yerlerden birinde bulunabilir ve kullanılan komutta keystore'un nerede olduğu değişebilir.
- If the system property "javax.net.ssl.trustStore" is defined, the TrustManager tries to find the default trustStore file by using the filename specified by that system property.
- If the "javax.net.ssl.trustStore" system property was not specified, and if the file "<java-home>/lib/security/jssecacerts" exists, that file is used.
- If the file "<java-home>/lib/security/cacerts" exists, that file is used.
keyEntry
keyEntry public/private anahtarları içerir.
keytool - genkey komutu ile üretiliyor. Oracle dokümanında örnekler var. Üretilen sertifika için kullanılacak algoritmayı seçebiliyoruz. Örneğin RSA'yı seçmek için aşağıdaki komut kullanılabilir.
keytool -genkey -alias tomcat -keyalg RSA
Eğer keystore ile sertifikayı almak istemiyorsaj JVM'e çalışma parametresi olarak verebiliriz. Örnek,
java -Djavax.net.ssl.trustStore=c:\jdk160_29\.mykeystore
Certificate Request Nedir
Önce kendi private ve public anahtalarımızı oluşturuyoruz. Sonra public anahtarımızı ve bilgilerimizi bir CA'ya gönderiyoruz. CA da kendi private anahtarı ile bizim public anahtarımızı şifreleyip bize geri gönderiyor. Böylece bizi tanımlayan bir kimlik oluşuyor.
Intermediate CA (Certificate Authority) 'dan Satın Aldığımız Sertifikamızı Kurmak
Bir Intermediate CA'dan satın aldığımız sertifika aynı zamanda Primary Sertifika olarak ta adlandırılıyor. Bizi tanımlayan kimlik anlamına geliyor. İçinde bizim public key'imiz var diye anlıyorum.
Java ile bu işi yaparken aşağıdaki komutu kullanıyoruz. Aşağıdaki örneği buradan aldım.
İşlem bittikten sonra certfile.cer dosyasınıa artık ihtiyacımız kalmıyor ve silinebilir.
------------------------------------------
Bir başka örnekte ise Tomcat'e kurma komutu verilmiş.
keytool -import -trustcacerts -alias tomcat -file PrimaryCertFileName.crt -keystore keystore.key
İşlemi yaparken keystore.key dosyasına erişim için şifre istenecek. Bu keystore dosyasını oluştururken kullandığımı şifreyi kullanmamız lazım.
Web Servis İle Bir Başka Kurumun Servisine Erişim İçin Sertifika Kurmak
Buradaki örnekte de görüldüğü gibi yukarıdaki işlemler ile aynı komut çalıştırılıyor.
keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -file /Users/..../Sertifika/ptt.pem
SSL
SSL ile tek yönlü veya iki yönlü kimlik doğrulama mümkün. Nasıl çalıştığını gösteren bulabildiğim en güzel şekilleri buradan aldım ve aşağıya ekledim.
Tek yönlü doğrulama
Çift yönlü doğrulama
Hiç yorum yok:
Yorum Gönder