<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>4.2. Creación de un certificado</title><link rel="stylesheet" href="./estilo.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.64.1" /><meta name="keywords" content="OpenLDAP, certificado, SSL, TLS" /><link rel="home" href="index.html" title="Integración de redes con OpenLDAP, Samba, CUPS y PyKota" /><link rel="up" href="openldap-certificados-openldap.html" title="Capítulo 4. Preparando la conexión segura" /><link rel="previous" href="openldap-certificados-introduccion.html" title="4.1. Introducción" /><link rel="next" href="openldap-certificados-configuracion-openldap.html" title="4.3. Configuración de OpenLDAP" /><meta xmlns="http://www.w3.org/TR/xhtml1/transitional" name="generator" content="Experimental LDP.XSL $Revision: 1.3 $"></meta>
  <!-- Generated by LDP XSLT customization layer
      based on Norman Walsh's DocBook XSL stylesheets.
      More information at http://www.linuxdoc.org/ -->
  </head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.2. Creación de un certificado</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="openldap-certificados-introduccion.html">Anterior</a> </td><th width="60%" align="center">Capítulo 4. Preparando la conexión segura</th><td width="20%" align="right"> <a accesskey="n" href="openldap-certificados-configuracion-openldap.html">Siguiente</a></td></tr></table><hr /></div><div class="sect1" lang="es" xml:lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="openldap-certificados-creacion-certificado"></a>4.2. Creación de un certificado</h2></div></div><div></div></div><p>Para habilitar las conexiones <span class="acronym">SSL</span>/<span class="acronym">TLS</span> hacia
	el servidor, se necesita la presencia de un certificado en el servidor por parte
	de los protocolos <span class="acronym">SSL</span>/<span class="acronym">TLS</span>. Además, en
	el establecimiento de una conexión <span class="acronym">SSL</span>, el certificado del servidor
	sólo proporciona una conexión segura y encriptada al servidor. Si se desea
	autentificar al cliente, se ha de presentar al servidor <span class="acronym">LDAP</span>
	el certificado certificado y el par de llaves del cliente.</p><p>Hay dos formas de crear e instalar un certificado en el servidor. Ambos métodos
	requieren la creación de un certificado para el servidor, enviárselo a los
	clientes OpenLDAP y realizar los cambios apropiados a los archivos de configuración
	de OpenLDAP. Ambos métodos necesitan el uso de comandos OpenSSL que solicitarán
	información para la creación del certificado.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="./imagenes/warning.png" /></td><th align="left">Aviso</th></tr><tr><td colspan="2" align="left" valign="top"><p>Cuando se pregunte por el “<span class="quote">Common Name</span>”,
	ha de teclear el nombre del dominio de su servidor (<span class="acronym">FQDN</span>), como por
	ejemplo: <i class="emphasis">miservidor.pt</i>, y no “<span class="quote">su nombre</span>”
	como sugiere OpenSSL. ¡Esta equivocación es la causa del 90% de los errores en el
	el certificado del servidor!</p></td></tr></table></div><div class="sect2" lang="es" xml:lang="es"><div class="titlepage"><div><div><h3 class="title"><a id="openldap-certificados-creacion-certificado-autofirmado"></a>4.2.1. Certificado autofirmado</h3></div></div><div></div></div><p>La primera forma para la creación del certificado del servidor emplea OpenSSL
		y genera un certificado autofirmado para el servidor. Para ello, desde la
		línea de comandos se ha de teclear (la letra en negrita son las opciones
		que ha de introducir el usuario):</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="./imagenes/note.png" /></td><th align="left">Nota</th></tr><tr><td colspan="2" align="left" valign="top"><p>OpenLDAP sólo trabaja con llaves no encriptadas, por lo que se ha de
		emplear el parámetro “<span class="quote">-nodes</span>” de OpenSSL para evitar la
		encriptación de la llave privada.</p></td></tr></table></div><div class="example"><a id="openldap-certificados-creacion-certificado-autofirmado-ejemplo1"></a><p class="title"><b>Ejemplo 4.1. Creación de un certificado autofirmado para el servidor</b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>openssl req -newkey rsa:1024 -x509 -nodes -out server.pem -keyout server.pem -days 365</tt></b>
<tt class="computeroutput">Generating a 1024 bit RSA private key
..........................++++++
...............................++++++
writing new private key to 'server.pem'
-----
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]:</tt><b class="userinput"><tt>PT</tt></b>
<tt class="computeroutput">State or Province Name (full name) [Some-State]:</tt><b class="userinput"><tt>Braganca</tt></b>
<tt class="computeroutput">Locality Name (eg, city) []:</tt><b class="userinput"><tt>Braganca</tt></b>
<tt class="computeroutput">Organization Name (eg, company) [Internet Widgits Pty Ltd]:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Organizational Unit Name (eg, section) []:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Common Name (eg, YOUR name) []:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Email Address []:</tt><b class="userinput"><tt>sergio@gsr.pt</tt></b></pre></td></tr></table></div><p>Esto creará un archivo <tt class="filename">server.pem</tt> en el directorio donde haya
		ejecutado el comando del
		<a href="openldap-certificados-creacion-certificado.html#openldap-certificados-creacion-certificado-autofirmado-ejemplo1" title="Ejemplo 4.1. Creación de un certificado autofirmado para el servidor">Ejemplo 4.1, “Creación de un certificado autofirmado para el servidor”</a>. Puede
		ver una muestra en el <a href="openldap-certificado-servidor.html" title="Apéndice A. Ejemplo de certificado para un servidor">Apéndice A, <i>Ejemplo de certificado para un servidor</i></a>.</p><p>Ahora sólo falta indicar a OpenLDAP que utilice el certificado anteriormente
		creado. Para ello se han de añadir las siguientes líneas al archivo de configuración
		de <span><b class="command">slapd</b></span>, <tt class="filename">/etc/ldap/slapd.conf</tt>:</p><div class="example"><a id="openldap-certificados-creacion-certificado-autofirmado-ejemplo2"></a><p class="title"><b>Ejemplo 4.2. Opciones de configuración para <tt class="filename">slapd.conf</tt> que añaden
			un certificado en el servidor (para más detalles, vea el
			<a href="openldap-slapd.conf.html" title="Apéndice P. Archivo de configuración /etc/ldap/slapd.conf">Apéndice P, <i>Archivo de configuración /etc/ldap/slapd.conf</i></a>).</b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="programlisting">TLSCACertificateFile server.pem 
TLSCertificateFile server.pem 
TLSCertificateKeyFile server.pem</pre></td></tr></table></div></div><div class="sect2" lang="es" xml:lang="es"><div class="titlepage"><div><div><h3 class="title"><a id="openldap-certificados-creacion-certificado-entidad-certifificadora"></a>4.2.2. Certificado emitido por una <span class="acronym">CA</span></h3></div></div><div></div></div><p>Si ya posee una entidad certificadora (<span class="acronym">CA</span>) de confianza,
		sáltese esta sección dedicada al proceso de obtención de un certificado
		firmado por una entidad certificadora y la creación de un certificado y una
		llave privada para el servidor.</p><p>Sin embargo, si no posee de una entidad certificadora de confianza, OpenSSL
		realiza el mismo proceso rápida y fácilmente. Para ello siga los siguientes pasos:</p><div class="orderedlist"><ol type="1"><li><p><a id="creacion-directorio"></a>Creación de un directorio para crear y firmar los certificados, por ejemplo:
				<tt class="filename">/var/tmp/mica</tt></p><div class="example"><a id="openldap-certificados-creacion-certificado-ca-ejemplo1"></a><p class="title"><b>Ejemplo 4.3. Creación de un directorio para crear y firmar los certificados</b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>/bin/mkdir -v /var/tmp/mica</tt></b>
<tt class="computeroutput">/bin/mkdir: se ha creado el directorio `/var/tmp/mica'</tt></pre></td></tr></table></div></li><li><p><a id="creacion-entidad-certificadora"></a>Sitúese en el directorio <tt class="filename">/var/tmp/mica</tt>
				y ejecute el script <tt class="filename">CA.sh</tt> de OpenSSL.</p><div class="example"><a id="openldap-certificados-creacion-certificado-ca-ejemplo2"></a><p class="title"><b>Ejemplo 4.4. Creación de una entidad certificadora</b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>cd /var/tmp/mica</tt></b>
<tt class="prompt">$</tt> <b class="userinput"><tt>/usr/lib/ssl/misc/CA.sh -newca</tt></b>
<tt class="computeroutput">CA certificate filename (or enter to create)
</tt><b class="userinput"><tt>[Enter]</tt></b>
<tt class="computeroutput">Making CA certificate ...
Generating a 1024 bit RSA private key
....................+++
...................................+++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:</tt> <b class="userinput"><tt>[Clave ca]</tt></b> <a id="clave-pem"></a><img src="./imagenes/callouts/1.png" alt="1" border="0"></img>
<tt class="computeroutput">Verifying - Enter PEM pass phrase:</tt> <b class="userinput"><tt>[Clave ca]</tt></b>
<tt class="computeroutput">-----
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]:</tt><b class="userinput"><tt>PT</tt></b>
<tt class="computeroutput">State or Province Name (full name) [Some-State]:</tt><b class="userinput"><tt>Braganca</tt></b>
<tt class="computeroutput">Locality Name (eg, city) []:</tt><b class="userinput"><tt>Braganca</tt></b>
<tt class="computeroutput">Organization Name (eg, company) [Internet Widgits Pty Ltd]:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Organizational Unit Name (eg, section) []:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Common Name (eg, YOUR name) []:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Email Address []:</tt><b class="userinput"><tt>sergio@gsr.pt</tt></b>
</pre></td></tr></table><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#clave-pem"><img src="./imagenes/callouts/1.png" alt="1" border="0" /></a> </td><td valign="top" align="left"><p>La clave utilizada ha de tener un mínimo de 4 caracteres.</p></td></tr></table></div></div><p>Esto creará la siguiente estructura de directorios bajo
				<tt class="filename">/var/tmp/mica</tt>:</p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>/usr/bin/tree</tt></b>
<tt class="computeroutput">.
`-- demoCA
    |-- cacert.pem
    |-- certs
    |-- crl
    |-- index.txt
    |-- newcerts
    |-- private
    |   `-- cakey.pem
    `-- serial

5 directories, 4 files</tt></pre></td></tr></table><p>Pero los archivos realmente interesantes con
				<tt class="filename">demoCA/cacert.pem</tt> y
				<tt class="filename">demoCA/private/cakey.pem</tt> (El certificado
				de la entidad certificadora y la llave privada, respectivamente).</p></li><li><p><a id="creacion-csr"></a>Creamos la petición para la firma del certificado perteneciente al servidor
				(<span class="acronym">CSR</span>):</p><div class="example"><a id="openldap-certificados-creacion-certificado-ca-ejemplo3"></a><p class="title"><b>Ejemplo 4.5. Creación de la petición para la firma del certificado del servidor</b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>/usr/bin/openssl req -newkey rsa:1024 -nodes -keyout newreq.pem -out newreq.pem</tt></b>
<tt class="computeroutput">Generating a 1024 bit RSA private key
...++++++
...........++++++
writing new private key to 'newreq.pem'
-----
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]:</tt><b class="userinput"><tt>PT</tt></b>
<tt class="computeroutput">State or Province Name (full name) [Some-State]:</tt><b class="userinput"><tt>Braganca</tt></b>
<tt class="computeroutput">Locality Name (eg, city) []:</tt><b class="userinput"><tt>Braganca</tt></b>
<tt class="computeroutput">Organization Name (eg, company) [Internet Widgits Pty Ltd]:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Organizational Unit Name (eg, section) []:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Common Name (eg, YOUR name) []:</tt><b class="userinput"><tt>gsr.pt</tt></b>
<tt class="computeroutput">Email Address []:</tt><b class="userinput"><tt>sergio@gsr.pt</tt></b>
<tt class="computeroutput"></tt><b class="userinput"><tt></tt></b>
<tt class="computeroutput">
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:</tt><b class="userinput"><tt>[Clave]</tt></b> <a id="clave-challenge"></a><img src="./imagenes/callouts/1.png" alt="1" border="0"></img>
<tt class="computeroutput">An optional company name []:</tt>.<b class="userinput"><tt></tt></b>
</pre></td></tr></table><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#clave-challenge"><img src="./imagenes/callouts/1.png" alt="1" border="0" /></a> </td><td valign="top" align="left"><p>La clave utilizada ha de tener un mínimo de 4 caracteres.</p></td></tr></table></div></div><p>El resultado es el archivo <tt class="filename">newreq.pem</tt>.</p></li><li><p><a id="firma-csr"></a>Firma del <span class="acronym">CSR</span>:</p><div class="example"><a id="openldap-certificados-creacion-certificado-ca-ejemplo4"></a><p class="title"><b>Ejemplo 4.6. Firma del <span class="acronym">CSR</span></b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>/usr/lib/ssl/misc/CA.sh -sign</tt></b>
<tt class="computeroutput">Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:</tt><b class="userinput"><tt>[Clave ca]</tt></b>
<tt class="computeroutput">Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Mar  9 23:25:59 2004 GMT
            Not After : Mar  9 23:25:59 2005 GMT
        Subject:
            countryName               = PT
            stateOrProvinceName       = Braganca
            localityName              = Braganca
            organizationName          = gsr.pt
            organizationalUnitName    = gsr.pt
            commonName                = gsr.pt
            emailAddress              = sergio@gsr.pt
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                6D:5B:86:85:67:82:40:81:1A:00:17:13:6A:55:87:C6:0F:AE:0B:2F
            X509v3 Authority Key Identifier:
                keyid:FD:76:7B:FA:EB:98:03:6D:8C:D6:AF:2F:65:DD:0A:62:BB:79:66:58
                DirName:/C=PT/ST=Braganca/L=Braganca/O=gsr.pt/OU=gsr.pt/CN=gsr.pt/\
                                                         emailAddress=sergio@gsr.pt
                serial:00

Certificate is to be certified until Mar  9 23:25:59 2005 GMT (365 days)
Sign the certificate? [y/n]:</tt><b class="userinput"><tt>y</tt></b>
<tt class="computeroutput">

1 out of 1 certificate requests certified, commit? [y/n]</tt><b class="userinput"><tt>y</tt></b>
<tt class="computeroutput">Write out database with 1 new entries
Data Base Updated
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=PT, ST=Braganca, L=Braganca, O=gsr.pt, OU=gsr.pt, \
                                           CN=gsr.pt/emailAddress=sergio@gsr.pt
        Validity
            Not Before: Mar  9 23:25:59 2004 GMT
            Not After : Mar  9 23:25:59 2005 GMT
        Subject: C=PT, ST=Braganca, L=Braganca, O=gsr.pt, OU=gsr.pt, \
                                            CN=gsr.pt/emailAddress=sergio@gsr.pt
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:b7:19:89:78:17:a5:89:74:65:fe:57:23:3b:53:
                    e0:49:81:bb:12:71:6b:28:90:09:73:1f:7f:88:d5:
                    0a:1e:f1:c7:13:7a:e0:48:f7:ff:1a:92:bf:35:31:
                    6d:df:ad:95:09:1d:12:0e:59:8f:b8:b5:ef:43:92:
                    e6:e0:f2:cd:db:85:bc:70:d6:d5:f7:a3:12:f5:52:
                    20:2a:55:40:10:1f:f7:bd:5c:ef:d7:db:33:f9:4e:
                    f5:c7:6f:a5:07:15:c0:74:b2:98:ff:13:d7:6f:19:
                    16:c5:f9:d9:47:b5:91:22:5b:f1:fe:05:ee:5b:af:
                    00:18:93:47:e2:ff:04:7e:1b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                6D:5B:86:85:67:82:40:81:1A:00:17:13:6A:55:87:C6:0F:AE:0B:2F
            X509v3 Authority Key Identifier:
                keyid:FD:76:7B:FA:EB:98:03:6D:8C:D6:AF:2F:65:DD:0A:62:BB:79:66:58
                DirName:/C=PT/ST=Braganca/L=Braganca/O=gsr.pt/OU=gsr.pt/\
                                             CN=gsr.pt/emailAddress=sergio@gsr.pt
                serial:00

    Signature Algorithm: md5WithRSAEncryption
        05:49:b1:11:79:97:b9:0e:23:c1:1f:65:c1:8d:51:0d:b4:06:
        b8:39:a1:74:6f:e1:ce:5b:45:56:b7:6c:09:f1:7c:ec:24:62:
        03:8e:8a:f6:6c:4a:88:20:d9:33:95:fe:22:2a:92:b5:cb:3f:
        6e:97:74:45:4a:68:26:80:62:d3:4b:17:cf:41:96:e8:47:41:
        77:26:67:33:8e:72:f3:87:10:a1:c1:21:89:1c:55:26:ab:d4:
        c6:26:a0:9a:f7:ef:e6:4e:62:27:47:9f:16:0f:a2:0d:45:ae:
        d1:82:0a:2e:c0:ae:d3:05:e7:f2:3a:a2:9f:84:af:d9:4f:21:
        c2:f8:a3:13:db:2b:62:53:4b:7f:03:89:ef:ec:af:7d:6c:04:
        05:f8:9b:c8:67:4c:10:1d:09:15:3a:6b:d2:06:83:88:69:e6:
        eb:f3:fe:03:8a:eb:a6:48:8b:f8:f0:7e:ab:05:31:24:15:86:
        d0:69:84:f3:ec:da:97:58:74:36:3f:47:ba:1a:8b:9a:61:f5:
        9d:16:dc:6e:1c:20:f5:65:f7:21:8d:39:4c:29:5d:4e:ef:b0:
        df:07:d3:e3:95:24:94:67:78:d5:57:bf:26:14:60:44:45:c2:
        74:6a:00:d6:f7:d3:a4:52:fb:69:1c:a7:38:73:7b:35:4d:fe:
        02:43:82:65
-----BEGIN CERTIFICATE-----
MIIEEzCCAvugAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhDELMAkGA1UEBhMCUFQx
ETAPBgNVBAgTCEJyYWdhbmNhMREwDwYDVQQHEwhCcmFnYW5jYTEPMA0GA1UEChMG
Z3NyLnB0MQ8wDQYDVQQLEwZnc3IucHQxDzANBgNVBAMTBmdzci5wdDEcMBoGCSqG
SIb3DQEJARYNc2VyZ2lvQGdzci5wdDAeFw0wNDAzMDkyMzI1NTlaFw0wNTAzMDky
MzI1NTlaMIGEMQswCQYDVQQGEwJQVDERMA8GA1UECBMIQnJhZ2FuY2ExETAPBgNV
BAcTCEJyYWdhbmNhMQ8wDQYDVQQKEwZnc3IucHQxDzANBgNVBAsTBmdzci5wdDEP
MA0GA1UEAxMGZ3NyLnB0MRwwGgYJKoZIhvcNAQkBFg1zZXJnaW9AZ3NyLnB0MIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3GYl4F6WJdGX+VyM7U+BJgbsScWso
kAlzH3+I1Qoe8ccTeuBI9/8akr81MW3frZUJHRIOWY+4te9Dkubg8s3bhbxw1tX3
oxL1UiAqVUAQH/e9XO/X2zP5TvXHb6UHFcB0spj/E9dvGRbF+dlHtZEiW/H+Be5b
rwAYk0fi/wR+GwIDAQABo4IBEDCCAQwwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFG1bhoVn
gkCBGgAXE2pVh8YPrgsvMIGxBgNVHSMEgakwgaaAFP12e/rrmANtjNavL2XdCmK7
eWZYoYGKpIGHMIGEMQswCQYDVQQGEwJQVDERMA8GA1UECBMIQnJhZ2FuY2ExETAP
BgNVBAcTCEJyYWdhbmNhMQ8wDQYDVQQKEwZnc3IucHQxDzANBgNVBAsTBmdzci5w
dDEPMA0GA1UEAxMGZ3NyLnB0MRwwGgYJKoZIhvcNAQkBFg1zZXJnaW9AZ3NyLnB0
ggEAMA0GCSqGSIb3DQEBBAUAA4IBAQAFSbEReZe5DiPBH2XBjVENtAa4OaF0b+HO
W0VWt2wJ8XzsJGIDjor2bEqIINkzlf4iKpK1yz9ul3RFSmgmgGLTSxfPQZboR0F3
JmczjnLzhxChwSGJHFUmq9TGJqCa9+/mTmInR58WD6INRa7RggouwK7TBefyOqKf
hK/ZTyHC+KMT2ytiU0t/A4nv7K99bAQF+JvIZ0wQHQkVOmvSBoOIaebr8/4Diuum
SIv48H6rBTEkFYbQaYTz7NqXWHQ2P0e6GouaYfWdFtxuHCD1ZfchjTlMKV1O77Df
B9PjlSSUZ3jVV78mFGBERcJ0agDW99OkUvtpHKc4c3s1Tf4CQ4Jl
-----END CERTIFICATE-----
Signed certificate is in newcert.pem</tt>
</pre></td></tr></table></div><p>Esto crea el archivo <tt class="filename">newcert.pem</tt> (el certificado
				del servidor firmado por la entidad certificadora) con la clave
				privada, <tt class="filename">newreq.pem</tt>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="./imagenes/note.png" /></td><th align="left">Nota</th></tr><tr><td colspan="2" align="left" valign="top"><p>Para verificar que el certificado está correctamente firmado
				se puede utilizar el siguiente comando:</p><div class="example"><a id="verificacion-firma-de-un-certificado"></a><p class="title"><b>Ejemplo 4.7. Verificación de la firma creada en un certificado por una
					<span class="acronym">CA</span></b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">$</tt> <b class="userinput"><tt>/usr/bin/openssl verify -CAfile demoCA/cacert.pem newcert.pem</tt></b>
<tt class="computeroutput">newcert.pem: OK</tt></pre></td></tr></table></div></td></tr></table></div></li><li><p><a id="ajustes-finales"></a>Ahora se puede renombrar y mover los certificados al sitio deseado.
				En este caso se moverá al directorio
				<tt class="filename">/etc/ldap/ssl</tt>, quedando
				la estructura final como sigue:</p><div class="example"><a id="openldap-certificados-creacion-certificado-ca-ejemplo5"></a><p class="title"><b>Ejemplo 4.8. Estructura de directorios final para los certificados</b></p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">#</tt> <b class="userinput"><tt>/usr/bin/tree /etc/ldap/ssl</tt></b>
<tt class="computeroutput">/etc/ldap/ssl
|-- cacert.pem
|-- certs
|   `-- servidorcert.pem <a id="servidorcert.pem"></a><img src="./imagenes/callouts/1.png" alt="1" border="0"></img>
|-- crl
|-- index.txt
|-- newcerts
|   `-- 01.pem
|-- private
|   |-- cakey.pem
|   `-- servidorkey.pem <a id="servidorkey.pem"></a><img src="./imagenes/callouts/2.png" alt="2" border="0"></img>
`-- serial

4 directories, 7 files</tt></pre></td></tr></table><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#servidorcert.pem"><img src="./imagenes/callouts/1.png" alt="1" border="0" /></a> </td><td valign="top" align="left"><p>Este archivo se corresponde con
						el archivo <tt class="filename">newcert.pem</tt> generado tras el
						<a href="openldap-certificados-creacion-certificado.html#openldap-certificados-creacion-certificado-ca-ejemplo4" title="Ejemplo 4.6. Firma del CSR">Ejemplo 4.6, “Firma del CSR”</a></p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#servidorkey.pem"><img src="./imagenes/callouts/2.png" alt="2" border="0" /></a> </td><td valign="top" align="left"><p>Este archivo se corresponde con
						el archivo <tt class="filename">newreq.pem</tt> generado tras el
						<a href="openldap-certificados-creacion-certificado.html#openldap-certificados-creacion-certificado-ca-ejemplo4" title="Ejemplo 4.6. Firma del CSR">Ejemplo 4.6, “Firma del CSR”</a></p></td></tr></table></div></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="./imagenes/important.png" /></td><th align="left">Importante</th></tr><tr><td colspan="2" align="left" valign="top"><p>Sería recomendable hacer la llave privada del servidor
				sólo legible por el usuario con el que se ejecuta <span><b class="command">slapd</b></span>,
				para ello teclee:</p><table xmlns="http://www.w3.org/TR/xhtml1/transitional" border="0" bgcolor="#E0E0E0" width="90%"><tr><td><pre class="screen"><tt class="prompt">#</tt> <b class="userinput"><tt>/bin/chmod -v 400 /etc/ldap/ssl/private/servidorkey.pem</tt></b>
<tt class="computeroutput">el modo de `/etc/ldap/ssl/private/servidorkey.pem' cambia a 0400 (r--------)</tt></pre></td></tr></table><p>Los demás certificados tendría que poderse leer por todo el mundo.</p></td></tr></table></div></li><li><p><a id="certificado-accesible"></a>Hacer que el certificado de la entidad certificadora esté disponible para los
				clientes de <span class="acronym">LDAP</span>.</p><p>Si los clientes están en la misma máquina, se ha de copiar el archivo
				<tt class="filename">cacert.pem</tt> a un lugar accesible por los clientes. Si los
				clientes están en otros equipos, se ha de copiar el archivo
				<tt class="filename">cacert.pem</tt> a esas máquinas y hacerlo accesible.</p></li></ol></div><p>Como se ha podido apreciar, este proceso requieres algunos pasos más que la creación
		un certificado autofirmado, pero los beneficios obtenidos sobrepasan cualquier gasto
		de tiempo empleado en crear la entidad certificadora.</p></div><div class="sect2" lang="es" xml:lang="es"><div class="titlepage"><div><div><h3 class="title"><a id="openldap-certificados-creacion-certificado-cliente"></a>4.2.3. El certificado de los clientes</h3></div></div><div></div></div><p>Los certificados para los clientes se crean de forma similar a los certificados
		para el servidor. Si se siguen los pasos detallados en
		<a href="openldap-certificados-creacion-certificado.html#openldap-certificados-creacion-certificado-entidad-certifificadora" title="4.2.2. Certificado emitido por una CA">Sección 4.2.2, “Certificado emitido por una CA”</a>,
		los únicos cambios son los siguientes:</p><p><b><a href="openldap-certificados-creacion-certificado.html#creacion-directorio" title="">1</a> y
			<a href="openldap-certificados-creacion-certificado.html#creacion-entidad-certificadora" title="">2</a>: </b>No se hace nada... no se necesita crear de nuevo la entidad certificadora.
			El objetivo es utilizar la misma entidad certificadora para firmar el
			certificado del cliente.</p><p><b><a href="openldap-certificados-creacion-certificado.html#creacion-csr" title="">3</a>: </b>Se ejecuta todo lo que allí se muestra, lo único que se ha de cambiar es el nombre
			del servidor por el del cliente cuando se pregunte el “<span class="quote">Common Name</span>”.
			Se da por supuesto que todas las demás respuestas se han de ajustar a los datos
			del cliente.</p><p><b><a href="openldap-certificados-creacion-certificado.html#firma-csr" title="">4</a>: </b>Los mismos comandos, obteniéndose los mismos archivos para el certificado y
			la llave privada. ¡Gracias que se renombró el certificado en el
			<a href="openldap-certificados-creacion-certificado.html#ajustes-finales" title="">5</a>!.</p><p><b><a href="openldap-certificados-creacion-certificado.html#ajustes-finales" title="">5</a>: </b>Ahora se puede renombrar y mover el certificado y la llave privada del cliente
			al lugar indicado (por ejemplo,
			<tt class="filename">/home/usuario/ssl/</tt>). También sería recomendable
			que cambiase los permisos de la llave privada, para que sólo pueda ser leída por el
			usuario al que pertenece.</p><p><b><a href="openldap-certificados-creacion-certificado.html#certificado-accesible">6</a>: </b>No se ha de hacer nada en este paso.</p><p>Ahora que ya están creados los certificados, sólo queda configurar OpenLDAP.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openldap-certificados-introduccion.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="openldap-certificados-openldap.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="openldap-certificados-configuracion-openldap.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">4.1. Introducción </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> 4.3. Configuración de OpenLDAP</td></tr></table></div></body></html>
