Özel kök CA ile Azure Application Gateway otomatik olarak imzalanan sertifika oluşturma
Application Gateway v2 SKU'su, arka uç sunucularıyla TLS bağlantılarına izin vermek için Güvenilen Kök Sertifikaların kullanılmasını sağlar. Bu sağlama, v1 SKU'da gerekli olan kimlik doğrulama sertifikalarının (tek tek Yaprak sertifikaları) kullanımını kaldırır. Kök sertifika , Base-64 ile kodlanmış X.509() şeklindedir. CER) arka uç sertifika sunucusundan kök sertifikayı biçimlendirin. Sunucu sertifikasını veren kök sertifika yetkilisini (CA) tanımlar ve ardından sunucu sertifikası TLS/SSL iletişimi için kullanılır.
Application Gateway, iyi bilinen bir CA (örneğin, GoDaddy veya DigiCert) tarafından imzalandıysa web sitenizin sertifikasına varsayılan olarak güvenir. Bu durumda kök sertifikayı açıkça karşıya yüklemeniz gerekmez. Daha fazla bilgi için bkz . Application Gateway ile TLS sonlandırma ve uçtan uca TLS'ye genel bakış. Ancak geliştirme/test ortamınız varsa ve doğrulanmış CA imzalı sertifika satın almak istemiyorsanız, kendi özel Kök CA'nızı ve bu Kök CA tarafından imzalanmış bir yaprak sertifika oluşturabilirsiniz.
Not
Kendi kendine oluşturulan sertifikalara varsayılan olarak güvenilmez ve bakımını yapmak zor olabilir. Ayrıca, güçlü olmayan eski karma ve şifreleme paketlerini de kullanabilirler. Daha iyi güvenlik için, iyi bilinen bir sertifika yetkilisi tarafından imzalanan bir sertifika satın alın.
Arka uç TLS bağlantıları için özel sertifikanızı oluşturmak için aşağıdaki seçenekleri kullanabilirsiniz.
Tek tıklamayla özel sertifika oluşturucu aracını kullanın. Sağladığınız etki alanı adını (Ortak Ad) kullanarak, bu araç Kök ve Sunucu sertifikaları oluşturmak için bu makalede belgelenen adımların aynısını gerçekleştirir. Oluşturulan sertifika dosyalarıyla, Kök sertifikayı (. CER) dosyasını ağ geçidinizin Arka Uç Ayarına ve karşılık gelen sertifika zincirine (. PFX) ile arka uç sunucusuna gidin. PFX dosyasının parolası da indirilen ZIP dosyasında sağlanır.
Gereksinimlerinize göre sertifikaları özelleştirmek ve oluşturmak için OpenSSL komutlarını kullanın. Bunu tamamen kendi başınıza yapmak istiyorsanız bu makaledeki yönergeleri izlemeye devam edin.
Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:
- Kendi özel Sertifika Yetkilinizi oluşturma
- Özel CA'nız tarafından imzalanan otomatik olarak imzalanan bir sertifika oluşturma
- Arka uç sunucusunun kimliğini doğrulamak için Application Gateway'e otomatik olarak imzalanan kök sertifika yükleme
Önkoşullar
Windows veya Linux çalıştıran bir bilgisayarda OpenSSL
Sertifika yönetimi için başka araçlar da kullanılabilir olsa da, bu öğreticide OpenSSL kullanılır. OpenSSL'i Ubuntu gibi birçok Linux dağıtımıyla birlikte bulabilirsiniz.
Web sunucusu
Örneğin, sertifikaları test etmek için Apache, IIS veya NGINX.
An Application Gateway v2 SKU
Mevcut bir uygulama ağ geçidiniz yoksa bkz. Hızlı Başlangıç: Azure Uygulaması lication Gateway ile web trafiğini yönlendirme - Azure portalı.
Kök CA sertifikası oluşturma
OpenSSL kullanarak kök CA sertifikanızı oluşturun.
Kök anahtarı oluşturma
OpenSSL'nin yüklü olduğu bilgisayarınızda oturum açın ve aşağıdaki komutu çalıştırın. Bu, şifrelenmiş bir anahtar oluşturur.
openssl ecparam -out contoso.key -name prime256v1 -genkey
Kök Sertifika oluşturma ve otomatik olarak imzalama
Sertifika İmzalama İsteği (CSR) oluşturmak için aşağıdaki komutu kullanın.
openssl req -new -sha256 -key contoso.key -out contoso.csr
İstendiğinde, kök anahtarın parolasını ve özel CA'nın Ülke/Bölge, Eyalet, Kuruluş, OU gibi kuruluş bilgilerini ve tam etki alanı adını yazın (bu, verenin etki alanıdır).
Kök Sertifikayı oluşturmak için aşağıdaki komutu kullanın.
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
Önceki komutlar kök sertifikayı oluşturur. Bunu sunucu sertifikanızı imzalamak için kullanacaksınız.
Sunucu sertifikası oluşturma
Ardından OpenSSL kullanarak bir sunucu sertifikası oluşturacaksınız.
Sertifikanın anahtarını oluşturma
Sunucu sertifikasının anahtarını oluşturmak için aşağıdaki komutu kullanın.
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
CSR Oluşturma (Sertifika İmzalama İsteği)
CSR, sertifika istenirken CA'ya verilen bir ortak anahtardır. CA, bu özel istek için sertifikayı oluşturur.
Not
Sunucu sertifikasının CN'si (Ortak Ad), verenin etki alanından farklı olmalıdır. Örneğin, bu durumda, verenin CN'si ve www.contoso.com
sunucu sertifikasının CN'si olur www.fabrikam.com
.
CSR'yi oluşturmak için aşağıdaki komutu kullanın:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
İstendiğinde kök anahtarın parolasını ve özel CA'nın kuruluş bilgilerini yazın: Ülke/Bölge, Eyalet, Kuruluş, OU ve tam etki alanı adı. Bu, web sitesinin etki alanıdır ve verenden farklı olmalıdır.
SERTIFIKAyı CSR ve anahtarla oluşturun ve CA'nın kök anahtarıyla imzalayın
Sertifikayı oluşturmak için aşağıdaki komutu kullanın:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
Yeni oluşturulan sertifikayı doğrulama
CRT dosyasının çıkışını yazdırmak ve içeriğini doğrulamak için aşağıdaki komutu kullanın:
openssl x509 -in fabrikam.crt -text -noout
Dizininizdeki dosyaları doğrulayın ve aşağıdaki dosyalara sahip olduğunuzdan emin olun:
- contoso.crt
- contoso.key
- fabrikam.crt
- fabrikam.key
Web sunucunuzun TLS ayarlarında sertifikayı yapılandırma
Web sunucunuzda fabrikam.crt ve fabrikam.key dosyalarını kullanarak TLS'yi yapılandırın. Web sunucunuz iki dosya alamıyorsa, OpenSSL komutlarını kullanarak bunları tek bir .pem veya .pfx dosyasıyla birleştirebilirsiniz.
IIS
Sertifikayı içeri aktarma ve IIS'de sunucu sertifikası olarak karşıya yükleme yönergeleri için bkz . NASıL YAPıLıR: Windows Server 2003'te Bir Web Sunucusuna İçeri Aktarılan Sertifikaları Yükleme.
TLS bağlama yönergeleri için bkz . IIS 7'de SSL'yi Ayarlama.
Apache
Aşağıdaki yapılandırma, Apache'de SSL için yapılandırılmış örnek bir sanal konaktır:
<VirtualHost www.fabrikam:443>
DocumentRoot /var/www/fabrikam
ServerName www.fabrikam.com
SSLEngine on
SSLCertificateFile /home/user/fabrikam.crt
SSLCertificateKeyFile /home/user/fabrikam.key
</VirtualHost>
NGINX
Aşağıdaki yapılandırma, TLS yapılandırmasına sahip örnek bir NGINX sunucu bloğudur :
Yapılandırmayı doğrulamak için sunucuya erişme
Kök sertifikayı makinenizin güvenilen kök deposuna ekleyin. Web sitesine eriştiğinizde, sertifika zincirinin tamamının tarayıcıda göründüğünden emin olun.
Not
DNS'nin web sunucusu adını (bu örnekte)
www.fabrikam.com
web sunucunuzun IP adresine işaret etmek üzere yapılandırıldığı varsayılır. Aksi takdirde, adı çözümlemek için hosts dosyasını düzenleyebilirsiniz.Web sitenize göz atın ve tarayıcınızın adres kutusundaki kilit simgesine tıklayarak siteyi ve sertifika bilgilerini doğrulayın.
OpenSSL ile yapılandırmayı doğrulama
İsterseniz, sertifikayı doğrulamak için OpenSSL'yi de kullanabilirsiniz.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
Kök sertifikayı Application Gateway'in HTTP Ayarlar yükleyin
Sertifikayı Application Gateway'e yüklemek için .crt sertifikasını Base-64 kodlanmış .cer biçiminde dışarı aktarmanız gerekir. .crt zaten base-64 kodlanmış biçiminde ortak anahtarı içerdiğinden, dosya uzantısını .crt olan .cer olarak yeniden adlandırmanız yeter.
Azure portal
Güvenilir kök sertifikayı portaldan karşıya yüklemek için Arka uç Ayarlar seçin ve Arka uç protokolünde HTTPS'yi seçin.
Azure PowerShell
Kök sertifikayı karşıya yüklemek için Azure CLI veya Azure PowerShell de kullanabilirsiniz. Aşağıdaki kod bir Azure PowerShell örneğidir.
Not
Aşağıdaki örnek, uygulama ağ geçidine güvenilir bir kök sertifika ekler, yeni bir HTTP ayarı oluşturur ve arka uç havuzunun ve dinleyicinin zaten var olduğunu varsayarak yeni bir kural ekler.
## Add the trusted root certificate to the Application Gateway
$gw=Get-AzApplicationGateway -Name appgwv2 -ResourceGroupName rgOne
Add-AzApplicationGatewayTrustedRootCertificate `
-ApplicationGateway $gw `
-Name CustomCARoot `
-CertificateFile "C:\Users\surmb\Downloads\contoso.cer"
$trustedroot = Get-AzApplicationGatewayTrustedRootCertificate `
-Name CustomCARoot `
-ApplicationGateway $gw
## Get the listener, backend pool and probe
$listener = Get-AzApplicationGatewayHttpListener `
-Name basichttps `
-ApplicationGateway $gw
$bepool = Get-AzApplicationGatewayBackendAddressPool `
-Name testbackendpool `
-ApplicationGateway $gw
Add-AzApplicationGatewayProbeConfig `
-ApplicationGateway $gw `
-Name testprobe `
-Protocol Https `
-HostName "www.fabrikam.com" `
-Path "/" `
-Interval 15 `
-Timeout 20 `
-UnhealthyThreshold 3
$probe = Get-AzApplicationGatewayProbeConfig `
-Name testprobe `
-ApplicationGateway $gw
## Add the configuration to the HTTP Setting and don't forget to set the "hostname" field
## to the domain name of the server certificate as this will be set as the SNI header and
## will be used to verify the backend server's certificate. Note that TLS handshake will
## fail otherwise and might lead to backend servers being deemed as Unhealthy by the probes
Add-AzApplicationGatewayBackendHttpSettings `
-ApplicationGateway $gw `
-Name testbackend `
-Port 443 `
-Protocol Https `
-Probe $probe `
-TrustedRootCertificate $trustedroot `
-CookieBasedAffinity Disabled `
-RequestTimeout 20 `
-HostName www.fabrikam.com
## Get the configuration and update the Application Gateway
$backendhttp = Get-AzApplicationGatewayBackendHttpSettings `
-Name testbackend `
-ApplicationGateway $gw
Add-AzApplicationGatewayRequestRoutingRule `
-ApplicationGateway $gw `
-Name testrule `
-RuleType Basic `
-BackendHttpSettings $backendhttp `
-HttpListener $listener `
-BackendAddressPool $bepool
Set-AzApplicationGateway -ApplicationGateway $gw
Uygulama ağ geçidi arka uç durumunu doğrulama
- Yoklamanın iyi durumda olup olmadığını denetlemek için uygulama ağ geçidinizin Arka Uç Sistem Durumu görünümüne tıklayın.
- HTTPS yoklaması için Durum'un Sağlıklı olduğunu görmeniz gerekir.
Sonraki adımlar
Application Gateway'de SSL\TLS hakkında daha fazla bilgi edinmek için bkz . Application Gateway ile TLS sonlandırma ve uçtan uca TLS'ye genel bakış.