
No soy administrador de sistemas ni administrador de redes (tengo experiencia como desarrollador de software). Estoy encontrando algunas dificultades al intentar seguir este tutorial para implementarAutenticación de cliente SLLen una versión Ubuntu 20.04:https://www.makethenmakeinstall.com/2014/05/ssl-client-authentication-step-by-step/
Sé que este tutorial es bastante antiguo pero parece funcionar bien excepto en un punto.
Básicamente realicé todos los pasos indicados en el tutorial anterior. Los resumo aquí para que también puedas darme tu opinión si entiendo bien lo que he hecho:
Genere un certificado de autoridad certificadora (CA):Lo primero que estoy haciendo es crear un certificado de CA. Si tengo entendido bien es algo así como crear mi propia autoridad certificadora personal (como cacert.org), lo único es que en este caso no existe ninguna institución que valide los certificados emitidos por esta CA. ¿Es correcto este entendimiento?
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Básicamente este comando me pedirá unFrase de contraseña PEMque usaré para interactuar con mi propia CA y algunos detalles. Le puse estos parámetros:
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]:IT
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Notariato
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:.*
Email Address []:[email protected]
NOTA:en la respuesta anterior puse un comodín (*) para el nombre común para "ignorar" dónde se utilizarán los certificados. ¿Puede funcionar?
Entonces este comando genera unca.cerarchivo que usaré para generar mis servidores y certificado de cliente.
el yogenerar mi clave SSL y certificado de servidor Apache: este aún no es el certificado del cliente (el certificado utilizado por el cliente para decirle al servidor: "¡¡¡Soy un cliente certificado!!!"), este es el certificado del servidor que le dice al cliente: "Soy el servidor correcto". , no un hombre en el medio". ¿Es correcto?
Para crear este certificado de servidor, primero genero el servidorllave privada:
openssl genrsa -out server.key 4096
Luego utilicé esta clave privada del servidor para generar una solicitud de generación de certificado.
openssl req -new -key server.key -out server.req -sha256
También aquí me pide algunos parámetros:
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]:IT
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Notariato
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:*
Email Address []:[email protected]
NOTA:También aquí pongo un comodín (*) para el nombre común para "ignorar" dónde se usarán los certificados. ¿Puede funcionar?
Luego utilicé la solicitud de generación de certificado y el certificado de CA para generar el certificado del servidor:
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
Luego estoy intentando instalar el certificado en mi Apache de la siguiente manera:
Copie el certificado de CA en un lugar permanente. Necesitaremos especificar nuestro certificado de CA en Apache, ya que es una CA autogenerada y no una que esté incluida en los sistemas operativos de todas partes:
cp ca.cer /etc/ssl/certs/
Copie el certificado del servidor y la clave privada en un lugar permanente:
cp server.cer /etc/ssl/certs/server.crt cp server.key /etc/ssl/private/server.key
Active el módulo SSL en Apache:
a2enmod ssl
Active el sitio SSL en Apache y desactive el sitio HTTP:
a2ensite predeterminado-ssl a2dissite predeterminado
Y ahora tengo un problema con el último comando, siguiendo el resultado de los dos últimos comandos:
andrea@ubuntu:~/cert$ a2ensite default-ssl
Site default-ssl already enabled
andrea@ubuntu:~/cert$ a2dissite default
ERROR: Site default does not exist!
Como puedes ver cuando actúo.a2dissite predeterminadoestoy obteniendo estoERROR: ¡El sitio predeterminado no existe!mensaje de error.
¿Por qué? ¿Qué significa? ¿Lo que está mal? ¿Cómo puedo intentar solucionar este error?