Arquisoft / dede_es6c

https://dedees6c.uksouth.cloudapp.azure.com:3000/
1 stars 1 forks source link

Cambiar al protocolo HTTPS #189

Closed UO263595 closed 2 years ago

UO263595 commented 2 years ago

Se necesita utilizar el protocolo HTTPS en lugar del HTTP para estrablecer una conexión segura servidor-cliente y poder acceder a los datos del POD.

GermanDiazGlez commented 2 years ago

En el despliegue nos dice al iniciar sesión que no puede generar un token en una conexion HTTP, por tanto debemos cambiar para conectar por HTTPS.

GermanDiazGlez commented 2 years ago

Estamos intentando generar un certificado con letencrypt (https://letsencrypt.org/getting-started/) , para ello hemos hecho una conexión ssh con nuestra máquina de aws y hemos instalado certbot siguiendo las instrucciones de esta página: https://certbot.eff.org/instructions?ws=webproduct&os=ubuntufocal y seleccionando Web Hosting Product y Ubuntu 20.

Una vez hecho esto procedemos a instalar en nuestra máquina el snapd y posteriormente el Certbot pero al pasarle el dominio público nos da el siguiente error: Error creating new order :: Cannot issue for "ec2-54-167-75-230.compute-1.amazonaws.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy.

GermanDiazGlez commented 2 years ago

He encontrado un post interesante a cerca de lo que puede estar pasando en la página:

pfg: (http://amazonaws.com/) happens to be on the blacklist Let’s Encrypt uses for high-risk domain names (i.e. phishing targets, etc.). There’s nothing you can do about this on your end, other than use your own domain name. [...] (I believe EC2 instances are kind of ephemeral, so I’m not sure if you can rely on the hostname being the same forever).

jsha: @pfg is correct. We specifically list the amazonaws domans because we know they are ephemeral. We might certify one as belonging to you today, and then it could belong to someone else tomorrow.

Así que parece que no podremos usar Let’s Encrypt para el certificado de ssh.

Fuente: https://community.letsencrypt.org/t/policy-forbids-issuing-for-name-on-amazon-ec2-domain/12692

GermanDiazGlez commented 2 years ago

Hemos intentado crear una Entidad Certificadora para crear nuestro propio certificado de AWS, pero nos dice que se cobrará por cada Clave Privada que creemos, aun así hemos probado a crearlo y nos sale el mismo error de que no estamos autorizados.

GermanDiazGlez commented 2 years ago

También hemos intentado hacerlo con https://www.digicert.com/kb/csr-creation-ssl-installation-aws-openssl.htm pero después del proceso de configuración te pide comprar el certificado.

GermanDiazGlez commented 2 years ago

La siguente prueba a realizar ha sido obtener un certificado utilizando Nginx y Docker, hemos seguido las instrucciones de la página: https://medium.com/@odeyinkadavid/deployment-of-ssl-encrypted-node-js-app-on-aws-ec2-using-nginx-and-docker-ac2fa984000d#:~:text=the%20next%20section.-,Creating,-Server%20Block

Instalando nginx, creando un archivo de subdominio en /etc/nginx/sites-available con la configuración adecuada. Después una vez que vemos el mensaje de nginx en el puerto 80 para saber que vamos bien, ejecutamos el comando sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Despues para obtener el certificado SSL hacemos sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d subdomain.com Y nos devuelve el mismo error de permisos que con AWS No se ha podido enumerar las autoridades de certificación User: ... is not authorized to perform: acm-pca:ListCertificateAuthorities because no identity-based policy allows the acm-pca:ListCertificateAuthorities action

Intentamos también con las instrucciones de la siguiente página y lo mismo. https://financetrainingcourse.com/education/2016/06/ssl-certificate-install-aws-guide-apache-ubuntu-14-04/

GermanDiazGlez commented 2 years ago

Parece ser que la unica solución es la compra de un dominio, una vez tengamos un dominio disponible para lanzar nuestra aplicación, será facil obtener un certificado con Lets Encrypt u otra similar. Otra opción sería que en nuestra cuenta de AWS student, tengamos los privilegios para crear un certificado propio de AWS, y tampoco tendríamos este problema.