Yeni AWS Certificate Manager hizmetinin yardımıyla AWS EC2'ye nasıl SSL sertifikası eklenir?


91

AWS, yeni bir AWS Certificate Manager hizmeti ile geldi . Açıklamadan aldığım bir şey, bu hizmeti kullanıyorsak, artık sertifika için ödeme yapmak zorunda olmadığımızdır.

Elastic Load Balancer (ELB) ve CloudFront için sertifika sağlıyorlar, ancak EC2'yi hiçbir yerde bulamadım.

EC2 ile sertifikayı kullanmanın bir yolu var mı?


1
Ücretsiz ve güvenilir sertifikalar için letsencrypt.org'a bakabilirsin, chrome ve facebook gibi katkıda bulunanlarla oldukça iyi görünüyor
Tom


1
Ow bunu bilmiyordum. Ancak buna izin vermemekte haklı olduklarını düşünüyorum. Başka bir etki alanında (örneğin Route53 aracılığıyla) takma adlar oluşturup sağlanan varsayılan aws dns adını kullanmamayı tercih edebilir misiniz?
Tom

Kısa bir süre önce, AWS Certificate Manager ile bir SSL \ TLS sertifikası oluşturdukları ve ardından bunu bir yük dengeleyicinin arkasındaki EC2 Bulut Sunucusuna yerleştirdikleri bir video [Nisan - 2020] ile karşılaştım. youtu.be/bWPTq8z1vFY Gerçekten çok yardımcı oldu.
nktsamba

Yanıtlar:


109

S: Sertifikaları Amazon EC2 bulut sunucularımda veya kendi sunucularımda kullanabilir miyim?

Hayır. Şu anda, ACM tarafından sağlanan sertifikalar yalnızca belirli AWS hizmetleriyle kullanılabilir.


S: ACM tarafından sağlanan sertifikaları hangi AWS hizmetleriyle kullanabilirim?

ACM'yi aşağıdaki AWS hizmetleriyle kullanabilirsiniz:

• Esnek Yük Dengeleme

• Amazon CloudFront

• AWS Elastic Beanstalk

• Amazon API Gateway

https://aws.amazon.com/certificate-manager/faqs/

Amazon Certificate Manager (ACM) tarafından oluşturulan sertifikaları , EC2 veya AWS dışındaki sunucular gibi doğrudan düşük düzey erişiminiz olan kaynaklara yükleyemezsiniz çünkü özel anahtarlara erişiminiz sağlanmamaktadır. Bu sertifikalar, yalnızca AWS altyapısı tarafından yönetilen kaynaklarda (ELB ve CloudFront) dağıtılabilir çünkü AWS altyapısı, oluşturduğu sertifikalar için özel anahtarların yalnızca kopyalarını tutar ve bunları denetlenebilir dahili erişim denetimleriyle sıkı bir güvenlik altında tutar. .

Bu sertifikaları EC2'den gelen içerik için kullanmak için EC2 makinelerinizin CloudFront veya ELB'nin arkasında dinlemesini sağlamanız gerekir (veya her ikisi de kademeli olarak çalışır) ... çünkü bu sertifikaları doğrudan EC2 makinelerine yükleyemezsiniz. .


12
İyi haber şu ki, bir sertifika verdiyseniz ve burada yükleyemeyeceğinizi öğrendiyseniz, herhangi bir ücret alınmaz.
kraftydevil

1
lol @kraftydevil Sanırım bir fikrin var. Not olduğunu letsencrypt.org her yerde sizin gibi yükleyebileceği ücretsiz SSL sertifikaları meşru, kabul, kar amacı gütmeyen kaynağıdır. (Ve ekleyebilirim, Let's Encrypt ile hiçbir bağlantım yok.)
Michael - sqlbot

6
@EngineerDollery hayır, bu yalnızca belirli bir durum için geçerlidir. Kesinlikle olabilir EC2 edelim Şifrele'yi kullanın. Yapamayacağınız şey, bir EC2 *.amazonaws.comana bilgisayar adı için Let's Encrypt sertifikası almaktır , çünkü makul bir şekilde, Let's Encrypt politikası buna izin vermez ... ancak bir EC2 bulut sunucusu IP'sine veya ELB'ye veya CloudFront'a işaret eden bir alan adı için kontrol ettiğiniz bir alan adı, Diğer yerlerde olduğu gibi, kesinlikle Let's Encrypt'i kullanabilirsiniz.
Michael - sqlbot

2
Otomatikleştirilmiş izin veren bir örneğe bağlantı EC2'de
Efren

ELB kurulumunu takip ettim, şimdi ELB
MuaathAli'ye

2

Hayır, EC2'de sertifikaları dağıtmak için aws sertifika yöneticisini kullanamazsınız. Sertifika yöneticisi sertifikaları yalnızca bulut önü ve elastik yük dengeleyiciye göre dağıtılabilir. Inoredr bunu ec2'de kullanmak için, ec2'nin üstüne elb koymanız gerekir, böylece istemciden yük dengeleyiciye olan istek https korumalı olacak ve elb'den ec2 web sunucusuna http üzerinde olacaktır.


1

AWS ACM Cert'i yalnızca dahili amaç için kullanıyorsanız, o zaman muhtemelen sertifikaları düzenlemek için AWS ACM Özel Sertifika Yetkilisi'ni kullanabilirsiniz. (Kök CA'nız genel olarak güvenilen CA ise, bunu genel / harici trafik amacıyla da kullanabileceğinizi düşünüyorum).

https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaGetStarted.html

Uygulama / EC2 / Kapsayıcı başlangıcı sırasında, ACM Özel CA tarafından verilen Sertifika / Özel Anahtarınızı hedefinize vermek için bir adım belirleyin ve trafiğe hizmet etmek için buna başvurmaya başlayın.

https://docs.aws.amazon.com/cli/latest/reference/acm/export-certificate.html

İyi bir şey de, IAM Rolünü kullanarak dışa aktarma sertifikası özelliğini kimin çağırabileceğini kontrol edebilirsiniz, böylece herkes sertifikanın özel anahtarını indiremez.

Bunun bir dezavantajı, özel CA'nın pahalı AWS hizmetidir (400 $ / ay). https://aws.amazon.com/certificate-manager/pricing/


İhracat sertifikasını ACM PCA ile kullanamazsınız - ancak buna da ihtiyacınız yoktur: zaten özel anahtara sahipsiniz ve get-sertifika uit'e sertifikayı ve zinciri verir.
Ücretsiz Willaert

@FreeWillaert Oldukça eminim, get-certificate ile Özel Anahtar kısmını alamayacaksınız. bu CLI belgelerine bakın . ve bu . Cli yanıtlarının her iki çıkışını da kontrol edin. Bu CLI komutlarını zaten test ettim.
Imran

@FreeWillaert evet :). Yukarıdaki CLI komutu, çalışma zamanında özel anahtar sertifikasını indirmek ve bunları TLS trafiğine hizmet etmek için kullanmaya başlamak için Docker başlangıç ​​komut dosyasında veya EC2 kullanıcı verileri komut dosyasında kullanılabilir. Özellikle ASG'de. İşin iyi yanı, IAM rollerini kullanarak yukarıdaki CLI komutunu kimin çağırabileceğini kontrol edebiliyorsunuz, böylece herkes özel anahtarlara erişemez.
Imran

1
@Imran One downside with this is, private CA is expensive AWS service($400/month).üstüne kalın yazmalısın , mesela bu cevabı 2. kez okumazsam özlerim
Piekarski D

@PiekarskiD bitti. Önerin için teşekkürler!!. Cevabımı beğendiyseniz, her zaman yükseltebilirsiniz !!.
İmran

0

Yukarıdaki yorumlara ek olarak, bunun için AWS Certificate Manager'ı kullanamazsınız, ancak IIS çalıştıran bir Windows sunucusunda ec2'ye Let's Encrypt sertifikası ekleyebilirsiniz ve oldukça kolaydır:

  1. Ec2 örneğinizle elastik bir ip ilişkilendirin.

  2. Kayıtlı bir alan adınız olduğundan emin olun. Örneğinizle birlikte gelen ec2----------.us-east-1.compute.amazonaws.com türü adlarını kullanamazsınız.

  3. Alan sağlayıcınızın DNS ayarları aracılığıyla, alanınızın Esnek IP'nizi işaret etmesini sağlayın.

  4. Ec2 örneğinize bağlanın ve alan adınızı site bağlamalarına ekleyin.

  5. Https://github.com/PKISharp/win-acme/releases adresine gidin

  6. Varlıkların altına bakın ve en son sürümü kullanın (örneğin win-acme.v2.0.10.444.zip). Bu, ihtiyacınız olan tek varlık klasörüdür.

  7. Klasörü açın, terminali yönetici olarak açın ve sıkıştırılmamış klasöre cd yapın.

  8. Wacs.exe'yi çalıştırın ve komut istemlerini izleyin.

  9. Örneğinize atanan güvenlik grubunun, IIS'de seçtiğiniz HTTPS bağlantı noktası üzerinden trafiğe (en azından kendi IP'niz) izin verdiğinden emin olun; bu varsayılan olarak 443 numaralı bağlantı noktasıdır.

Bunu çözerken aşağıdaki bağlantıları faydalı buldum. Daha fazla yardıma ihtiyacınız varsa daha önceki bir sürümü kullanan bir video burada, ancak bu aynı fikir.

https://www.youtube.com/watch?v=fq5OUOjumuM

Ayrıca bu makale yardımcı olabilir:

https://weblog.west-wind.com/posts/2016/feb/22/using-lets-encrypt-with-iis-on-windows

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.