Существует два способа добавить существующий сертификат в прослушиватель - вы перечислили оба из них, но вам действительно нужен только один из них.Кроме того, я предполагаю, что вам нужно создать сертификат.Это показывает, как, и это показывает оба способа прикрепления этого сертификата.Стоит помнить одну вещь - есть ручной шаг к утверждению создания сертификата, даже если он создан в CloudFormation, поэтому вам нужно следить за запросом на утверждение в вашей электронной почте:
from troposphere.certificatemanager import Certificate
# First create the certificate if it doesn't already exist
cert = t.add_resource(
Certificate(
"MyCert",
DomainName="example.com",
)
)
# Now you can add it to the load balancer directly/inline
Listener = t.add_resource(elb.Listener(
"Listener",
Certificates=elb.Certificate(
CertificateArn=cert.Ref(),
),
Port="443",
Protocol="HTTPS",
LoadBalancerArn=Ref(ApplicationLoadBalancer),
SslPolicy="ELBSecurityPolicy-TLS-1-2-Ext-2018-06",
DefaultActions=[elb.Action(
Type="forward",
TargetGroupArn=Ref(TargetGroupApp)
)]
))
# Or you can add it to an existing Listener with this resource
ListenerCertificate = t.add_resource(elb.ListenerCertificate(
"ListenerCertificate",
Certificates=elb.Certificate(
CertificateArn=cert.Ref(),
),
ListenerArn=Ref(Listener)
))
Если у вас уже есть сертификат, вам не нужен первый шаг для его создания - вместо этого просто укажите аргумент arn (вы можете найти его на панели инструментов), а не cert.Ref()
Hopeэто помогает.