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
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: tomcatSunucuya 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Ç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Şö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