SSL Sertifikası
Patrona Cloud veya self-hosted örneğinizi bir veritabanına bağlamak isterseniz, Güvenli Yuva Katmanı (SSL) şifrelemesi kullanarak bağlantıyı bir sertifika ile güvenli hale getirebilirsiniz.
Bunu neden yapmak isteyebilirsiniz:
- Patrona Cloud kullanıyorsunuz ve bağlandığınız veri ambarının (örneğin, PostgreSQL, MySQL) kimliğini doğrulamak istiyorsunuz.
- Patrona'yı kendiniz barındırıyorsunuz ve harici bir sağlayıcı tarafından barındırılan bir veri ambarının kimliğini doğrulamak istiyorsunuz. Ayrıca, uygulama veritabanınıza bağlanırken en katı bağlantı parametrelerini kullandığınızdan emin olmak için bu yöntemi kullanabilirsiniz.
Patrona Cloud kullanıyorsanız, uygulama veritabanı sizin için yönetilir, bu nedenle yalnızca Patrona'ya eklediğiniz veri ambarlarına olan bağlantıları güvenli hale getirmeniz gerekir.
Ön koşullar
JDBC bağlantısına izin veren bir veritabanı, çünkü kullanmak istediğiniz sertifikayı belirtmek için bir bağlantı dizesi kullanmanız gerekecektir.
Adım 1: Kök sertifikayı sağlayıcınızdan indirin
Patrona'yı bir Docker kapsayıcısı aracılığıyla çalıştırıyorsanız, AWS ve Azure için sertifikalara zaten sahip olmalısınız.
Sertifikaları Patrona'nın Docker görüntüsündeki /app/certs/
dizininde bulabilirsiniz:
- AWS RDS:
/app/certs/rds-combined-ca-bundle.pem
- Azure sertifikası:
/app/certs/DigiCertGlobalRootG2.crt.pem
Farklı bir sertifikaya ihtiyacınız varsa, kendi Docker görüntünüzü oluşturabilirsiniz. Veritabanınız için harici sağlayıcınızın sayfasına gidin ve veritabanınıza bağlanmak için kök sertifikayı indirme bağlantısını bulun.
Adım 2: Sertifikayı kaydedin
Self-hosted
İndirilen sertifikayı, patrona.jar dosyanızı sakladığınız dizine kaydedin. Teknik olarak sertifikayı istediğiniz yerde saklayabilirsiniz, ancak patrona.jar dosyanızla aynı dizinde tutmak en iyi uygulamadır. Sertifikanın yolunu bağlantı dizenizde belirteceksiniz.
Patrona Cloud
Önce Adım 3: Veritabanınızı ekleyin tamamlamanız gerekecek.
Bunu yaptıktan sonra, Yönetici > Veritabanları'na gidebilir ve veritabanınızı seçebilirsiniz. SSL İstemci Sertifikası adlı bölümü bulun ve indirilen sertifikanızı yüklemek için Bir dosya seçin'i tıklayın.
Adım 3: Veritabanınızı ekleyin
Örneğin, bir PostgreSQL veritabanına olan bağlantıyı güvenli hale getirmek istediğinizi varsayalım. Veritabanını eklemek için uygulamadaki talimatları izleyin. Bir veritabanı bağlantısı kurma hakkında daha fazla bilgi için veritabanı ekleme belgelerimize göz atın.
Adım 4: "Güvenli bir bağlantı kullan (SSL)" seçeneğini açın
Veritabanınız bir JDBC bağlantısını destekliyorsa, Patrona size bağlantı dizenize ek parametreler girmek için bir alan sağlayacaktır. Patrona, güvenli bir bağlantı kurmak için bağlantı dizesindeki parametreleri kullanacaktır.
Adım 5: Ek bağlantı dizesi seçenekleri ekleyin
Patrona'yı çalıştıran sunucudaki sertifikanın konumunu belirtmeniz gerekecektir.
Örneğin, bir PostgreSQL veritabanına bağlanırken, iki parametre eklemeniz gerekecektir:
sslmode
. Seçeneklerin tam listesini PostgreSQL'in belgelerinde görebilirsiniz.verify-full
kullanmanızı öneririz; en güvenli olanıdır ve ek yükü minimaldir.sslrootcert
. Burada sertifikanın dosya yolunu belirteceksiniz.
Her parametreyi ayırmak için bir ve işareti (&
) ekleyeceksiniz. Örneğin, Ek bağlantı dizesi seçenekleri ekle alanına şuna benzer bir şey eklersiniz:
sslmode=verify-full&sslrootcert=/path/to/certificate.pem
Sertifikayı sağlayıcınızdan indirdiğiniz tam yol ile /path/to/certificate.pem
'i değiştirin.
PostgreSQL için SSL desteği hakkında daha fazla bilgi edinebilirsiniz.
Uygulama veritabanına bağlantıyı ortam değişkenleri kullanarak güvenli hale getirme
Patrona'yı kendiniz barındırıyorsanız, uygulama veritabanınıza olan bağlantıyı ortam değişkenleri kullanarak güvenli hale getirebilirsiniz.
Kullanılacak ortam değişkeni MB_DB_CONNECTION_URI
'dir.
Burada tam bağlantı dizesini, db ana bilgisayarını, bağlantı noktasını, db adını ve kullanıcı bilgilerini, ayrıca sertifikayı eklemek için ek bağlantı parametrelerini içermelisiniz. Örneğin,
jdbc:postgresql://db.example.com:port/mydb?user=dbuser&password=dbpassword&ssl=true&sslmode=verify-full&sslrootcert=/path/to/certificate.pem
Her ikisi de karşılıklı kimlik doğrulama senaryolarını desteklemek için sağlanabilir.
Truststores ve keystores
PostgreSQL ve Oracle gibi bazı veritabanlarıyla, truststores ve keystores kullanarak bağlantıları güvenli hale getirebilirsiniz.
Truststores
Bir truststore kimlik bilgilerini doğrulamak için sağlanırsa, istemci (Patrona'nız) sunucuyu (veritabanını) kimliğini doğrulayabilir ve beklenen kimlik olduğunu doğrulayabilir.
Keystores
Bir keystore kimlik bilgilerini sağlamak için kullanılıyorsa, sunucu (veritabanı sunucusu) istemciden (Patrona'nız) bu keystore'u kullanarak kimliğini doğrulamasını isteyebilir. Keystores daha az sıklıkla kullanılır ve bazı durumlarda bir keystore kullanmak imkansızdır (örneğin, Amazon'un RDS'si keystores'u yasaklar). Ancak, yerinde barındırıyorsanız bir keystore kullanmak isteyebilirsiniz.