En ciertas ocasiones, a pesar de la facilidad de Amazon AWS para gestionar los certificados, podemos necesitar autofirmarnos uno, ya sea bien por que no gestionamos nosotros mismos el dominio y necesitamos que alguien externo lo valide, o bien porque lo necesitemos para alguna prueba interna.
Si solicitamos un certificado, el responsable del mismo ha de validarlo. De esta forma nos evitamos esa tarea.
Para generar el certificado autofirmado, necesitaremos un Linux con openssl instalado como único requisito.
Con un usuario root haremos los siguiente. Nos pedirá, una frase (opcional) para securizar el almacén, la confirmamos:
root@ip-10-10-10-214:~# openssl genrsa -des3 -out keyfile.key 1024
Generating RSA private key, 1024 bit long modulus
...++++++
...........................++++++
e is 65537 (0x10001)
Enter pass phrase for keyfile.key:
Verifying - Enter pass phrase for keyfile.key:
root@ip-10-10-10-214:~#
Ahora deberíamos de generarnos el autorequest.
Rellenamos los cambos obligatorios. Al menos tenemos que introducir el país y el Common Name que es el que aparecerá en el certificado:
root@ip-10-10-10-214:~# openssl req -nodes -newkey rsa:2048 -keyout keyfile.key -out keyfile.csr
Generating a 2048 bit RSA private key
.................................................................+++
...........................................+++
writing new private key to 'keyfile.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:TESTCERT
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
root@ip-10-10-10-214:~#
Una vez lo tenemos, generamos el certificado (autofirmado). Ojo con los days de vigencia. Podemos ponerle 10 años (2.650 días):
openssl x509 -req -days 3650 -in keyfile.csr -signkey keyfile.key -out keyfile.crt
root@ip-10-10-10-214:~# openssl x509 -req -days 3650 -in keyfile.csr -signkey keyfile.key -out keyfile.crt
Signature ok
subject=/C=ES/ST=Some-State/O=Internet Widgits Pty Ltd/CN=TESTCERT
Getting Private key
Ahora sólo nos quedaría extraer la clave y el certificado para ponerlas en el balanceador (nos solatará un chorro enorme. La parte que nos interesa es donde empieza: -----BEGIN RSA PRIVATE KEY-----)
Primero la clave:
openssl rsa -in keyfile.key -text
bla bla bla
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAmLingfaxOt7ykCqiAA+YwfruxXlKVbDzsAnsAGRiSi3U3j8s
41G7M9A0b9q0saHNqOt39JsPLl/8bKdOxx0L7wcIJWmeMFrcYST/I4B3+TLghoRK
dDye2baYM/8/t08e+pSrC/dnPq+osi0jRQjQLz1AgIq7+Gm3QP2g64H3rFtIbEKk
nchpaHnsr2PiOz9fGhBIqROGQ2hl2bMbadrVg9ix8swISP2y4qGNlXVlyX0iq1qr
t7sRBTE5qwy3xQ3A8OIRMC4DOtw0m+gXTUUSfiw1i9BhWnGm+ONWeUpY15kiP9NF
B/EVFrxlhfrowib0ejdsFiC4DoXXwFK5cMoEwwIDAQABAoIBABQWVZH2jKEdqfHk
aaJwars48ibvKSPUPnktFOmISpVPKeyBirnrih/qhrsfnRywF4jcT87QhlKnNWBl
MStnWqZ52kxxc+kQSmRMpXJZ923Dj1yiEdjwEES6i5JrREosEfsLiuPsCpxoJlwp
K7ZszlUoTU+a79ZgsUXPFldjpNv6gagtJFuNlfYxNGH8hYcyKMeB7tgfcI1fgtMc
EAb6dxzjcfk/FLVTx8JHIoG54uaH7VA9nhLMOKoPdbirVyJvXELv3T8aazGUtRz8
ZDPSHv+Mmez38unuEUAmi7lSR1r+oOEA18bdNqcoQpV8r2lIWJojhIrSjMX+SNAQ
yvn2dKECgYEAyrgob1UG5FbGoyevbOtTxuUvbdg7DsDsyUIhLBGlnMBeOaxZ8cyL
Wc+FR/Duc9EuXx1y+6P3PgECOGr6OsKUTIljHcXGuuyxU9KIRRr4CKFuZ37QG2+D
oR+uaaUeDynUn84D5d3Mn/3gpQUauewE/iXL/AQiW3D5NcmZ4nJhqpcCgYEAwNxo
tvxuy2bH/+bzUH6djEcXjHhGzlLYQ8aGy0KDcc28yldIc7oWA10IaQSAJ8VhTN/n
gBKCRCimR7Dk/wkr69eiG7ehERD95OTjw+9Z5z5mzeKnqBqn1xjEbm+7psZq8Wic
n62eDpE6f1pKHr2rHN0lvsLJCRZj7AVnnQ872LUCgYEApX+zgzDnb4Nop8q+bS2y
N67kCcl+bY0Twzs52cCOdGqYgn0y8TUMj0Xcid8ozWT5dq2UMdyq/PPV3Dl6EH7K
k7GWObg9hl22Z7h5h/F8jY89k0D0pXFlBSXYPmePItIDxHNsuz1Y0UVzIUYJi8Ak
U1iIMDcv1Xdl/YOZHkZDdgECgYEAohshcV1xC0rTJQfM0IX8iyJeatXWPipoWV+P
gV3g+lFCNJl07sElK6KRJSSBS+yeQm2ZOo9UK1I3od7QPIZLAqt3OPD6U0wC/Nhf
khunZ7WN19SBs8zj8uqAgYstIZt53Hxf2d+nEPuFPfJ4hqpKH7LKvTMgo6DMUGCi
nONnHFkCgYAR5CS90dNatwSnGXaoGPKLf9RdxLEsr5QzMFxXvqWWzgcPcZONHrcc
J3NiHbPt3aAgj7xhUED4N16Nx52L+ALHKf5MfUSaV8Nzooq/KAa2H9FZMtDB/VHZ
BYRkmaMQ2kMlam+gQ1lMb50yVtSkuvQE5pBVwi8ckRQiewS4xOWcZg==
-----END RSA PRIVATE KEY-----
Ahora cogemos dicho texto y lo metemos en la private key:
Y hacemos lo mismo con la clave pública del certificado:
root@ip-10-10-10-214:~# openssl x509 -inform PEM -in keyfile.crt
-----BEGIN CERTIFICATE-----
MIIDLDCCAhQCCQCtywllUTb8LTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJF
UzETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
cyBQdHkgTHRkMREwDwYDVQQDDAhURVNUQ0VSVDAeFw0xNzA0MTEwODIwMzdaFw0y
NzA0MDkwODIwMzdaMFgxCzAJBgNVBAYTAkVTMRMwEQYDVQQIDApTb21lLVN0YXRl
MSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxETAPBgNVBAMMCFRF
U1RDRVJUMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmLingfaxOt7y
kCqiAA+YwfruxXlKVbDzsAnsAGRiSi3U3j8s41G7M9A0b9q0saHNqOt39JsPLl/8
bKdOxx0L7wcIJWmeMFrcYST/I4B3+TLghoRKdDye2baYM/8/t08e+pSrC/dnPq+o
si0jRQjQLz1AgIq7+Gm3QP2g64H3rFtIbEKknchpaHnsr2PiOz9fGhBIqROGQ2hl
2bMbadrVg9ix8swISP2y4qGNlXVlyX0iq1qrt7sRBTE5qwy3xQ3A8OIRMC4DOtw0
m+gXTUUSfiw1i9BhWnGm+ONWeUpY15kiP9NFB/EVFrxlhfrowib0ejdsFiC4DoXX
wFK5cMoEwwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCDZvKAsnrsXTj5KQ5Eax3S
bUUPp0QzyW4mwcIKzblozuTtJjolv4Djb2NSFIuZCi04q5oFQYNLoKPYzDCLlr5z
zvyati3O+PXeNa2NKJszVuoUg6ao0S1xTIATUUgouK+Or5ZVoDd7ZVZ24TFBDw2N
F0OAYT9/UOmlNg/FH45DbKZ04MEP0Aoip6n2QU6HwEQU+TMockwrmGL4+mscSkWq
LA0UzLGCTpMDuGo6Gpq436+fI8srKDOgJpManlppQj/d29muw7CYhb41VWJG0ic6
KQ1jXD5LAnDEJ4siAdXA4lNPdw+2H8+KZyJAMNFdptJ18IhK/a7FcbfCZQG9wT8Y
-----END CERTIFICATE-----
Y lo pegamos en su sitio correspondiente:
Y con esto y un bizcocho, tenemos un balanceador con un autofirmado y 0 problemas !
Tenéis más información en:
https://aws.amazon.com/es/certificate-manager/
Si te ha gustado este post, ¡síguenos en Twitter!