Mostrando las entradas con la etiqueta elb. Mostrar todas las entradas
Mostrando las entradas con la etiqueta elb. Mostrar todas las entradas

2014-11-10

Mi propia autoridad certificante y mi ELB

En esta respuesta de StackOverflow dice como armar tu propia autoridad certificante en 1 minuto, y en esta página cómo darle a AWS las cosas que necesita para setupear un load-balancer con SSL. Entre esas 2 cosas es fácil armar tu propia página que use tu autoridad certificante. Es medio difícil convencer a la gente que hace los browsers de que te acepte, pero probablemente sirva para intranets o aplicaciones que se conecten a la nube.
Happy hacking,
Aureliano.

2013-04-04

Invalid private key

Poner un certificado nuevo en un ELB debería ser fácil, pero no. Genero un .csr y una clave privada a partir de un .conf usando openssl, lo mando a la autoridad certificante y cuando lo quiero subir a AWS se queja, "Invalid private key".  ¿Qué carajo te pasa AWS?

Lo que pasa es que es hincha bolas. Solo toma claves RSA. Si tu clave privada empieza así:
-----BEGIN PRIVATE KEY-----

Hay que transformarla en una que empiece así:
-----BEGIN RSA PRIVATE KEY-----

Para eso, hay que correr un comandito en openssl:
openssl rsa -in my.private.key -text

La salida está en el formato que necesito :D. Por suerte esto ya lo habían descubierto antes, porque sino hubiera estado mucho más tiempo para encontrarlo.

Happy hacking,
Aureliano.

2012-04-23

Cambiando el certificado de SSL de un ELB

Abajo pongo un script que hice en python para cambiar el certificado por un ELB usando boto. Asumo que el load balancer escucha en el puerto 443 (https). Cambien las constantes para que use las que les corresponda en su proyecto.

import boto

AWS_ACCESS_KEY = "AWS_ACCESS_KEY_HERE"
SECRET_KEY = "SECRET_KEY_HERE"

PRIVATE = """\
PRIVATE KEY .pem CONTENT HERE
"""
BODY = """\
CERTIFICATE .pem CONTENT HERE
"""
CHAIN = """\
CHAIN CERTIFICATE .pem content HERE
"""
CERT_NAME = "name-for-the-new-cert"
ELB_NAME = "elb-to-be-updated"

iam = boto.connect_iam(AWS_ACCESS_KEY, SECRET_KEY)
iam.upload_server_cert(CERT_NAME, BODY, PRIVATE, CHAIN)

cert = iam.get_server_certificate(CERT_NAME)

elb = boto.connect_elb(AWS_ACCESS_KEY, SECRET_KEY)
for lb in elb.get_all_load_balancers():
  if lb.name == ELB_NAME:
    lb.set_listener_SSL_certificate(443,cert.arn)


Happy hacking,
Aureliano.