Tek yönlü kimlik doğrulama yapılandırıldığında, sunucu kimliği doğrulandıktan sonra HTTPS bağlantısı kurulur. Karşılıklı kimlik doğrulama yapılandırıldığında ise hem istemci hem de sunucu kimliği doğrulandıktan sonra HTTPS bağlantısı kurulabilir. Karşılıklı kimlik doğrulama daha yüksek güvenlik sunar. İş açısından kritik hizmetlerinizi korumak için karşılıklı kimlik doğrulamayı yapılandırabilirsiniz. Bu konuda, bir CLB örneğinin HTTPS dinleyicisinde karşılıklı kimlik doğrulamanın nasıl yapılandırılacağı açıklanmaktadır.
Yordam
Bu örnekte, istemci sertifikasını imzalamak için kendinden imzalı bir sertifika yetkilisi (CA) sertifikası kullanılmaktadır. HTTPS dinleyicisinde karşılıklı kimlik doğrulamayı yapılandırmak için aşağıdaki adımları uygulayın.

Önkoşullar
Bir CLB örneği oluşturdunuz.
Her biri farklı bir uygulama çalıştıran ECS01 ve ECS02 olmak üzere iki arka uç sunucusu oluşturdunuz.
Adım 1: Sunucu sertifikası satın alın
Alibaba Cloud Certificate Management Service konsolu veya diğer hizmet sağlayıcılardan sunucu sertifikası satın alabilirsiniz. Tarayıcı kullanarak sunucunun gönderdiği sertifikanın güvenilir bir yetkili tarafından verilip verilmediğini kontrol edebilirsiniz.
Bu konuda, Alibaba Cloud Certificate Management Service konsolundan satın alınan bir sunucu sertifikası örnek olarak kullanılmaktadır. Daha fazla bilgi için bkz. SSL sertifikası satın alma.
Sertifikayla ilişkilendirmek için geçerli bir alan adınız olduğundan emin olun.
Adım 2: OpenSSL kullanarak CA sertifikası oluşturun
Karşılıklı kimlik doğrulamada, sunucu sertifikasının tarayıcılar tarafından güvenilir olması için yetkili bir CA tarafından verilmesi gerekir (Adım 1). Ancak, istemci sertifikalarını yönettiğiniz ve dağıttığınız için bunların genel bir güven zincirine ihtiyacı yoktur. Bu nedenle, bu sertifikaları vermek üzere kendinden imzalı bir CA sertifikası kullanabilirsiniz. İstemci sertifikaları vermek için kendinden imzalı bir CA sertifikası oluşturmak amacıyla aşağıdaki adımları izleyin.
OpenSSL'in yüklü olduğu herhangi bir Linux makinesinde oturum açın.
-
Kök sertifikanın özel anahtarını oluşturmak için aşağıdaki komutu çalıştırın:
openssl genrsa -out root.key 4096 -
Kök sertifika için bir sertifika imzalama isteği (CSR) dosyası oluşturmak için aşağıdaki komutu çalıştırın:
openssl req -new -out root.csr -key root.keyİstendiğinde bilgileri girin. Aşağıda bir örnek verilmiştir:
NotCA sertifikasının Ortak Adı (Common Name) benzersiz olmalıdır. Sunucu veya istemci sertifikalarıyla aynı Ortak Adı kullanmayın.
Country Name (2 letter code) [XX]:cn State or Province Name (full name) []:bj Locality Name (eg, city) [Default City]:bj Organization Name (eg, company) [Default Company Ltd]:alibaba Organizational Unit Name (eg, section) []:test Common Name (eg, your name or your servers hostname) []:root Email Address []:a.alibaba.com A challenge password []: An optional company name []: -
Kök sertifikayı oluşturmak için aşağıdaki komutu çalıştırın:
openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650Çıktı aşağıdakine benzer:
[root@i-xxx ~]# openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650 Signature ok subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = root, emailAddress = xxx@xxx.com Getting Private key Oluşturulan kök sertifikayı
root.crtve özel anahtarıroot.keygörüntülemek içinlskomutunu çalıştırın.
Adım 3: İstemci sertifikası oluşturun
İstemci sertifikası için bir özel anahtar oluşturmak üzere aşağıdaki komutu çalıştırın:
İstemci sertifikası için bir CSR dosyası oluşturmak üzere aşağıdaki komutu çalıştırın. Ortak Adı (Common Name) alan adınız olarak ayarlayın.
İstemci sertifikasını oluşturmak için aşağıdaki komutu çalıştırın:
Oluşturulan istemci sertifikasını
client.crttarayıcı tarafından tanınabilen bir PKCS12 dosyasına dönüştürmek için aşağıdaki komutu çalıştırın. İstemci özel anahtarı için belirlediğiniz şifreleme parolasını girmek üzere istemleri takip edin.Oluşturulan istemci sertifikası dosyalarını görüntülemek için
lskomutunu çalıştırın:client.key,client.crtveclient.p12.
openssl genrsa -out client.key 4096
openssl req -new -out client.csr -key client.key
openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
Adım 4: İstemci sertifikasını yükleyin
İstemci sertifikasını istemciye yükleyin.
Windows istemcisi
client.p12 dosyasına çift tıklayın ve Sertifikayı Alma Sihirbazını takip ederek yüklemeyi tamamlayın.
Linux istemcisi
client.key, client.crt ve root.crt dosyalarını Linux istemcinizdeki herhangi bir dizine yükleyin.
Bu örnekte dizin /home/ca olarak belirtilmiştir. Dizin izinlerini değiştirmek için sudo chmod 700 /home/ca komutunu çalıştırın.
Adım 5: Sunucu sertifikasını ve CA sertifikasını yükleyin
CLB konsolunda oturum açın.
Sol gezinme bölmesinde, seçeneğini belirleyin ve sunucu sertifikasını yüklemek için Add Certificate öğesini tıklayın.
-
Add Certificate panelinde, Third-party Certificates seçeneğini tıklayın, aşağıdaki parametreleri yapılandırın ve ardından Create öğesini tıklayın.
Parametre
Açıklama
Certificate Name
Sertifika için bir ad girin.
Certificate Type
Server Certificate seçeneğini belirleyin.
Public Key Certificate
Sunucu sertifikasının içeriği. İçeriği düzenleyiciye yapıştırın.
Private Key
Sunucu sertifikasının özel anahtarı. Özel anahtarı düzenleyiciye yapıştırın.
Region
CLB örneğinin bölgesini seçin. Certificates sayfasında, CA sertifikasını yüklemek için Add Certificate öğesini tıklayın.
-
Add Certificate panelinde, Third-party Certificates seçeneğini tıklayın, aşağıdaki parametreleri yapılandırın ve ardından Create öğesini tıklayın.
Parametre
Açıklama
Certificate Name
Sertifika için bir ad girin.
Certificate Type
CA Certificate seçeneğini belirleyin.
Client CA Certificate
İstemcinin genel anahtar sertifikasını yükleyin.
Region
CLB örneğinin bölgesini seçin.
Adım 6: HTTPS dinleyicide karşılıklı kimlik doğrulamayı yapılandırın
CLB, sertifikası yüklü olmayan istemcilerden gelen istekleri reddeder. CLB örneğiniz üretim ortamındaysa, bu yapılandırmayı önce hazırlama ortamında test edin. Alternatif olarak, mevcut hizmetlerin kesintiye uğramaması için yeni bir dinleme bağlantı noktası kullanın.
Classic Load Balancer konsolunda oturum açın.
Oluşturduğunuz CLB örneğinin kimliğini tıklayın.
Listeners sekmesinde, Add Listener öğesini tıklayın.
-
Protocol & Listener sekmesinde, aşağıdaki parametreleri yapılandırın ve ardından Next öğesini tıklayın.
Select Listener Protocol: HTTPS
Listener Port: 443
Certificate Management Service sekmesinde, yüklediğiniz sunucu sertifikasını seçin.
Advanced Settings yanındaki Modify öğesini tıklayın, karşılıklı kimlik doğrulamayı etkinleştirin, yüklenen CA sertifikasını seçin ve ardından Next öğesini tıklayın.
Default Server Group seçeneğini belirleyin ve arka uç sunucularını eklemek için Add öğesini tıklayın.
Kalan parametreler için varsayılan değerleri kabul edin, sihirbazda ilerlemek için Next öğesini tıklayın. Son sayfada, dinleyiciyi oluşturmak için Submit öğesini tıklayın.
Adım 7: Karşılıklı kimlik doğrulama özelliğini test edin
Windows istemcisi
Tarayıcıda, IP adresinin CLB'nin genel IP adresi olduğu
https://ip:portadresini girin. Görüntülenen iletişim kutusunda, istemlere göre sertifikayı onaylayın.-
Web sayfasını yenileyin. İsteklerin arka uç sunucularına eşit şekilde dağıtıldığını görebilirsiniz.
Sayfada
Hello World ! This is ECS01.mesajı görüntüleniyorsa, istek ECS01 sunucusuna iletilmiş demektir.Sayfada
Hello World ! This is ECS02.mesajı görüntüleniyorsa, istek ECS02 sunucusuna iletilmiş demektir.
Linux istemcisi
Sertifikaların yüklü olduğu Linux istemcisinde oturum açın ve CLB karşılıklı kimlik doğrulamasını doğrulamak için aşağıdaki komutu çalıştırın:
sudo curl --cert /home/ca/client.crt --key /home/ca/client.key --cacert /home/ca/root.crt https://<the domain name on the server certificate>:<port>
Aşağıdaki yanıtlar döndürülürse, istemci ve sunucu arasındaki karşılıklı kimlik doğrulamanın tamamlandığı ve isteklerin iki ECS örneğine dağıtıldığı anlaşılır.
[test@iZxxxw521i57Z ~]$ sudo curl --cert /home/ca/client.crt --key /home/ca/client.key --cacert /home/ca/ca.crt https://xxx.com.cn
Hello World ! This is ECS01.
[test@iZxxxw521i57Z ~]$ sudo curl --cert /home/ca/client.crt --key /home/ca/client.key --cacert /home/ca/ca.crt https://xxx.com.cn
Hello World ! This is ECS02.