Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
sad:t1:p2 [2017/10/31 16:44] José Manuel Guallar |
sad:t1:p2 [2019/01/04 13:18] (actual) |
||
---|---|---|---|
Línea 25: | Línea 25: | ||
Software relacionado con SSL: | Software relacionado con SSL: | ||
+ | **NOTA:** la variable de entorno OPENSSL_CONF tiene que estar apuntando a "caconfig.cnf" | ||
<code bash> | <code bash> | ||
+ | guallar@debian:/home/guallar# export OPENSSL_CONF=/home/guallar/myCA/caconfig.cnf | ||
+ | guallar@debian:/home/guallar# touch caconfig.cnf | ||
+ | </code> | ||
- | guallar@debian:~# apt-get install openssl | ||
- | guallar@debian:~# apt-get install ca-certificates | ||
- | + | <code bash> | |
- | guallar@debian:~# apt-cache search libssl | grep SSL | + | guallar@debian:/home/guallar# apt-get install openssl |
+ | guallar@debian:/home/guallar# apt-get install ca-certificates | ||
+ | guallar@debian:/home/guallar# apt-cache search libssl | grep SSL | ||
libssl-dev sirve para desarrollar con ssl | libssl-dev sirve para desarrollar con ssl | ||
Línea 67: | Línea 71: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA | + | guallar@debian:/home/guallar#cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA |
</code> | </code> | ||
Línea 74: | Línea 78: | ||
Dentro de este entorno de trabajo inicial, la significación de los subdirectorios y su contenido es la siguiente: | Dentro de este entorno de trabajo inicial, la significación de los subdirectorios y su contenido es la siguiente: | ||
- | ~/myCA: contiene el certificado de CA, la base de datos de certificados, los certificados generados, las claves y las solicitudes | + | /home/guallar/myCA: contiene el certificado de CA, la base de datos de certificados, los certificados generados, las claves y las solicitudes |
- | ~/myCA/signedcerts: contiene copias de cada certificado firmado | + | /home/guallar/myCA/signedcerts: contiene copias de cada certificado firmado |
- | ~/myCA/private: contiene la clave privada | + | /home/guallar/myCA/private: contiene la clave privada |
| | ||
- | A continuación, creamos una base de datos de certificados inicial en el subdirectorio~ / myCA con el siguiente comando: | + | A continuación, creamos una base de datos de certificados inicial en el subdirectorio /home/guallar/myCA con el siguiente comando: |
<code bash> | <code bash> | ||
- | guallar@debian:~# echo '01'> serial && touch index.txt | + | guallar@debian:/home/guallar/myCA# echo '01'> serial && touch index.txt |
</code> | </code> | ||
- | Creamos el fichero de configuración ~/myCA/caconfig.cnf que a continuación pongo con las opciones por defecto de la CA | + | Creamos el fichero de configuración home/guallar/myCA/caconfig.cnf que a continuación pongo con las opciones por defecto de la CA |
<file text caconfig.cnf> | <file text caconfig.cnf> | ||
# My sample caconfig.cnf file. | # My sample caconfig.cnf file. | ||
Línea 176: | Línea 180: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# export OPENSSL_CONF=~/myCA/caconfig.cnf | + | guallar@debian:/home/guallar# export OPENSSL_CONF=/home/guallar/myCA/caconfig.cnf |
</code> | </code> | ||
- | Este comando establece una variable de entorno, OPENSSL_CONF, que obliga a la herramienta openssl a buscar un archivo de configuración en una ubicación determinada (en este caso, ~/myCA/caconfig.cnf). | + | Este comando establece una variable de entorno, OPENSSL_CONF, que obliga a la herramienta openssl a buscar un archivo de configuración en una ubicación determinada (en este caso, /home/guallar/myCA/caconfig.cnf). |
===== generar ===== | ===== generar ===== | ||
Línea 187: | Línea 191: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl req -x509 -newkey rsa: 2048 -out cacert.pem -outform PEM-days 1825 | + | guallar@debian:/home/guallar# openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825 |
</code> | </code> | ||
Línea 211: | Línea 215: | ||
<code bash> | <code bash> | ||
- | ~/myCA/cacert.pem: certificado público de CA | + | guallar@debian:/home/guallar# myCA/cacert.pem: certificado público de CA |
- | ~/myCA/private/cakey.pem: clave privada de CA | + | guallar@debian:/home/guallar# myCA/private/cakey.pem: clave privada de CA |
</code> | </code> | ||
Línea 230: | Línea 234: | ||
Crear el archivo de configuración del servidor editando | Crear el archivo de configuración del servidor editando | ||
- | ~/myCA/exampleserver.cnf en el editor de texto. | + | /home/guallar/myCA/exampleserver.cnf en el editor de texto. |
| | ||
Añadir este ejemplo de contenido: | Añadir este ejemplo de contenido: | ||
Línea 261: | Línea 265: | ||
Una vez que hayamos editado el archivo adecuadamente, lo guardamos como | Una vez que hayamos editado el archivo adecuadamente, lo guardamos como | ||
<code bash> | <code bash> | ||
- | ~/myCA/exampleserver.cnf. | + | guallar@debian:/home/guallar# /myCA/exampleserver.cnf. |
</code> | </code> | ||
Y generamos el certificado de servidor y clave con los siguientes comandos: | Y generamos el certificado de servidor y clave con los siguientes comandos: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# export OPENSSL_CONF=~/myCA/exampleserver.cnf | + | guallar@debian:/home/guallar# export OPENSSL_CONF=/home/guallar/myCA/exampleserver.cnf |
</code> | </code> | ||
- | Este comando establece una variable de entorno OPENSSL_CONF que obliga a la herramienta openssl a buscar un archivo de configuración en una ubicación alternativa (en este caso, ~/myCA/exampleserver.cnf). | + | Este comando establece una variable de entorno OPENSSL_CONF que obliga a la herramienta openssl a buscar un archivo de configuración en una ubicación alternativa (en este caso, /home/guallar/myCA/exampleserver.cnf). |
Ahora generamos el certificado y clave: | Ahora generamos el certificado y clave: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl req -newkey rsa: 1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM | + | guallar@debian:/home/guallar# openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM |
</code> | </code> | ||
Línea 295: | Línea 299: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# export OPENSSL_CONF = ~ / myCA / caconfig.cnf | + | guallar@debian:/home/guallar# export OPENSSL_CONF=/home/guallar/myCA/caconfig.cnf |
</code> | </code> | ||
- | El comando anterior modifica la variable de entorno OPENSSL_CONF que obliga a la herramienta openssl a buscar un archivo de configuración en una ubicación alternativa (en este caso, ~ / myCA / caconfig.cnf para volver a la configuración de CA). | + | El comando anterior modifica la variable de entorno OPENSSL_CONF que obliga a la herramienta openssl a buscar un archivo de configuración en una ubicación alternativa (en este caso, /home/gualalr/myCA/caconfig.cnf para volver a la configuración de CA). |
Línea 304: | Línea 308: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl ca -in tempreq.pem -out server_crt.pem | + | guallar@debian:/home/guallar# openssl ca -in tempreq.pem -out server_crt.pem |
</code> | </code> | ||
Línea 351: | Línea 355: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem | + | guallar@debian:/home/guallar# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem |
</code> | </code> | ||
Línea 357: | Línea 361: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl pkcs12 -export -out mycert.pfx -en mycert.pem -name "Certificado para lo que sea" | + | guallar@debian:/home/guallar# openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "Certificado para lo que sea" |
</code> | </code> | ||
Línea 372: | Línea 376: | ||
Generamos el certificado del siguiente modo: | Generamos el certificado del siguiente modo: | ||
Si ya tenemos una clave privada | Si ya tenemos una clave privada | ||
- | <code bash> | ||
- | guallar@debian:~# openssl req -new -key mykey.pem -out myreq.pem | ||
+ | <code bash> | ||
+ | guallar@debian:/home/guallar# openssl req -new -key mykey.pem -out myreq.pem | ||
</code> | </code> | ||
Si no tenemos clave privada y queremos generar una nueva | Si no tenemos clave privada y queremos generar una nueva | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl req -new -newkey rsa:1024 -nodes -keyout mykey.pem -out myreq.pem | + | guallar@debian:/home/guallar# openssl req -new -newkey rsa:1024 -nodes -keyout mykey.pem -out myreq.pem |
</code> | </code> | ||
Podemos verificar la firma con: | Podemos verificar la firma con: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl req –in myreq.pem -noout -verify -key mykey.pem | + | guallar@debian:/home/guallar# openssl req -in myreq.pem -noout -verify -key mykey.pem |
</code> | </code> | ||
Podemos verificar la información contenida en la petición de certificado con: | Podemos verificar la información contenida en la petición de certificado con: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# openssl req -in myreq.pem -noout -text | + | guallar@debian:/home/guallar# openssl req -in myreq.pem -noout -text |
</code> | </code> | ||
Se envía a la CA que debe emitir el certificado el contenido del fichero de petición de certificado y debe esperarse a que la CA emita el certificado definitivo firmado por ella | Se envía a la CA que debe emitir el certificado el contenido del fichero de petición de certificado y debe esperarse a que la CA emita el certificado definitivo firmado por ella | ||
Línea 396: | Línea 400: | ||
Todas las aplicaciones que utilicen esta base de datos, automáticamente confiarán en los certificados que se hallen en ella | Todas las aplicaciones que utilicen esta base de datos, automáticamente confiarán en los certificados que se hallen en ella | ||
- | Operación manual | + | **Operación manual** |
Si no está instalado ya: | Si no está instalado ya: | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# apt-get install ca-certificates | + | guallar@debian:/home/guallar# apt-get install ca-certificates |
+ | </code> | ||
Copiar el certificado a | Copiar el certificado a | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# cp mycert.pem /usr/share/ca-certificates/mycert.crt | + | guallar@debian:/home/guallar/myCA# cp mycert.pem /usr/share/ca-certificates/mycert.crt |
</code> | </code> | ||
+ | |||
Editar el fichero | Editar el fichero | ||
<code bash> | <code bash> | ||
- | guallar@debian:~# /etc/ca-certificates.conf | + | guallar@debian:/home/guallar# /etc/ca-certificates.conf |
</code> | </code> | ||
Añadir después del último comentario el nombre del fichero con el certificado a añadir | Añadir después del último comentario el nombre del fichero con el certificado a añadir | ||
+ | |||
**Operación guidada** | **Operación guidada** | ||
+ | |||
<code bash> | <code bash> | ||
- | guallar@debian:~# dpkg-reconfigure ca-certificates | + | guallar@debian:/home/guallar# dpkg-reconfigure ca-certificates |
- | guallar@debian:~# update-ca-certificates | + | guallar@debian:/home/guallar# update-ca-certificates |
</code> | </code> | ||