User Tools

Site Tools


linux:openssl:generar_ca_y_certificado_autofirmado

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:openssl:generar_ca_y_certificado_autofirmado [2022/02/11 11:36] – external edit 127.0.0.1linux:openssl:generar_ca_y_certificado_autofirmado [2023/08/31 15:42] (current) dodger
Line 8: Line 8:
 Para generar certificados autofirmados para Apache (o cualquier otro programa que use openssl): Para generar certificados autofirmados para Apache (o cualquier otro programa que use openssl):
  
-<code>+<code bash>
 cd /etc/http/conf cd /etc/http/conf
 mkdir CA mkdir CA
Line 16: Line 16:
 En este punto pedirá un password **obligatorio** para generar la key. Será necesario recordarlo para el futuro y es recomendable incluirlo en el keepass por si acaso en el futuro alguien lo necesita. En este punto pedirá un password **obligatorio** para generar la key. Será necesario recordarlo para el futuro y es recomendable incluirlo en el keepass por si acaso en el futuro alguien lo necesita.
  
-<code>+<code bash>
 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
-openssl genrsa -out `hostname`.key 2048 +openssl genrsa -out $(hostname).key 2048 
-openssl req -new -key `hostname`.key -out `hostname`.csr +openssl req -new -key $(hostname).key -out $(hostname).csr 
-openssl ca -keyfile ca.key -cert ca.crt -out `hostname`.crt -infiles `hostname`.csr+openssl ca -keyfile ca.key -cert ca.crt -out $(hostname).crt -infiles $(hostname).csr
 </code> </code>
 Siempre que nos pida un password, será el del key, **menos** cuando dice **"A challenge password"** que puede ser cualquier cosa, no es significativo. Siempre que nos pida un password, será el del key, **menos** cuando dice **"A challenge password"** que puede ser cualquier cosa, no es significativo.
Line 27: Line 27:
 Luego creamos los directorios: Luego creamos los directorios:
  
-<code>+<code bash>
 mkdir ../ssl.crt/ ../ssl.csr/ ../ssl.key/ mkdir ../ssl.crt/ ../ssl.csr/ ../ssl.key/
-mv `hostname`.crt ../ssl.crt/ +mv $(hostname).crt ../ssl.crt/ 
-mv `hostname`.csr ../ssl.csr/ +mv $(hostname).csr ../ssl.csr/ 
-mv `hostname`.key ../ssl.key/+mv $(hostname).key ../ssl.key/
 </code> </code>
 +
 +===== Generating DHPARAMS =====
 +<code bash>
 +openssl dhparam -dsaparam -out /etc/ssl/private/dhparam2.pem 4096
 +</code>
 +[[https://security.stackexchange.com/questions/95178/diffie-hellman-parameters-still-calculating-after-24-hours|Link]]
  
 ====== Troubleshoot ====== ====== Troubleshoot ======
 ===== Errores con el demoCA o index.txt ===== ===== Errores con el demoCA o index.txt =====
 +
 +==== quick fix ====
 +
 +<code bash>
 +export SSL_CONFIG="/etc/ssl/openssl.cnf"
 +export SSL_CAPATH="/etc/ssl/CA"
 +
 +sed -i "s,.demoCA,${SSL_CAPATH},g" ${SSL_CONFIG}
 +
 +mkdir -p ${SSL_CAPATH}/{certs,crl,newcerts}
 +touch ${SSL_CAPATH}/index.txt
 +echo "01" > ${SSL_CAPATH}/serial
 +</code>
 +
 +==== long explanation ====
 +
 En determinadas ocasiones no se generan los directorios/ficheros correctamente, de ahí­ errores del tipo: En determinadas ocasiones no se generan los directorios/ficheros correctamente, de ahí­ errores del tipo:
-<code>+<code bash>
 Using configuration from /etc/pki/tls/openssl.cnf Using configuration from /etc/pki/tls/openssl.cnf
 Enter pass phrase for ca.key: Enter pass phrase for ca.key:
Line 46: Line 68:
 </code> </code>
 o o
-<code>+<code bash>
 Using configuration from /etc/pki/tls/openssl.cnf Using configuration from /etc/pki/tls/openssl.cnf
 Enter pass phrase for ca.key: Enter pass phrase for ca.key:
Line 57: Line 79:
  
 Hay que editar el fichero de configuración del openssl, en este caso: Hay que editar el fichero de configuración del openssl, en este caso:
-<code> +<code bash
-vi /etc/pki/tls/openssl.cnf+vim /etc/ssl/openssl.cnf
 </code> </code>
  
 Y cambiar el directorio por defecto, lo habitual es ponerlo en el directorio donde está el **"cnf"**, por ejemplo: Y cambiar el directorio por defecto, lo habitual es ponerlo en el directorio donde está el **"cnf"**, por ejemplo:
-<code>+<code bash>
 [[|CA_default ]] [[|CA_default ]]
  
Line 83: Line 105:
  
 Si **database** y **serial** no existen, **HAY QUE CREARLOS**, se pueden usar los siguientes comandos: Si **database** y **serial** no existen, **HAY QUE CREARLOS**, se pueden usar los siguientes comandos:
-<code>+<code bash>
 mkdir -p /etc/pki/tls/CA/newcerts mkdir -p /etc/pki/tls/CA/newcerts
 touch /etc/pki/tls/CA/index.txt touch /etc/pki/tls/CA/index.txt
Line 94: Line 116:
 ===== The organizationName field needed to be the same in the ===== ===== The organizationName field needed to be the same in the =====
 Añadir: Añadir:
-<code>+<code bash>
 -policy policy_anything -policy policy_anything
 </code> </code>
 A la linea de ejecución en la generación del crt: A la linea de ejecución en la generación del crt:
-<code>+<code bash>
 openssl ca -policy policy_anything -keyfile ca.key -cert ca.crt -out DOMINIO.COM.crt -infiles DOMINIO.COM.csr openssl ca -policy policy_anything -keyfile ca.key -cert ca.crt -out DOMINIO.COM.crt -infiles DOMINIO.COM.csr
 </code> </code>
  
linux/openssl/generar_ca_y_certificado_autofirmado.1644579408.txt.gz · Last modified: 2022/02/11 11:36 by 127.0.0.1