gratis - instalar certificado ssl linux
¿Cómo adjuntar un certificado SSL precargado a ELB en la plantilla de CloudFormation? (3)
He estado intentando adjuntar un certificado SSL que estoy usando actualmente para una de mis instancias de Elastic Load Balancing en una nueva plantilla de formación en la nube, pero cada vez que obtengo:
No se encontró el certificado del servidor para la clave
Y luego la plantilla de Cloudformation comienza a retroceder en ese punto.
"Listeners" : [
{
"LoadBalancerPort" : "443",
"InstancePort" : "80",
"SSLCertificateId" : "start_certname_com",
"Protocol" : "HTTPS"
},...
Amazon está solicitando que se use el ARN del certificado SSL. y creo que esto es correcto, ya que esta es la cadena exacta que aparece en el menú desplegable de la configuración actual ELB, que lleva 443 al puerto 80 en las instancias.
¿Me estoy perdiendo algo en mi oyente?
A continuación, le indicamos cómo obtener el nombre largo del certificado con la última CLI de AWS:
pip install awscli
aws iam list-server-certificates
De hecho, me di cuenta de cómo hacerlo mientras esperaba la respuesta. Debe usar las herramientas IAM CLI proporcionadas por Amazon y luego usar el comando
iam-servercertgetattributes -s certname
Esto le proporcionará una cadena como:
arn:aws:iam::123456789123:server-certificate/start_certname_com
Este es el valor que coloca en el campo de par de valores "SSLCertificateId"
Las instrucciones de configuración para las herramientas de línea de comandos (CLI) de IAM se pueden encontrar en:
http://docs.aws.amazon.com/IAM/latest/CLIReference/Setup.html
Descargue el kit de herramientas de aws aquí
http://aws.amazon.com/developertools/AWS-Identity-and-Access-Management/4143
Todo en su bloque final se verá como:
"Listeners" : [
{
"LoadBalancerPort" : "443",
"InstancePort" : "80",
"SSLCertificateId" : "arn:aws:iam::123456789123:server-certificate/start_certname_com",
"Protocol" : "HTTPS"
},...
Puede derivar el ARN para un certificado en CloudFormation solo con el nombre del certificado. No es necesario ejecutar una herramienta de línea de comandos y codificar el valor en su plantilla de CloudFormation.
"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"
},...
Esto determina su ID de cuenta con el pseudo parámetro {"Ref":"AWS::AccountId"}
y lo combines con los otros elementos necesarios para formar el ARN . Tenga en cuenta que estoy usando una variable llamada Path
en caso de que haya establecido una ruta para su certificado. Si no, el valor predeterminado de "/" funciona bien.
Esta solución fue mencionada por @Tristan y es una extensión de la solución de merrix143243