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

miércoles, 4 de abril de 2018

AWS - Actualizar un certificado SSL externo

Hoy os voy a explicar cómo lo hago yo para actualizar un certificado SSL en AWS, un certificado que se ha comprado fuera. Lo vamos a hacer en tres pasos, que son
  1. Codificar los certificados (pasar a .pem) 
  2. Subirlos a AWS 
  3. Cambiar el viejo por el nuevo
1) Para codificar el certificado nuevo vamos a necesitar
    domain.crt (el certificado que nos habrá enviado el proveedor)
    domain.key
    root.crt (es el Certificado Intermedio del tipo de SSL que hemos tramitado, que nos debería dar también el proveedor, sino mejor se lo pedimos). 
Para hacer la conversión y encriptar los archivos lo hacemos así (desde cualquier linux que tenga el paquete openssl instalado)

> rsa -in domain.key -outform PEM -out domain.key.pem
> x509 -inform PEM -in domain.crt -out domain.crt.pem
> x509 -inform PEM -in root.crt -out root.crt.pem
 
Ya los tienes codificados. Vamos a subirlos.

2)    Subirlos no es complicado, sólo necesitas un usuario IAM con permisos para subirlos. Aquí tienes la documentación de todas las políticas en ACM que necesitas para definir los permisos de tu usuario.

La subida la puedes hacer desde la consola de AWS o desde línea de comandos (habiendo instalado las AWS tools previamente). Desde el directorio donde tienes los certificados codificados, el comando sería este

> aws iam upload-server-certificate --server-certificate-name Nombre_del_Certificado --certificate-body file:/domain.crt.pem --private-key file:/domain.key.pem --certificate-chain file:/domain_2016_ca.crt.pem
 
Cuando este paso se hace bien, el sistema devuelve algo así:

{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "ASCAJKNEFTXTK7XXXXXXX",
        "ServerCertificateName": "domain",
        "Expiration": "2019-07-21T23:59:59Z",
        "Path": "/",
        "Arn": "arn:aws:iam::xxxxxxxx:server-certificate/domain",
        "UploadDate": "2018-01-26T11:16:35.819Z"
    }
}
 
Sencillo, ¿no? El problema es cuando el usuario de AWS no tiene permisos, que hay que dárselos. El error es más del tipo:

A client error (AccessDenied) occurred when calling the UploadServerCertificate operation: User: arn:aws:iam::xxxxxxxx:user/USER is not authorized to perform: iam:UploadServerCertificate on resource: arn:aws:iam::xxxxxxxx:server-certificate/domain
 
En este caso, falta algún permisos; prueba a darle a tu usuario permisos IAMFullAccess y a quitárselos después de importar el certificado.

3)    Cambiar el nuevo certificado : Desde el panel de AWS, entra en EC2 y en el panel de la izquierda busca Load Balancing y justo debajo, Load Balancer. Busca el balanceador al que está asociado el certificado que vamos a actualizar, selecciónalo y vete a la pestaña "Listeners". Selecciona el HTTPS y edítalo. En el campo

Default SSL certificate
escoge el certificado que acabas de subir y guarda. Ya lo has cambiado.

lunes, 11 de enero de 2016

Píldora: Instalar y configurar un site con SSL en NetScaler VPX

Hola! Hoy te voy a dejar cómo configurar un SSL en un balanceador Netscaler VPX de Citrix; en concreto, este es la versión 9.3. Mucha suerte!


1 - Generar .key y .csr

2 - Instalar el certificado (CSR) con los intermediates correspondientes

3 - Configurar la parte de balanceo entre el LB y los servidores [ Load Balancing ]


-       Primero creo los servidores que formarán parte del pool. Lo hago desde ‘SERVERS’; sólo necesito el nombre y la IP que les doy:


-       (OPCIONAL) Puedo definir los servicios que correrán sobre estas máquinas y sobre los que quiero balancear. En ‘SERVICES’ puedes definir un único servicio cada vez:

 
y después puedes definir los monitores que quieres añadirle a este servicio



  




Después defino los servidores que formarán parte de este poll, el puerto y su peso en el balanceo
 



No es necesario añadir nada más al resto de pestañas

-       (OPCIONAL) También puedo definir grupos de servicios que actuarán como un balanceo real (por ejemplo, el puerto 80 en todos los servidores dados de alta en Servers). Lo hago desde ‘SERVICE GROUPS’. Primero defino el nombre y el protocolo de entrada
  
 
  
 y después defino los servidores que formarán parte de este poll, el puerto y su peso en el balanceo

 

En la pestaña ‘Advanced’, habilita ‘Client IP’ y en el box Header añade: “X-Forwarded-Proto” (sin comillas)
 

 
 
y sí, si sólo se pone un servidor equivale a añadir un sólo servicio desde la pestaña SERVICES

-       Para configurar el virtual server definimos el nombre, protocolo (que será HTTP) y dirección IP. La dirección IP no servirá para nada en nuestro caso, se puede poner una privada para no malgastarlas. De las pestañas “Services” y “Service Groups” selecciona los servicios que necesites añadir
 

En la pestaña ‘Method and Persistence’ asegúrate que tienes estas opciones
 
  


Y el resto lo dejas como está.


4 - Configurar la parte entre el cliente y el LB [ Content Switching ]
Es muy importante recordar que para cada nuevo SSL necesitaremos una IP dedicada
 

 
En VirtualHost creamos dos entradas.
-       La primera será la HTTP que simplemente haga de bypass del puerto 80 al balanceo general (en Target he puesto BalanceoOpenShopen-ALL)




No hace poner nada en otras pestañas
-       La segunda será el HTTPs será todo igual excepto por el protocolo con el que traba- jamos, que será SSL en lugar de HTTPS. En Target lo apuntaremos al virtualhost que acabamos de crear
 


En la pestaña “SSL Settings” añadimos el certificado que acabamos de instalar


y creamos la nueva entrada. Tendrás que cerrar la ventana después


PARTE DEL EQUIPO DE DESARROLLO

-       Modificar el index.php según este post:



●     mucho cuidado al crear los Servicios o los grupos de Servicios nuevos, no olvidar el “X-Forwarded-Proto” en especial al olvidarlo en los polls ‘admin’