İnternet erişimine sahip ApsaraMQ for Kafka örnekleri, istemci-aracı iletişimini şifrelemek için SSL sertifikaları kullanır. Varsayılan olarak SSL sertifikası anahtar boyutu 1.024 bittir. Güvenliği artırmak için anahtar boyutunu 4.096 bite yükseltebilirsiniz.
Yükseltme işlemi iki aşamalıdır: önce tüm istemcilerdeki sertifikayı değiştirin, ardından konsoldaki anahtar boyutunu değiştirin.
ApsaraMQ for Kafka konsolundaki örnek ayrıntıları sayfasında SSL sertifikası anahtar boyutunu değiştirmek, mevcut istemcilerin kullanılamaz hale gelmesine neden olur. Yükseltmeden önce bu konuda açıklandığı gibi yeni sertifikayı indirin, istemci sertifika yapılandırmalarını güncelleyin ve istemcileri yeniden başlatın.
Serverless örnekler varsayılan olarak 4.096 bit anahtar boyutu kullanır. Bu değer değiştirilemez. Aşağıdaki talimatlar yalnızca serverless olmayan örnekler için geçerlidir.
Ön koşullar
Başlamadan önce aşağıdakileri yaptığınızdan emin olun:
Satın alınan ve dağıtılan, İnternet erişimli bir ApsaraMQ for Kafka örneğinin Running durumunda olması
ApsaraMQ for Kafka konsoluna erişiminizin olması
Çalışma mantığı
Bir ApsaraMQ for Kafka örneğinde İnternet erişimini etkinleştirdiğinizde sistem SSL ile ilgili bağlantı noktalarını başlatır ve bir SSL sertifikası atar. Mevcut anahtar boyutunu Instance Details sayfasının Configurations bölümünde görüntüleyebilirsiniz.
1.024 bitten 4.096 bite yükseltme işlemi iki aşamadan oluşur:
İstemci tarafı -- Hem 1.024 bit hem de 4.096 bit sertifikaları içeren bir geçiş sertifikası indirin, her bir istemciye dağıtın ve istemcileri yeniden başlatın.
Sunucu tarafı -- Konsoldaki SSL Certificate Key Size (Bits) parametresini 4.096 olarak değiştirin.
Geçiş sertifikası (Java için mix.4096.client.truststore.jks, diğer diller için mix-4096-ca-cert) her iki anahtar boyutuyla da uyumludur. Bu sayede konsolda hala 1.024 gösteriliyor olsa bile veya zaten 4.096'ya geçilmiş olsa bile istemciler bağlı kalır.
Adım 1: SSL sertifikasını indirme
Dağıtım durumunuza ve programlama dilinize uygun sertifika dosyasını seçin.
Java istemcileri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Java dışı istemciler
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Java dışı sertifika indirme bağlantıları için bkz. Genel Bakış konusundaki "SDKs" bölümü.
Anahtar boyutu yükseltmesi için mix sertifikasını kullanın. Hem 1.024 bit hem de 4.096 bit anahtar boyutlarını desteklediğinden istemciler geçiş süreci boyunca bağlı kalır.
Adım 2: Sertifikayı değiştirme ve istemcileri yeniden başlatma
İndirilen sertifika dosyasını istemcinizdeki SSL sertifika dizinine kopyalayın.
-
Yeni sertifika dosyasına başvuracak şekilde istemci yapılandırmasını güncelleyin. Java istemcileri -- Kafka istemci yapılandırmanızda
ssl.truststore.locationözelliğini ayarlayın: Java dışı istemciler -- Yeni CA sertifika dosyasını işaret edin. Örneğin,confluent-kafkakullanan Python istemcileri için:ssl.truststore.location=/path/to/mix.4096.client.truststore.jksconf = { 'bootstrap.servers': '<your-endpoint>', 'security.protocol': 'SSL', 'ssl.ca.location': '/path/to/mix-4096-ca-cert', } Yeni sertifikayı yüklemek için istemciyi yeniden başlatın.
İnternet üzerinden örneğe bağlanan tüm istemciler için 1-3. adımları tekrarlayın.
Her bir istemcinin yeniden başlatıldıktan sonra mesaj üretebildiğini ve tüketebildiğini doğrulayın. 3. Adıma geçmeden önce tüm istemcilerin çalıştığını onaylayın.
Adım 3: Konsoldaki anahtar boyutunu değiştirme
Tüm istemciler yeni sertifikayı kullanmaya başladıktan sonra:
ApsaraMQ for Kafka konsolunda oturum açın.
Örneğiniz için Instance Details sayfasını açın.
Configuration Information bölümünde SSL Certificate Key Size (Bits) değerini 4096 olarak değiştirin. Ayrıntılı talimatlar için bkz. Mesaj yapılandırmalarını değiştirme.
Adım 4: Güncellemeyi doğrulama
Instance Details sayfasında Configurations bölümünün SSL Certificate Key Size (Bits) değerinin 4096 olduğunu onaylayın.
Tüm istemcilerin hatasız mesaj üretebildiğini ve tüketebildiğini kontrol edin.
(İsteğe bağlı)
mixgeçiş sertifikasını kullandıysanız, eski 1.024 bit sertifikayı istemcilerinizden kaldırmak için bunuonly.4096.client.truststore.jks(Java) veyaonly-4096-ca-cert(Java dışı) sertifikasıyla değiştirebilirsiniz.
SSL bağlantı hatalarını giderme
Handshake başarısız oldu
Bir ApsaraMQ for Kafka örneğine SSL üzerinden bağlanırken handshake failed hatası veya nodename nor servname provided gibi bir hata alırsanız sorunu şu şekilde giderin:
Sertifika anahtar boyutunun örnek yapılandırmasıyla eşleştiğini doğrulayın. ApsaraMQ for Kafka konsolundaki Instance Details sayfasında Configurations bölümündeki SSL Certificate Key Size (Bits) değerini kontrol edin ve bu anahtar boyutuna uyan CA sertifikasını indirin.
-
İstemcinin ApsaraMQ for Kafka örneğinin CA sertifikasına güvendiğinden emin olun. CA sertifikasını konsoldan indirin veya dışa aktarmak için aşağıdaki komutu çalıştırın:
openssl s_client -connect <endpoint>:9093 -showcerts
Sertifika doğrulaması başarısız oldu (ana bilgisayar adı uyuşmazlığı)
SSL üzerinden bağlanırken certificate verify failed hatası veya ana bilgisayar adı uyuşmazlığı hatası alırsanız bunun nedeni SSL uç noktasının bir IP adresi olması, ancak örnek sertifikasının ortak ad (CN) olarak AliKafka kullanmasıdır. Sonuç olarak IP adresi sertifika ile eşleşmez.
İstemci yapılandırmasında ana bilgisayar adı doğrulamasını devre dışı bırakın:
Java istemcileri (kafka-clients):
ssl.endpoint.identification.algorithmdeğerini boş bir dize olarak ayarlayın.Python istemcileri (kafka-python):
ssl_check_hostname=Falseolarak ayarlayın.Python ssl modülü:
context.check_hostname=Falseolarak ayarlayın.
Kafka Confluent için ssl.endpoint.identification.algorithm değerini none olarak ayarlayabilirsiniz.
Ana bilgisayar adı doğrulamasının devre dışı bırakılması güvenliği azaltır. Üretim ortamlarında doğrulamayı devre dışı bırakmak yerine geçerli bir CA sertifikası ve DNS çözümlemesi yapılandırmanızı öneririz.