{"id":9113,"date":"2016-04-26T14:15:10","date_gmt":"2016-04-26T19:15:10","guid":{"rendered":"http:\/\/blogs.pacasmayo.com\/felipe\/?p=9113"},"modified":"2016-04-26T18:52:03","modified_gmt":"2016-04-26T23:52:03","slug":"cuando-el-orden-de-los-factores-afecta-el-producto-certificados","status":"publish","type":"post","link":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/","title":{"rendered":"Cuando el orden de los factores afecta el producto (Certificados)"},"content":{"rendered":"<h1>El problema<\/h1>\n<p>Tratando de clonar un repositorio desde una computadora con Ubuntu, me encontr\u00e9 con un error que me tom\u00f3 mucho tiempo solucionar.<br \/>\nEl repositorio era accesible desde varias otras computadoras sin problemas, as\u00ed que era obvio que el problema no estaba en el servidor, por lo que pas\u00e9\u00a0muchas horas de frustraci\u00f3n buscando el problema que causaba que esta nueva computadora no pueda acceder a lo que era claramente accesible a otras computadoras.<br \/>\nEl error apuntaba a un error con el certificado.<br \/>\nfatal: unable to access &#8216;https:\/\/xxx.xxx.xxx\/xxx.git\/&#8217;: server certificate verification failed.<\/p>\n<h1>A\u00f1os de experiencia<\/h1>\n<p>Los a\u00f1os de experiencia en las lides inform\u00e1ticas, inmediatamente dieron su opini\u00f3n. \u00a0En Windows, cuando una aplicaci\u00f3n tiene problemas en establecer una comunicaci\u00f3n con un servidor seguro (cifrado con SSL o TLS), la forma m\u00e1s pr\u00e1ctica de investigar el problema es intentar abrir una comunicaci\u00f3n con un navegador com\u00fan. \u00a0Se hace esto por dos razones; primero, porque si hay un error con las versiones de cifrado, o con los certificados, o autoridades, el navegador nos dar\u00e1 un informe bastante completo de la raz\u00f3n por la cual la comunicaci\u00f3n no puede establecerse, y segundo, porque los navegadores tambi\u00e9n nos dan una opci\u00f3n de incorporar el certificado al almac\u00e9n de certificados aceptados, en caso que el error haya sido simplemente que hay una peque\u00f1a discrepancia en el certificado y podemos asumir el riesgo. \u00a0En linux, esto nos es tan &#8220;f\u00e1cil&#8221;, puesto que no hay un &#8220;almac\u00e9n&#8221; centralizado al que vayan las aplicaciones para verificar los certificados, sino que cada aplicaci\u00f3n guarda los certificados internamente. \u00a0Sin embargo, pens\u00e9, no es mala idea abrir la direcci\u00f3n desde el navegador, por lo menos me dar\u00e1 el error.<\/p>\n<h1>Oh sorpresa<\/h1>\n<p>Para mi sorpresa, el navegador estableci\u00f3 la comunicaci\u00f3n segura sin ning\u00fan problema. \u00a0Hmmm, \u00bfy ahora? \u00a0Si el navegador puede conectarse, quiere decir que el certificado es bueno y el problema es en la configuraci\u00f3n del git.<\/p>\n<h1>Actualic\u00e9monos<\/h1>\n<p>Ok, asegur\u00e9monos que la versi\u00f3n del git sea la actual. \u00a0Me di cuenta que la versi\u00f3n de git estaba ligeramente desactualizada&#8230; pens\u00e9&#8230; a lo mejor no soporta la versi\u00f3n de cifrado\u00a0que tiene el servidor (algunos recuerdan que el cifrado ha pasado por versiones SSL 1.0, 2.0, 3.0 y luego cambi\u00f3 de nombre para ser TLS 1.0, 1.1, 1.2 y ya est\u00e1 casi listo el 1.3). \u00a0Es recomendable que conforme estos protocolos de seguridad se van mejorando, uno vaya deshabilitando los anteriores. \u00a0Por ejemplo, nadie debe tener activo SSL 1.0 o 2.0, se han publicado\u00a0demasiados problemas con esas versiones. \u00a0Version SSL 3.0&#8230; ya tambi\u00e9n deber\u00eda dejarse de usar, pero algunos sitios todav\u00eda lo requieren. \u00a0Pens\u00e9 que a lo mejor el servidor requer\u00eda una versi\u00f3n de seguridad m\u00e1s alta que el git que vino instalado en Ubuntu, as\u00ed que &#8230; a actualizar:<\/p>\n<p><code>sudo apt-get update<br \/>\nsudo apt-get install git<br \/>\ngit --version<br \/>\n<\/code><\/p>\n<p>Nop&#8230; el mismo error.<\/p>\n<h1>Google, al rescate<\/h1>\n<p>Google siempre ha sido un compa\u00f1ero fiel, hasta en las circunstancias m\u00e1s dif\u00edciles de la vida (2AM y el c\u00f3digo no compila con errores de &#8220;Encoding::CompatibilityError (incompatible character encodings: UTF-8 and ASCII-8BIT)&#8221;, por ejemplo). \u00a0Sin embargo, hasta la p\u00e1gina 6 de los resultados que encontraba, no importa qu\u00e9 t\u00e9rminos usaba para buscar, todas, absolutamente todas las sugerencias encontradas eran para cuando alguien usa un certificado auto-firmado. \u00a0Ese no era mi caso, el certificado era leg\u00edtimo y por lo tanto ninguna de esas &#8220;soluciones&#8221; se aplicaba. \u00a0Ten\u00eda que ser algo m\u00e1s, sin embargo, segu\u00ed algunas de las sugerencias&#8230; por si acaso.<\/p>\n<p><code>sudo dpkg-reconfigure ca-certificates<\/code><\/p>\n<p>also<\/p>\n<p><code>sudo update-ca-certificates<\/code><\/p>\n<p>Como era de esperarse, ninguna de estas sugerencias dio ning\u00fan resultado&#8230; el certificado es leg\u00edtimo y es obviamente accesible de otras computadoras y a\u00fan desde el navegador de esta misma computadora.<\/p>\n<h1>Hora de ensuciarse<\/h1>\n<p>Bueno, cuando todo lo dem\u00e1s falla, hay que ponerse a trabajar. \u00a0Afortunadamente, hay herramientas hoy en d\u00eda que nos permiten mantenernos ligeramente por encima de la superficie y no tenemos que observar los bytes con Wireshark para encontrar los errores.<\/p>\n<p>En linux, openssl es la mejor herramienta para investigar estos problemas.<\/p>\n<p><code>openssl s_client -connect xxx.xxx.xxx:443<\/code><\/p>\n<p>probablemente el comando m\u00e1s \u00fatil&#8230; sin embargo, al correrlo,\u00a0el comando tuvo \u00e9xito en establecer la conexi\u00f3n. \u00a0Un dato importante que te da el openssl, es la cadena de certificados. \u00a0Muy com\u00fanmente, personas ponen un certificado en el servidor, sin poner la cadena total, y algunos navegadores protestan por eso. \u00a0Sin embargo, al examinar la cadena de certificados pude comprobar que todos los certificados necesarios estaban presentes.<\/p>\n<pre>Certificate chain\r\n\r\n 0 s:\/C=US\/postalCode=xxx\/ST=xx\/L=xxx\/street=xxx\/O=xxx\/OU=xxx\/CN=xxx.xxx.xxx\r\n   i:\/C=US\/ST=MI\/L=Ann Arbor\/O=Internet2\/OU=InCommon\/CN=InCommon RSA Server CA\r\n 1 s:\/C=SE\/O=AddTrust AB\/OU=AddTrust External TTP Network\/CN=AddTrust External CA Root\r\n   i:\/C=SE\/O=AddTrust AB\/OU=AddTrust External TTP Network\/CN=AddTrust External CA Root\r\n 2 s:\/C=US\/ST=New Jersey\/L=Jersey City\/O=The USERTRUST Network\/CN=USERTrust RSA Certification Authority\r\n   i:\/C=SE\/O=AddTrust AB\/OU=AddTrust External TTP Network\/CN=AddTrust External CA Root\r\n3 s:\/C=US\/ST=MI\/L=Ann Arbor\/O=Internet2\/OU=InCommon\/CN=InCommon RSA Server CA\r\n   i:\/C=US\/ST=New Jersey\/L=Jersey City\/O=The USERTRUST Network\/CN=USERTrust RSA Certification Authority\r\n \r\n---\r\n<\/pre>\n<p>Yo realmente esperaba que este comando iba a fallar y darme alguna informaci\u00f3n \u00fatil que me ayudar\u00eda a entender por qu\u00e9 la conexi\u00f3n era rechazada por git. A buscar por otro lado.<\/p>\n<p>Google sugiri\u00f3 una alternativa a openssl, gnutls-cli, que est\u00e1 basada en la librer\u00eda gnutls que algunas aplicaciones usan en lugar de la librer\u00eda openssl.<\/p>\n<p>Como esa herramienta no est\u00e1 disponible por defecto, hay que instalarla.<\/p>\n<p><code>sudo apt-get install gnutls-bin<\/code><\/p>\n<h1>Distracciones<\/h1>\n<p>\u00bfYa nos vamos? La dulce Jenny me trajo a la realidad que hab\u00edamos quedado en encontrarnos con unos amigos para cenar a las 7.30PM. \u00a0No s\u00e9 qu\u00e9 voy a hacer, le dije, tengo un problema y no s\u00e9 c\u00f3mo solucionarlo. \u00a0Vamos a comer y rel\u00e1jate, ya ver\u00e1s que lo solucionas como todos los otros problemas a las 3AM. \u00a0Sonre\u00ed, era una broma interna&#8230; con demasiada frecuencia\u00a0me acuesto con problemas irresueltos, s\u00f3lo para despertarme en medio de la noche con la soluci\u00f3n. \u00a0Fue un lindo tiempo, amigos de d\u00e9cadas, juntos despu\u00e9s de a\u00f1os&#8230; comida peruana&#8230; todo contribuy\u00f3 a una linda y relajante noche. \u00a0Lo cual no impidi\u00f3 que durante la cena y conversaci\u00f3n de sobremesa haga un par de b\u00fasquedas en google sobre el problema en cuesti\u00f3n.<\/p>\n<p>Casi al final de la cena, recib\u00ed un mensaje de nuestro hijo menor que necesitaba que lo recojan de la escuela. \u00a0Acababa de regresar de Orlando, FL, donde fue con el coro de la escuela a participar en una competencia en Disney, y donde ellos ganaron el oro!!!. \u00a0Afortunadamente, nuestra otra hija pudo recogerlo, y cuando llegamos le di un gran abrazo. \u00a0Lo extra\u00f1\u00e9 mucho, la casa se siente demasiado\u00a0silenciosa sin \u00e9l.<\/p>\n<h1>Ahora s\u00ed<\/h1>\n<p>Okay, ya todos est\u00e1n dormidos, veamos qu\u00e9 podemos hacer con este problemita.<\/p>\n<p><code>gnutls-cli -p 443\u00a0xxx.xxx.xxx<\/code><\/p>\n<p>ohhhh, el mismo error&#8230; qu\u00e9 coincidencia. \u00a0Investigu\u00e9 y encontr\u00e9 que el git para ubuntu est\u00e1 compilado con la librer\u00eda gnutls en lugar de openssl en casi todos los otros casos!!!! De raz\u00f3n hab\u00eda una diferencia en el comportamiento de esta m\u00e1quina. \u00a0grrrrrrr&#8230; eso clarificaba por qu\u00e9 fallaba con git en esta computadora y no en las otras, pero no me daba ninguna pista del por qu\u00e9 fallaba.<\/p>\n<h1>gnutls vs openssl<\/h1>\n<p>Comenc\u00e9 a leer sobre la diferencia entre estas dos librer\u00edas. \u00a0Son b\u00e1sicamente dos implementaciones de la misma funcionalidad. \u00a0Pero entre b\u00fasqueda y pesta\u00f1eo\u00a0encontr\u00e9 que openssl es perdonador con respecto al orden los certificados, en cambio gnutls no. \u00a0Hmmm, d\u00e9jame mirar.<\/p>\n<h1>Eureka<\/h1>\n<p>Efectivamente, esta informaci\u00f3n hab\u00eda estado disponible desde muy temprano, pero, al no saber que openssl y gnutls tienen diferente comportamiento, ignor\u00e9 este detalle tan valioso. \u00a0Es cierto que todos los certificados estaban en la cadena, y openssl, simplemente se asegura\u00a0que todos los\u00a0certificados est\u00e9n presentes. \u00a0Por el contrario, gnutls, mira el primer certificado de la cadena, y se asegura que corresponda al nombre del sitio. \u00a0Luego, mira al segundo certificado y se asegura que corresponda con la autoridad del primero. \u00a0Si no corresponde, vomita. \u00a0Luego mira al tercero y se asegura que corresponda con la autoridad del segundo&#8230; y as\u00ed por el estilo.<\/p>\n<p>En otras palabras, la librer\u00eda gnutls se asegura que la cadena de certificados efectivamente forme una cadena.\u00a0Al inspeccionar la cadena nuevamente pude ver el error. \u00a0El primer certificado era correcto, pero los tres siguientes estaban en orden reverso&#8230; es decir, 0321, en lugar de 0123.<br \/>\nEl servidor originalmente dec\u00eda:<\/p>\n<pre>XXX.XXX.XXX =&gt; InCommon RSA Server CA\r\nAddTrust External CA Root =&gt; AddTrust External CA Root\r\nUSERTrust RSA Certification Authority =&gt; AddTrust External CA Root\r\nInCommon RSA Server CA =&gt; USERTrust RSA Certification Authority<\/pre>\n<p>Pero deb\u00eda decir:<\/p>\n<pre>XXX.XXX.XXX =&gt; InCommon RSA Server CA\r\nInCommon RSA Server CA =&gt; USERTrust RSA Certification Authority\r\nUSERTrust RSA Certification Authority =&gt; AddTrust External CA Root\r\nAddTrust External CA Root =&gt; AddTrust External CA Root<\/pre>\n<h1>Malinformado<\/h1>\n<p>Todo el tiempo hab\u00eda estado tratando de solucionar el problema equivocado. \u00a0El hecho de que todas las dem\u00e1s computadoras se pod\u00edan conectar y un programa de esta computadora no lo pod\u00eda hacer me llev\u00f3 a asumir que este programa estaba mal (instalado o configurado). \u00a0Sin embargo, el error nunca estuvo en este programa, el error estaba en el servidor, que estaba sirviendo los certificados en orden incorrecto, y este programa era el \u00fanico que estaba bien escrito, y, por lo tanto, imped\u00eda que me conecte.<\/p>\n<p>Editar el certificado en formato crt no es nada dif\u00edcil, cualquier editor de texto lo puede hacer. Es b\u00e1sicamente un archivo de texto y se ve algo as\u00ed&#8230;<\/p>\n<pre>-----BEGIN CERTIFICATE-----\r\nMIIFxTCCBFWgAwIBAgIRALPs2ZL4g5aeNMpqd5hBfVIwDQYJKoZIhvcNAQELBQAw\r\ndjELMdkGA0UEBhMCVVMxCzAJBgNVBAgTAk1JMRIwEAYDVQQHEwlBbm4gQXJib3Ix\r\n...==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIF+TCCA+GgAwIBAgIQRyDQ+oVGcn4XoWQCkYRjdDANBgkqhkiG9w0BAQwFADCB\r\niDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\r\n...\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIFdzCCBF+gAwIBAgIQE+oocFv0740MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv\r\nMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk\r\n...=\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIENjCCAx6gAwIBAgIBATANBgkqhqiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\r\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\r\n...=\r\n-----END CERTIFICATE-----\r\n<\/pre>\n<p>Mov\u00ed el cuarto certificado a la segunda posici\u00f3n, y el de la segunda al cuarto. \u00a0Reempec\u00e9 el sitio y voil\u00e1, todo funcion\u00f3 a la perfecci\u00f3n.<\/p>\n<h1>Moraleja<\/h1>\n<p>La soluci\u00f3n estuvo a mi vista desde casi el primer momento&#8230; el error dec\u00eda que era un problema del certificado, pero el hecho que todo lo dem\u00e1s funcionaba me condujo\u00a0a una inferencia equivocada. \u00a0Nunca asumas nada, verifica todo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El problema Tratando de clonar un repositorio desde una computadora con Ubuntu, me encontr\u00e9 con un error que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":9118,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-9113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cuando el orden de los factores afecta el producto (Certificados) - El blog de Felipe<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cuando el orden de los factores afecta el producto (Certificados) - El blog de Felipe\" \/>\n<meta property=\"og:description\" content=\"El problema Tratando de clonar un repositorio desde una computadora con Ubuntu, me encontr\u00e9 con un error que [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/\" \/>\n<meta property=\"og:site_name\" content=\"El blog de Felipe\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-26T19:15:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-04-26T23:52:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2016\/04\/HTTPS_icon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"AI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"AI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/\"},\"author\":{\"name\":\"AI\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/person\\\/e32bfb69f0dcbed869e838474a34d240\"},\"headline\":\"Cuando el orden de los factores afecta el producto (Certificados)\",\"datePublished\":\"2016-04-26T19:15:10+00:00\",\"dateModified\":\"2016-04-26T23:52:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/\"},\"wordCount\":1548,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2016\\\/04\\\/HTTPS_icon.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/\",\"name\":\"Cuando el orden de los factores afecta el producto (Certificados) - El blog de Felipe\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2016\\\/04\\\/HTTPS_icon.png\",\"datePublished\":\"2016-04-26T19:15:10+00:00\",\"dateModified\":\"2016-04-26T23:52:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2016\\\/04\\\/HTTPS_icon.png\",\"contentUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2016\\\/04\\\/HTTPS_icon.png\",\"width\":800,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2016\\\/04\\\/26\\\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cuando el orden de los factores afecta el producto (Certificados)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#website\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/\",\"name\":\"El blog de Felipe\",\"description\":\"De la abundancia del coraz\u00f3n...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#organization\",\"name\":\"El blog de Felipe\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2019\\\/11\\\/cropped-caricatura_felipe.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2019\\\/11\\\/cropped-caricatura_felipe.jpg\",\"width\":1360,\"height\":598,\"caption\":\"El blog de Felipe\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/person\\\/e32bfb69f0dcbed869e838474a34d240\",\"name\":\"AI\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g\",\"caption\":\"AI\"},\"description\":\"Este art\u00edculo ha sido seleccionado y parcialmente escrito e ilustrado por Inteligencia Artificial (AI) basado en noticias disponibles.\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/author\\\/ai\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cuando el orden de los factores afecta el producto (Certificados) - El blog de Felipe","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/","og_locale":"en_US","og_type":"article","og_title":"Cuando el orden de los factores afecta el producto (Certificados) - El blog de Felipe","og_description":"El problema Tratando de clonar un repositorio desde una computadora con Ubuntu, me encontr\u00e9 con un error que [&hellip;]","og_url":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/","og_site_name":"El blog de Felipe","article_published_time":"2016-04-26T19:15:10+00:00","article_modified_time":"2016-04-26T23:52:03+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2016\/04\/HTTPS_icon.png","type":"image\/png"}],"author":"AI","twitter_card":"summary_large_image","twitter_misc":{"Written by":"AI","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#article","isPartOf":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/"},"author":{"name":"AI","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/person\/e32bfb69f0dcbed869e838474a34d240"},"headline":"Cuando el orden de los factores afecta el producto (Certificados)","datePublished":"2016-04-26T19:15:10+00:00","dateModified":"2016-04-26T23:52:03+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/"},"wordCount":1548,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#organization"},"image":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2016\/04\/HTTPS_icon.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/","url":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/","name":"Cuando el orden de los factores afecta el producto (Certificados) - El blog de Felipe","isPartOf":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#primaryimage"},"image":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2016\/04\/HTTPS_icon.png","datePublished":"2016-04-26T19:15:10+00:00","dateModified":"2016-04-26T23:52:03+00:00","breadcrumb":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#primaryimage","url":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2016\/04\/HTTPS_icon.png","contentUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2016\/04\/HTTPS_icon.png","width":800,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2016\/04\/26\/cuando-el-orden-de-los-factores-afecta-el-producto-certificados\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.pacasmayo.com\/felipe\/"},{"@type":"ListItem","position":2,"name":"Cuando el orden de los factores afecta el producto (Certificados)"}]},{"@type":"WebSite","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#website","url":"https:\/\/blogs.pacasmayo.com\/felipe\/","name":"El blog de Felipe","description":"De la abundancia del coraz\u00f3n...","publisher":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.pacasmayo.com\/felipe\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#organization","name":"El blog de Felipe","url":"https:\/\/blogs.pacasmayo.com\/felipe\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2019\/11\/cropped-caricatura_felipe.jpg","contentUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2019\/11\/cropped-caricatura_felipe.jpg","width":1360,"height":598,"caption":"El blog de Felipe"},"image":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/person\/e32bfb69f0dcbed869e838474a34d240","name":"AI","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g","caption":"AI"},"description":"Este art\u00edculo ha sido seleccionado y parcialmente escrito e ilustrado por Inteligencia Artificial (AI) basado en noticias disponibles.","url":"https:\/\/blogs.pacasmayo.com\/felipe\/author\/ai\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts\/9113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/comments?post=9113"}],"version-history":[{"count":0,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts\/9113\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/media\/9118"}],"wp:attachment":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/media?parent=9113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/categories?post=9113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/tags?post=9113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}