{"id":204,"date":"2020-05-18T23:27:16","date_gmt":"2020-05-18T23:27:16","guid":{"rendered":"http:\/\/dsantana.uas.edu.mx\/?p=204"},"modified":"2021-05-04T14:51:44","modified_gmt":"2021-05-04T14:51:44","slug":"204","status":"publish","type":"post","link":"https:\/\/dsantana.uas.edu.mx\/index.php\/2020\/05\/18\/204\/","title":{"rendered":"Certificados SSL auto-firmados"},"content":{"rendered":"\n<p><strong>Objetivo<\/strong><\/p>\n\n\n\n<p>Para establecer una conexi\u00f3n segura y de confianza es necesario generar certificados que respalden la identidad del servidor. Estos certificados son generalmente emitidos por entidades certificadoras (<em>Certificate Authority<\/em>) independientes y de confianza reconocida. Sin embargo, para una utilizaci\u00f3n m\u00e1s casera y econ\u00f3mica, es posible crear un certificado \u201cauto-firmado\u201d.<\/p>\n\n\n\n<p><strong>Instalaci\u00f3n<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# apt install openssl ca-certificates<\/code><\/pre>\n\n\n\n<p><strong>Generaci\u00f3n de los certificados<\/strong><\/p>\n\n\n\n<p>La generaci\u00f3n de un certificado<em>SSL<\/em>&nbsp;requiere de los siguientes pasos: primero es generada una clave privada; en seguida \u00e9sta es usada para generar un pedido de certificaci\u00f3n (<em>Certificate Signing Request<\/em>&nbsp;(<em>CSR<\/em>)). El pedido de certificaci\u00f3n es entonces enviado a la entidad certificadora (<em>Certificate Authority<\/em>&nbsp;(<em>CA<\/em>)) que devuelve el certificado firmado. Es posible ahorrarse el \u00faltimo paso, generando un certificado auto-firmado (<em>Self-signed Certificate<\/em>).<\/p>\n\n\n\n<p>Crear una carpeta de trabajo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# mkdir certs\nroot@server:~# cd certs\nroot@server:~\/certs#<\/code><\/pre>\n\n\n\n<p><strong>Clave privada<\/strong><\/p>\n\n\n\n<p>Generar una clave privada(<em>Private Key<\/em>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~\/certs# openssl genrsa -out server.key 2048\nGenerating RSA private key, 2048 bit long modulus\n..........+++\n...........................................+++\ne is 65537 (0x10001)\nroot@server:~\/certs#<\/code><\/pre>\n\n\n\n<p>Esta clave debe ser almacenada con especial cuidado y s\u00f3lo debe ser accesible por el usuario&nbsp;<em>root<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~\/certs# chmod 600 server.key<\/code><\/pre>\n\n\n\n<p><strong>Pedido de certificaci\u00f3n<\/strong><\/p>\n\n\n\n<p>Para generar un pedido de certificaci\u00f3n (<em>Certificate Signing Request<\/em>), debe indicarse en el campo&nbsp;<em>Common Name<\/em>&nbsp;el nombre del servidor para el cual ser\u00e1 generado el certificado. En caso de que un certificado sea requerido por varios servidores del mismo dominio, es posible usar la sintaxis&nbsp;<em>*.fimaz.net<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~\/certs# openssl req -new -key server.key -out server.csr\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter '.', the field will be left blank.\n-----\nCountry Name (2 letter code) &#91;AU]: MX\nState or Province Name (full name) &#91;Some-State]: Sinaloa\nLocality Name (eg, city) &#91;]: Mazatlan\nOrganization Name (eg, company) &#91;Internet Widgits Pty Ltd]: *.fimaz.net\nOrganizational Unit Name (eg, section) &#91;]:*.fimaz.net\nCommon Name (e.g. server FQDN or YOUR name) &#91;]:*.fimaz.net\nEmail Address &#91;]: dsantana@uas.edu.mx\n \nPlease enter the following `extra` attributes\nto be sent with your certificate request\nA challenge password &#91;]:\nAn optional company name &#91;]:<\/code><\/pre>\n\n\n\n<p><strong>Certificado auto-firmado<\/strong><\/p>\n\n\n\n<p>El pedido de certificaci\u00f3n deber\u00eda ser enviado a la entidad certificadora, que devolver\u00eda el certificado firmado. En este caso, ser\u00e1 utilizado para crear un certificado (<em>Self-Signed Certificate<\/em>), v\u00e1lido por 365 d\u00edas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~\/certs# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt\nSignature ok\nsubject=\/C=MX\/ST=Sinaloa\/O=Mazatlan Lan\/CN=*.fimaz.net\nGetting Private key\nEnter pass phrase for server.key:\nroot@server:~\/certs#<\/code><\/pre>\n\n\n\n<p>El proceso de creaci\u00f3n de los certificados concluy\u00f3. Al final, fueron generados los siguientes archivos:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Archivo<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td>server.key<\/td><td>La llave privada<\/td><\/tr><tr><td>server.csr<\/td><td>El pedido de firma de certificaci\u00f3n<\/td><\/tr><tr><td>server.crt<\/td><td>El certificado auto-firmado<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>El certificado auto-firmado es v\u00e1lido por 365 d\u00edas, pero puede ser renovado en cualquier momento, al regenerar el certificado auto-firmado.<\/p>\n\n\n\n<p><strong>Instalaci\u00f3n de la clave privada y del certificado auto-firmado<\/strong><\/p>\n\n\n\n<p>Para esto, debe copiarse las claves privadas en&nbsp;<em>\/etc\/ssl\/private<\/em>&nbsp;y el certificado en&nbsp;<em>\/etc\/ssl\/certs<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~\/certs# cp server.key \/etc\/ssl\/private\/\nroot@server:~\/certs# cp server.crt \/etc\/ssl\/certs\/<\/code><\/pre>\n\n\n\n<p>As\u00ed, el certificado auto-firmado est\u00e1 listo para utilizarse.<\/p>\n\n\n\n<p>Como se trata de un certificado auto-firmado, su utilizaci\u00f3n siempre dar\u00e1 origen a un aviso por parte de la aplicaci\u00f3n cliente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"524\" height=\"358\" src=\"https:\/\/dsantana.uas.edu.mx\/wp-content\/uploads\/2020\/05\/untrusted-cert.png\" alt=\"\" class=\"wp-image-207\" srcset=\"https:\/\/dsantana.uas.edu.mx\/wp-content\/uploads\/2020\/05\/untrusted-cert.png 524w, https:\/\/dsantana.uas.edu.mx\/wp-content\/uploads\/2020\/05\/untrusted-cert-300x205.png 300w\" sizes=\"(max-width: 524px) 100vw, 524px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seguridad de la capa de transporte (en ingl\u00e9s: Transport Layer Security o TLS) y su antecesor Secure Sockets Layer (SSL; en espa\u00f1ol capa de puertos seguros) son protocolos criptogr\u00e1ficos, que proporcionan comunicaciones seguras por una red, com\u00fanmente Internet.<\/p>\n","protected":false},"author":1,"featured_media":311,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,5,12,1,10,6],"tags":[41],"class_list":["post-204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-debian","category-docencia","category-linux","category-sin-categoria","category-sistemas-operativos","category-talleres","tag-ssl"],"_links":{"self":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/comments?post=204"}],"version-history":[{"count":8,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/204\/revisions"}],"predecessor-version":[{"id":528,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/204\/revisions\/528"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media\/311"}],"wp:attachment":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media?parent=204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/categories?post=204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/tags?post=204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}