Cassandra'da yerel mTLS'yi yapılandırma

Giriş

Edge for Private Cloud'un mesaj işlemcileri, yönetim sunucuları ve yönlendiriciler gibi farklı bileşenleri, varsayılan olarak düz metin kanalı üzerinden Cassandra düğümlerine bağlanır. Bu tür kanallarda, Cassandra'ya giden ve Cassandra'dan gelen veriler açık bir şekilde iletilir. Apigee mTLS, Private Cloud kümesi için Edge'deki bileşenler arasındaki iletişime güvenlik ekleyen, Consul hizmet ağına dayalı bir özelliktir. Apigee'nin bu teklifi, istemci bileşenleri ile Cassandra arasındaki iletişim kanalına TLS güvenliği de ekler.

Bu makalede, Apigee'nin sunduğu yeni bir alternatif ele alınmaktadır. Bu alternatifte, istemci bileşenleri ile Edge for Private Cloud'daki Cassandra arasındaki iletişim, harici bir hizmet ağı kullanılmadan Cassandra'da yerel olarak bulunan özellikler kullanılarak karşılıklı TLS (diğer adıyla 2 yönlü TLS) aracılığıyla güvence altına alınır.

Yerel mTLS özelliği

Cassandra ile bu makalede açıklanan istemci bileşenleri arasında mTLS'nin etkinleştirilmesi, Apache Cassandra tarafından yerel olarak sağlanan TLS özelliklerine dayanır. Etkinleştirildiğinde, Cassandra'ya (CQL yerel aktarım bağlantı noktası 9042'de) istemci bağlantıları kurulmadan önce istemcilerle 2 yönlü TLS el sıkışması gerçekleştirilir. Bu çift yönlü TLS bağlantısı için Cassandra sunucu, Cassandra'ya bağlanan çeşitli istemciler (ör. edge-message-processor, cqlsh aracı vb.) ise istemci olarak davranır.

İki yönlü TLS (veya karşılıklı TLS ya da mTLS) için hem Cassandra'nın hem de istemcilerin kendi anahtar depolarıyla ayarlanması gerekir. Her Cassandra düğümünün anahtar deposu kendi anahtarını ve sertifikasını içermelidir. Her istemci uygulamasının anahtar deposu, söz konusu istemcinin anahtarını ve sertifikasını içermelidir. Hem Cassandra'ya hem de istemcilere, karşı tarafın sertifikalarını ve ilişkili zincirini içeren bir güven deposu eklenmelidir. Her Cassandra düğümünün güven deposu, istemcilerin sertifikalarını içermelidir ve her istemcinin güven deposu, tüm Cassandra düğümlerinin sertifikalarını içermelidir. İki yönlü TLS el sıkışmasının genel olarak nasıl çalıştığı hakkında daha fazla bilgi için Apigee'nin İki Yönlü TLS/SSL makalesini inceleyebilirsiniz.

Sertifika zincirleme

Genellikle çift yönlü TLS'de sunucu sertifikaları, istemci sertifikaları, sertifika zincirleri, anahtar depoları ve güven depoları çeşitli şekillerde oluşturulabilir. Aynı durum Cassandra ve istemci yerel mTLS için de geçerlidir. Kuruluşların genellikle Özel Bulut kümeleri için Edge'i nasıl çalıştırdığını ve oluşturulabilecek benzersiz istemci-Cassandra bağlantı çiftlerinin sayısını göz önünde bulunduran Apigee, bu özellik için anahtarları ve sertifikaları yapılandırırken aşağıdaki genel yaklaşımı uygulamanızı önerir. Başka yöntemler de kullanılabilir ancak aşağıdaki yöntem, güvenlik ve bakım maliyeti açısından iyi bir denge sağlar.

  1. Kök sertifika ve kök tarafından imzalanmış bir ara anahtar/sertifika çifti edinin. Bu tür anahtar ve sertifikalara zaten sahip olabilirsiniz. Aksi takdirde, Ek 1'deki adımları kullanarak kendinden imzalı kök ve ara sertifikalar ile anahtarlar oluşturabilirsiniz.

  2. Uygulamaya özel tüm (yaprak) anahtarları ve sertifikaları imzalamak için yukarıdaki ortak ara anahtarı/sertifikayı kullanın.

Bir kümede ortak bir ara anahtar/sertifika olması, her Cassandra ve istemci düğümünde ortak bir güven deposunun (aynı kök ve ara sertifika zincirini içeren) yapılandırılmasını sağlar. Her Cassandra düğümü ve istemci uygulaması, ortak ara anahtar/sertifika tarafından imzalanmış kendi benzersiz yaprak anahtarını ve sertifikasını alır.

  1. Cassandra düğümünün veya istemci uygulamasının varlık sertifikasını rotasyona tabi tutmak kolaydır.
  2. Ara veya kök sertifikayı döndürmek hâlâ oldukça karmaşık bir işlemdir ancak bu tür döndürme işlemlerinin sıklığı, varlık sertifikalarına kıyasla çok daha düşük olacaktır.

Farklı özel bulut kümelerinde ortak kök ve ara sertifikalar kullanıp kullanmayacağınıza karar vermek için kuruluşunuzun güvenlik uygulamalarından yararlanın. Alternatif sertifika kurulumları için Ek 2'ye bakabilirsiniz.

Bu makaledeki diğer adımlarda, yukarıdaki anahtar ve sertifika tasarlama metodolojisiyle ilgili ayrıntılar verilmiştir.

Sınırlamalar ve uyarılar

Bu özellik için aşağıdaki sınırlamalar geçerlidir.

  • İstemci bileşenleri ile Cassandra arasında yerel mTLS sunan bu teklif, apigee-mtls ile uyumlu DEĞİLDİR. Bu özelliği kullanıyorsanız apigee-mtls'yi kullanamazsınız. apigee-mtls'yi kullanıyorsanız da bu özelliği kullanamazsınız.
  • İstemci bileşenleri ile Cassandra arasında mTLS'nin etkinleştirilmesi, istemciler ile Cassandra arasında kurulan bağlantılar üzerinde performans açısından bir miktar etki yaratır. Cassandra ve istemcilerin iletişime başlamadan önce TLS üzerinde anlaşması gerektiğinden, istemcilerin başlatılması veya Cassandra bağlantılarının ölçeklendirilmesi gibi işlemler daha yavaş olabilir. Etki küçük olmalı ve genellikle fark edilmemelidir.
  • Cassandra'da mTLS, gelen istemci bağlantılarında isteğe bağlı olarak zorunlu kılınabilir. Zorunlu kılma etkinleştirilebilir ancak Apigee yazılımının yükseltilmesi, TLS özelliklerinin etkinleştirilmesi/devre dışı bırakılması ve belirli sertifika rotasyonu türleri gibi operasyonel görevler sırasında devre dışı bırakılması gerekir. Daha fazla bilgi için İşlemler ve Yapılandırmalar bölümüne bakın.
  • Sertifikaların yönetimi ve bakımı müşterinin sorumluluğundadır.
  • Sertifikaları döndürmenin çeşitli nüansları vardır. Daha fazla bilgi için lütfen Sertifika Döndürme bölümüne bakın.

Yerel mTLS'yi etkinleştirme

Genel olarak, yerel mTLS'yi etkinleştirmek aşağıda açıklandığı gibi 3 adımlı bir prosedürdür:

  1. Bir kök sertifika ve bir ara anahtar/sertifika çifti edinin.
  2. 1 Cassandra düğümünün yaprak anahtar/sertifika çiftini oluşturun, imzalayın, bir anahtar deposunda saklayın ve Cassandra'yı isteğe bağlı mTLS için yapılandırın. Her Cassandra düğümü için adımları tek tek tekrarlayın.
  3. 1 istemci uygulamasının yaprak anahtarı/sertifika çiftini oluşturun, imzalayın, anahtar deposunda saklayın ve istemci uygulamasını mTLS için yapılandırın. Adımları her istemci uygulamasında tek tek tekrarlayın. İstemci uygulamaları:
    1. edge-management-server
    2. edge-message-processor
    3. edge-router

Bu adımlar aşağıda ayrıntılı olarak açıklanmıştır:

Kök ve ara sertifikaları edinme

Kök sertifika ve kök tarafından imzalanmış bir ara anahtar/sertifika çifti edinin. Kuruluşunuzun CA imzalı kök ve ara sertifikasını kullanın veya kendinden imzalı sertifikalar oluşturun. Kök ve ara sertifika zincirini bir güven deposunda saklayın. Faydalı komutlar için Ek 1'e bakın. Sonraki komutlar, aşağıdaki dosyalara erişiminiz olduğunu varsayar:

  • intermediate.key - varlık sertifikalarını imzalamak için ara sertifikanın anahtar dosyası
  • intermediate-cert.pem- ara sertifika

Cassandra düğümlerini yapılandırma

  1. Bir Cassandra düğümü seçin
  2. Bir yaprak anahtar ve sertifika çifti oluşturup ara sertifikayla imzalayın. Anahtarı ve imzalı sertifikayı bir anahtar deposuna kaydedin. Aşağıda bir örnek gösterilmiştir:
    
    # Generate Leaf key and csr
    openssl req -newkey rsa:2048 -keyout cass-node1.key -out cass-node1-req.pem -sha256 -days 365 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=yourip/emailAddress=cassnode1@yourorg.com"
    
    # leaf cert signed by intermediate
    openssl x509 -req -in cass-node1-req.pem -CAkey intermediate.key -CA intermediate-cert.pem -days 365 -CAcreateserial -out cass-node1-cert.pem
    
    # keystore packaging leaf key and cert
    openssl pkcs12 -export -clcerts -in cass-node1-cert.pem -inkey cass-node1.key -out cass-node1-keystore.pfx -name nativemtls -password pass:keystorepass

    Anahtar deposu ve güven deposu dosyalarını düğümde belirli bir konuma yerleştirin ve bu dosyalara apigee kullanıcısının erişebildiğinden emin olun.

    cp cass-node1-keystore.pfx /opt/apigee/customer/application/
    cp truststore.pfx /opt/apigee/customer/application/
    
    chown apigee:apigee /opt/apigee/customer/application/cass-node1-keystore.pfx
    chown apigee:apigee /opt/apigee/customer/application/truststore.pfx

  3. Dosya oluşturma veya düzenleme /opt/apigee/customer/application/cassandra.properties. Bu dosyaya aşağıdaki içeriği ekleyin:
    ### Enable Cassandra TLS on CQL connections
    conf_cassandra_client_encryption_enabled=true
    
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    
    ### Keystore details
    conf_cassandra_client_encryption_keystore=/opt/apigee/customer/application/cass-node1-keystore.pfx
    conf_cassandra_client_encryption_keystore_password=keystorepass
    conf_cassandra_server_encryption_store_type=PKCS12
    
    ### Whether to enable 2-way TLS (or mTLS) - true or false
    conf_cassandra_client_encryption_require_client_auth=true
    
    ### When 2-way TLS is enabled, client certificate details need to be provided via a truststore
    conf_cassandra_client_encryption_truststore=/opt/apigee/customer/application/truststore.pfx
    conf_cassandra_client_encryption_truststore_password=trustpass
    conf_cassandra_client_encryption_store_type=PKCS12
    

    Dosyanın apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun:

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  4. Cassandra düğümünü yapılandırma ve yeniden başlatma
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  5. Yukarıdaki adımları her Cassandra düğümünde tek tek tekrarlayın.

İstemci uygulamalarını yapılandırma

Bu bölüm, Cassandra'ya bağlanan aşağıdaki istemci bileşenleri için geçerlidir:

  • edge-management-server
  • edge-message-processor
  • kenar yönlendirici

  1. Bir istemci bileşeni seçin
  2. Bir yaprak anahtar ve sertifika çifti oluşturup bunu ara sertifikayla imzalayın. Anahtarı ve imzalı sertifikayı bir anahtar deposunda saklayın. Aşağıda bir örnek gösterilmiştir:
    
    # Generate Leaf key and csr
    openssl req -newkey rsa:2048 -keyout mgmt-node1.key -out mgmt-node1-req.pem -sha256 -days 365 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=yourip/emailAddress=mgmtnode1@yourorg.com"
    
    # leaf cert signed by intermediate
    openssl x509 -req -in mgmt-node1-req.pem -CAkey intermediate.key -CA intermediate-cert.pem -days 365 -CAcreateserial -out mgmt-node1-cert.pem
    
    # keystore packaging leaf key and cert
    openssl pkcs12 -export -clcerts -in mgmt-node1-cert.pem -inkey mgmt-node1.key -out mgmt-node1-keystore.pfx -name nativemtls -password pass:keystorepass
    

    Anahtar deposu ve güven deposu dosyalarını düğümde belirli bir konuma yerleştirin ve bu dosyalara apigee kullanıcısının erişebildiğinden emin olun.

    cp mgmt-node1-keystore.pfx /opt/apigee/customer/application/
    cp truststore.pfx /opt/apigee/customer/application/
    
    chown apigee:apigee /opt/apigee/customer/application/mgmt-node1-keystore.pfx
    chown apigee:apigee /opt/apigee/customer/application/truststore.pfx

  3. Yapılandırdığınız uygulamaya göre yapılandırma dosyası oluşturma ve düzenleme
    Uygulama Yapılandırma dosyası
    Yönetim sunucusu /opt/apigee/customer/application/management-server.properties
    Yönetim işlemcisi /opt/apigee/customer/application/message-processor.properties
    Yönlendirici /opt/apigee/customer/application/router.properties

    Dosyaya aşağıdaki yapılandırmaları ekleyin:

    ### Enable TLS on CQL connections
    conf_cassandra_sslconfig.enable.tls=true
    conf_cassandra_sslconfig.enable.mtls=true
    
    ### Keystore Details
    conf_cassandra_sslconfig.keystore.path=/opt/apigee/customer/application/mgmt-node1-keystore.pfx
    conf_cassandra_sslconfig.keystore.password=keystorepass
    conf_cassandra_sslconfig.keystore.type=PKCS12
    
    ### Truststore Details
    conf_cassandra_sslconfig.truststore.path=/opt/apigee/customer/application/truststore.pfx
    conf_cassandra_sslconfig.truststore.password=trustpass
    conf_cassandra_sslconfig.truststore.type=PKCS12
    

    Yapılandırma dosyasının apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun.

    chown apigee:apigee configuration file
    
    ### Example:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    

  4. İstemci uygulamasını yeniden başlatın.
    # Configure and restart service:
    apigee-service component configure
    apigee-service component restart
    # Example, to configure and restart message processor application
    apigee-service edge-message-processor configure
    apigee-service edge-message-processor restart
    
  5. İstemci uygulamasında SSL'nin doğru şekilde yapılandırıldığını doğrulamak için ilgili uygulamanın sistem günlüğünde aşağıdaki satırlara benzer günlükleri arayabilirsiniz:

    Cassandra bağlantısına SSL seçenekleri eklendi

  6. Yukarıdaki adımları her istemci uygulamada tek tek tekrarlayın.

İşlemler ve yapılandırmalar

mTLS'yi zorunlu kıl

Cassandra'da mTLS zorunlu kılınmadığında Cassandra, istemcilerden gelen düz metin bağlantılarını veya başarılı bir şekilde 2 yönlü TLS el sıkışması gerçekleştirebildiği istemcileri kabul eder. mTLS yaptırımının çalışması için önce Cassandra'da mTLS'nin yapılandırılması gerekir. Aşağıdaki adımları uygulayarak Cassandra'da mTLS zorunluluğu ayarlayabilirsiniz:

  1. Bir Cassandra düğümü seçin.
  2. /opt/apigee/customer/application/cassandra.properties dosyasını oluşturun veya düzenleyin. Bu dosyaya aşağıdaki özelliği ekleyin veya düzenleyin:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=false
    

    Dosyanın apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun.

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. Cassandra düğümünü yapılandırma ve yeniden başlatma
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. Yukarıdaki adımları her Cassandra düğümünde tek tek tekrarlayın.

Cassandra'da mTLS zorunlu kılındıktan sonra standart Cassandra sorgu aracı cqlsh, Cassandra'ya doğrudan bağlanamaz. cqlsh'yi SSL için yapılandırmak üzere yeni bir yaprak anahtar ve sertifika (istemci uygulamaları için yaprak anahtar ve sertifikaya benzer) oluşturun ve aşağıdakileri yapın:

  1. $HOME/.cassandra/cqlshrc dosyasını oluşturun veya düzenleyin
  2. Dosyaya aşağıdaki içerikleri ekleyin:
    [ssl]
    certfile = /home/admin-user/certs/inter-root.pem
    validate = false
    userkey = /home/admin-user/certs/cqlsh1.key
    usercert = /home/admin-user/certs/cqlsh1-cert.pem
    
    • certfile - Kök ve ara sertifika zincirini içeren sertifika dosyası
    • userkey: cqlsh tarafından kullanılacak istemci anahtarı. Bu, ara sertifikayla oluşturup imzalayabileceğiniz bir yaprak anahtar/sertifika çifti olmalıdır.
    • usercert: cqlsh tarafından kullanılacak istemci sertifikası. Bu, ara sertifikayla oluşturup imzalayabileceğiniz bir yaprak anahtar/sertifika olmalıdır.
  3. --ssl bağımsız değişkenini sağlarken cqlsh komutunu her zamanki gibi çalıştırın. Örnek:
    $  /opt/apigee/apigee-cassandra/bin/cqlsh --ssl X.X.X.X
    Connected to Apigee at X.X.X.X:9042
    [cqlsh 6.0.0 | Cassandra 4.0.13 | CQL spec 3.4.5 | Native protocol v5]
    Use HELP for help.
    cqlsh>
    

Cassandra'da mTLS zorunluluğunu devre dışı bırakma

Cassandra'da mTLS zorunluluğunu devre dışı bırakmak için aşağıdaki adımları uygulayın:

  1. Bir Cassandra düğümü seçin.
  2. Dosya oluşturma veya düzenleme /opt/apigee/customer/application/cassandra.properties. Bu dosyaya aşağıdaki özelliği ekleyin veya düzenleyin:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    

    Dosyanın apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun.

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. Cassandra düğümünü yapılandırma ve yeniden başlatma
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. Yukarıdaki adımları her Cassandra düğümünde tek tek tekrarlayın.

Yerel mTLS'yi devre dışı bırakma

Yerel mTLS'yi devre dışı bırakma, yerel mTLS'yi etkinleştirmeye benzer şekilde çok adımlı bir işlemdir. Genel adımlar şunlardır:

  1. Cassandra'da mTLS yaptırımını devre dışı bırakın (Zorunlu kılınmışsa)
  2. Aşağıdaki istemci uygulamalarının tüm düğümlerinde mTLS'yi tek tek devre dışı bırakın:
    • edge-management-server
    • edge-message-processor
    • edge-router
    1. Yapılandırdığınız uygulamaya göre yapılandırma dosyası oluşturun ve düzenleyin:
      Uygulama Yapılandırma dosyası
      Yönetim sunucusu /opt/apigee/customer/application/management-server.properties
      Yönetim işlemcisi /opt/apigee/customer/application/message-processor.properties
      Yönlendirici /opt/apigee/customer/application/router.properties
    2. Yapılandırma dosyasına aşağıdaki özellikleri ekleyin veya düzenleyin:
      ### TLS on CQL connections
      conf_cassandra_sslconfig.enable.tls=false
      conf_cassandra_sslconfig.enable.mtls=false
      
    3. Yapılandırma dosyasının apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun:
      chown apigee:apigee configuration file
      
      ### Example:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    4. İstemci uygulamayı yeniden başlatın:
      
      # Configure and restart service:
      apigee-service component configure
      apigee-service component restart
      
      # Example, to configure and restart message processor application
      apigee-service edge-message-processor configure
      apigee-service edge-message-processor restart
      
    5. Her istemci uygulamada #a ile #d arasındaki adımları tek tek tekrarlayın.
  3. Tüm Cassandra düğümlerinde mTLS'yi tek tek devre dışı bırakın:
    1. Bir Cassandra düğümü seçin.
    2. Dosya oluşturma veya düzenleme /opt/apigee/customer/application/cassandra.properties. Bu dosyaya aşağıdaki özelliği ekleyin veya düzenleyin:
      ### Cassandra TLS on CQL connections
      conf_cassandra_client_encryption_enabled=false
      

      Dosyanın apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun.

      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
      
    3. Cassandra düğümünü yapılandırma ve yeniden başlatma
    4. apigee-service apigee-cassandra configure
      apigee-service apigee-cassandra restart
      
    5. Her Cassandra düğümünde #a ile #c arasındaki adımları tek tek tekrarlayın.

Sertifika değişim döngüleri

Yalnızca yaprak sertifikalar için rotasyon (aynı ara ve kök sertifikaları koruma)

İstemci uygulamalarını yapılandırma bölümündekilere benzer adımlar uygulanabilir:

  1. Aynı ara anahtarı/sertifikayı kullanan bir uygulama için yeni bir yaprak anahtar/sertifika oluşturma
  2. Uygulamada, yeni yaprak anahtarının/sertifikasının yolunu şifre ve anahtar deposu türüyle birlikte yapılandırın.
  3. Uygulamayı yeniden başlatma
Kök veya ara sertifikalar için rotasyon

Ara veya kök sertifikayı rotasyona tabi tutmayı planlıyorsanız bunu çok adımlı bir işlem olarak yapmanız önerilir:

  1. Kümeniz genelinde Cassandra yerel mTLS'sini devre dışı bırakın.
  2. Yeni yaprak veya uygulama sertifikaları oluşturmak için yeni kök ve ara sertifikaları kullanın.
  3. Yeni anahtar ve sertifika grubunu kullanarak Cassandra'da yerel mTLS'yi etkinleştirme adımlarını uygulayın.

Genel Apigee İşlemleri

Apigee yazılımını yükseltme, Cassandra düğümleri ekleme veya kaldırma, veri merkezleri ekleme veya kaldırma, Cassandra kimlik doğrulamasını etkinleştirme ya da devre dışı bırakma gibi genel Apigee işlemlerini gerçekleştirmek için Cassandra'da mTLS'nin zorunlu kılınmadığından emin olun. Karşılıklı TLS'yi zorunlu kıldıysanız bu işlemlere devam etmeden önce zorunlu kılmayı devre dışı bırakın.

Ek 1

Kendi kendine imzalanmış bir kök ve ara anahtar/sertifika çifti oluşturmak ve bu sertifika zincirini bir güven deposuna eklemek için bu ekteki adımlar uygulanabilir.

Kendinden imzalı kök ve ara sertifikalar oluşturma

# Create self-signed root key and cert
openssl req -x509 -newkey rsa:2048 -keyout root.key -out root-cert.pem -sha256 -days 3650 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=root.yourorg.com/emailAddress=apigeeroot@yourorg.com"

# Create intermediate key and cert (signed by root)
openssl req -newkey rsa:2048 -keyout intermediate.key -out intermediate-req.pem -sha256 -days 3650 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=inter.yourorg.com/emailAddress=apigeeinter@yourorg.com"

openssl x509 -req -in intermediate-req.pem -CAkey root.key -CA root-cert.pem -days 3650 -CAcreateserial -out intermediate-cert.pem

Güven deposu oluşturma

# Merge root and intermediate cert into 1 file
cat intermediate-cert.pem > inter-root.pem
cat root-cert.pem >> inter-root.pem

# Create truststore to be used everywhere
keytool -keystore truststore.pfx -storetype PKCS12 -importcert -file inter-root.pem -keypass trustpass -storepass trustpass -alias nativemtls -noprompt

Ek 2: Alternatif sertifika zinciri kurulumları

Bu makalede, güvenlik ve işlem kolaylığı arasında denge sağlayan belirli bir sertifika zinciri oluşturma kurulumu önerilmektedir. Ancak alternatifler de mevcuttur ve aşağıda açıklanmıştır. Genel ilkelerin çoğu, aşağıdakiler gibi diğer yöntemler için de geçerlidir:

  1. Her Cassandra düğümü veya istemci uygulaması için doğrudan yaprak anahtarlar ve sertifikalar (imzalama kökü veya ara sertifikalar olmadan) Bu durum, sertifika rotasyonunu karmaşık hale getirebilir.
  2. Farklı kullanım alanları için birden fazla kök ve ara sertifika grubuna sahip olma. Örneğin, Cassandra düğümlerinde, Cassandra'nın tüm varlık sertifikalarının imzalandığı 1 kök/ara sertifika grubu bulunur. Benzer şekilde, tüm istemci uygulamalarının, uygulama varlık sertifikalarını imzalamak için ayrı bir kök/ara sertifika grubu olabilir. Bu tür kurulumlar uygulanabilir ancak kök/ara sertifika zincirinin uygun güven deposuna eklenmesini gerektirir. Bu örnekte, Cassandra'nın güven depoları istemcinin kök/ara sertifikalarını içermeli ve istemci uygulamalarının güven depolarında Cassandra düğümlerinin kök/ara zinciri bulunmalıdır.
  3. Yukarıdakine benzer şekilde, farklı bölgeler için birden fazla kök ve ara sertifika grubunuz olabilir ancak tüm bölgelerdeki tüm istemcilerin ve tüm bölgelerdeki tüm sunucuların, yapılandırılmış güvenilir depoya eklenerek tüm kök ve ara zincirlerden haberdar edilmesi gerekir.