19

Ben şu anda yeni bir bulut oluşumu Şablon benim Elastik Yükü Dengeleme örnekleri biri için kullanıyorum bir SSL sertifikası eklemek çalışıyordum ama her seferinde alıyorum:
Sunucu Sertifikası anahtar
için bulunamadı Ve sonra Cloudformation şablonu bu noktada geri dönmeye başlar.CloudFormation şablonunda önceden yüklenmiş SSL sertifikası ELB'ye nasıl eklenir?

  "Listeners" : [ 
     { 
      "LoadBalancerPort" : "443", 
      "InstancePort" : "80", 
      "SSLCertificateId" : "start_certname_com", 
      "Protocol" : "HTTPS" 
     },... 

Amazon SSL sertifikasının ARN kullanmak istiyor. ve bunun doğru olduğuna inanıyorum çünkü bu, geçerli kurulum ELB'nin açılanmasında görünen ve 443 port 80'i örneklerde görünen tam dizedir.

Dinleyici'mde bir şey özlüyor muyum?

cevap

20

Aslında
iam-servercertgetattributes -s certname

Bu size gibi bir dize sağlayacaktır, sen komutunu kullanın sonra amazon tarafından sağlanan IAM CLI araçları kullanmak ve gereken cevap bekliyor bu süre nasıl çözdüm :

arn:aws:iam::123456789123:server-certificate/start_certname_com

Bu "SSLCertificateId" değer çifti alanda

kurulum talimat yerleştirmek değerdir

"Listeners" : [ 
    { 
     "LoadBalancerPort" : "443", 
     "InstancePort" : "80", 
     "SSLCertificateId" : "arn:aws:iam::123456789123:server-certificate/start_certname_com", 
     "Protocol" : "HTTPS" 
    },... 
: benzeyecek tüm nihai bloğunda burada
http://aws.amazon.com/developertools/AWS-Identity-and-Access-Management/4143

Tüm çenesinde gelen alet çantası indirin
http://docs.aws.amazon.com/IAM/latest/CLIReference/Setup.html

: IAM komut satırı araçları (CLI) için iyonlar bulunabilir

+0

Büyük takip cevap - çok yardımcı oldu. – Aitch

+3

Bu, doğrudan bulut oluşumunda da mümkündür. Https://forums.aws.amazon.com/message.jspa?messageID=248285 adresine bakın. – Tristan

+1

Tristan'ın cevabı @gene_wood tarafından iyi açıklanmıştır. –

29

CloudFormation'daki bir sertifika için yalnızca sertifika adıyla ARN türetebilirsiniz. Bir komut satırı aracı çalıştırmaya ve CloudFormation şablonunuza değeri kodlamaya gerek yok.

"Parameters":{ 
     "Path":{ 
     "Description":"AWS Path", 
     "Default":"/", 
     "Type":"String" 
     } 
    } 
    ... 
     "Listeners" : [ 
    { 
     "LoadBalancerPort" : "443", 
     "InstancePort" : "80", 
     "SSLCertificateId" : { 
     "Fn::Join":[ 
      "", 
      [ 
       "arn:aws:iam::", 
       { 
       "Ref":"AWS::AccountId" 
       }, 
       ":server-certificate", 
       { 
       "Ref":"Path" 
       }, 
       "start_certname_com" 
      ] 
     ] 
     }, 
     "Protocol" : "HTTPS" 
    },... 

Bu {"Ref":"AWS::AccountId"}pseudo parameter ve ARN oluşturmak için gereken diğer unsurları ile combines bunu kullanarak hesap id belirler. Sertifikanız için bir yol belirlemiş olmanız durumunda Path isimli bir değişken kullandığımı unutmayın. Değilse "/" varsayılanı iyi çalışıyor.

Bu çözüm

son AWS CLI ile uzun sertifika adını almak İşte nasıl @Tristan bahsettiği ve merrix143243's solution

+3

Kesinlikle en iyi cevap! –

+1

Çok havalı! Birisi [cloudformation-ruby-dsl] kullanıyorsa (https: // github.com/bazaarvoice/cloudformation-ruby-dsl), işte bu cevaptan esinlenen bir tek liner: ': SSLCertificateId => join ('', 'arn: aws: iam ::', aws_account_id(), ': server- Sertifika/', ref (' SSLCertificateName ')) –

+0

@gene_wood Yanıt, Amazon tarafından yayınlanan sertifikalara uyar, ancak belki de (diğer sertifika yetkililerinden) ithal ettiğim sertifikalara uymaz. İçe aktarılanlar, ACM'deki "Tanımlayıcı" alanında (Amazon Sertifika Yönetimi) görünür olarak bir GUID olarak atanır. Ayrıca, 2018 martında, 1) "arn: aws: acm ::" öneki değil ": iam ::", 2) ": sunucu sertifikası" gibi görünüyor: "sertifika" (içe aktarmadıkça) yanlış). Soru: ACM'de hangi alanın "start_certname_com" ifadesi şu şekilde yazılır: "Alan adı", "Ek adlar", "Tanımlayıcı", "İsim" (kullanıcı etiketi)? – timmi4sa

3

bir uzantısıdır edildi:

pip install awscli 
aws iam list-server-certificates 
İlgili konular