Giriş
SSL/TLS kullanabilmek için önce bir key-store ve içinde sertifikaya ihtiyaç var. Deneme için sertifika oluşturmak istersek, keytool genkeypair/genkey Seçeneği - Self Signed Sertifika Oluşturma yazısına bakabilirsiniz.
Daha application.properties dosyasına temel bazı bilgileri girmek gerekiyor. Bu alanlarla spring boot sunucusu karşı tarafa sertifikamızı gönderir.
key-store : dosyanın yolunu belirtir. Bazen "classpath:..." şeklinde kullanılır. Eğer classpath içindeyse örneğin projede "src/main/resources" altına yerleştirilebilir.
key-store-type : JKS, PKCS12 gibi değerler olabilir.key-store-password : Dosyaya erişmek için şifre
key-alias : Sertifika için kullanılan alias
key-password : Sertifikaya erişmek için şifre
certificate Alanı
Örnek
Şöyle yaparız
server.port=3000
server.ssl.certificate=/Users/mayankc/Work/source/certs/cert.pem
server.ssl.certificate-private-key=/Users/mayankc/Work/source/certs/key.pem
enabled-protocols Alanı
Örnek
Şöyle yaparız
server.ssl.enabled-protocols=TLSv1.3,TLSv1.2
server.ssl.enabled-ciphers=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,\
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
port Alanı
Ayrıca sunucumuzun kullanacağı port belirtilir. SSL için varsayılan port 8443'tür.
Ayrıca sunucumuzun kullanacağı port belirtilir. SSL için varsayılan port 8443'tür.
Örnek - classpath içindeki JKS dosyası
Şöyle yaparız.
Örnek - classpath içindeki PKCS12 dosyası
Şöyle yaparız.
server:
port: 8443
ssl:
enabled: true
key-store: classpath:identity.jks
key-password: secret
key-store-password: secret
Port numarası ile ilgili açıklama şöyle.You will probably ask yourself why the port is set to 8443. The port convention for a tomcat server with https is 8443, and for http, it is 8080. So, we could use port 8080 for https connections, but it is a bad practice.key-store Alanı
Örnek - classpath içindeki PKCS12 dosyası
Sunucuya kendi keystore dosyamızı belirterek şöyle yaparız.
key-alias Alanı
Örnek - classpath içindeki PKCS12 dosyası
Kendi jar dosyamızdaki keystore.p12 dosyasını kullanır. Sertifikanın ismi tomcat'tir. Https için şöyle yaparız.
Sunucuya kendi keystore dosyamızı belirterek şöyle yaparız.
Çift yönlü SSL (2 way TLS) içindir. Her iki taraf ta birbirlerine sertifikalarını gönderirler.
Örnek
Şöyle yaparız
server.ssl:
key-store: classpath:keystore/keystore.p12
key-store-password: password
key-store-type: PKCS12
Örnek
Şöyle yaparız
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=secret
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=myalias
Örnek
Şöyle yaparız
security.require-ssl=true
server.ssl.key-store-password=12345678
server.ssl.key-store=src/main/resources/localhost-ssl.p12
server.ssl.key-store-type=PKCS12
Örnek - classpath içindeki PKCS12 dosyası
Kendi jar dosyamızdaki keystore.p12 dosyasını kullanır. Sertifikanın ismi tomcat'tir. Https için şöyle yaparız.
server.port: 8443
server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: password
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat
Örnek - Diskte Olan PKCS12 dosyasıSunucuya kendi keystore dosyamızı belirterek şöyle yaparız.
server:
port: 443
ssl:
key-store-type: PKCS12
key-store: D:\store\config\ssl\key.p12
key-store-password: password
key-alias: thekey
trust-store AlanıÇift yönlü SSL (2 way TLS) içindir. Her iki taraf ta birbirlerine sertifikalarını gönderirler.
Örnek
Şöyle yaparız
server:
ssl:
key-store-type: PKCS12
key-store: classpath:server-dev-keystore.p12
key-store-password: changeit
key-alias: ads-manager-dev
trust-store: classpath:root_CA_truststore.jks
trust-store-password: changeit
trust-store-type: JKS
client-auth: need
ÖrnekŞöyle yaparız
server.ssl.enabled=true
#KeyStore
server.ssl.key-alias=1
server.ssl.key-store=classpath:clientKeystore.p12
server.ssl.key-store-password=whatever
#TrustStore
server.ssl.trust-store=classpath:clientTrustStore.p12
server.ssl.trust-store-password=possiblyAnything
server.ssl.client-auth=need
Hiç yorum yok:
Yorum Gönder