{"id":3758,"date":"2017-06-21T10:00:37","date_gmt":"2017-06-21T17:00:37","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3758"},"modified":"2025-06-13T23:06:18","modified_gmt":"2025-06-14T06:06:18","slug":"certificate-pinning-couchbase-mobile-ios-app","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/certificate-pinning-couchbase-mobile-ios-app\/","title":{"rendered":"Fijaci\u00f3n de certificados en su aplicaci\u00f3n m\u00f3vil Couchbase para iOS"},"content":{"rendered":"<p>La comunicaci\u00f3n entre Couchbase Lite y Sync Gateway est\u00e1 encriptada y asegurada usando <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\">SSL\/TLS<\/a>. El protocolo SSL\/TLS se basa en una infraestructura de clave p\u00fablica (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Public_key_infrastructure\">PKI<\/a>) mediante un mecanismo <a href=\"https:\/\/www.ietf.org\/rfc\/rfc5280.txt\">Certificado X.509<\/a> para establecer la identidad del servidor Sync Gateway. El certificado suele emitirlo\/firmarlo una autoridad de certificaci\u00f3n de confianza y se instala en Sync Gateway. En un entorno de desarrollo, este certificado puede ser autofirmado.<br \/>\nSi la fiabilidad del certificado se ve comprometida de alg\u00fan modo o si se utiliza un certificado autofirmado, la identidad del servidor no podr\u00e1 establecerse de forma fiable y no habr\u00e1 garant\u00edas de confidencialidad en la comunicaci\u00f3n entre el cliente y el servidor.<br \/>\nPara aliviar estos problemas, Couchbase Lite soporta certificate pinning. La fijaci\u00f3n de certificados es una t\u00e9cnica que puede ser usada por aplicaciones para \"fijar\" un host a su certificado\/clave p\u00fablica. El certificado es t\u00edpicamente entregado al cliente por un canal fuera de banda y empaquetado con el cliente. Al anclar el certificado, la aplicaci\u00f3n cliente de verificaci\u00f3n ya no necesita depender de una tercera parte de confianza para verificar la firma y esta t\u00e9cnica tambi\u00e9n funcionar\u00e1 con certificados autofirmados.<br \/>\nEste post discutir\u00e1 c\u00f3mo fijar certificados dentro de su aplicaci\u00f3n cliente Coucbase Lite iOS.<\/p>\n<p><!--more--><\/p>\n<p><a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/couchbase-lite\/index.html\">Versi\u00f3n 1.4<\/a>\u00a0de Couchbase Lite s\u00f3lo soporta la fijaci\u00f3n de certificados en iOS. El pr\u00f3ximo <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/whatsnew.html\">Versi\u00f3n 2.0<\/a> (ahora en Developer Preview) soportar\u00e1 la fijaci\u00f3n en todas las plataformas m\u00f3viles soportadas. Los fragmentos de c\u00f3digo que se tratan en este post se aplican a las plataformas <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/couchbase-lite\/index.html\">versi\u00f3n de producci\u00f3n actual<\/a> de Couchbase Lite. Est\u00e9 atento a una futura entrada del blog sobre la fijaci\u00f3n de certificados en la versi\u00f3n 2.0.<\/p>\n<h2 id=\"theproblem\">El problema<\/h2>\n<p>La comunicaci\u00f3n entre Couchbase Lite y Sync Gateway se encripta utilizando <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\">SSL\/TLS<\/a>.<\/p>\n<p>A muy alto nivel, el protocolo TLS funciona de la siguiente manera.<br \/>\nEn la puerta de enlace de sincronizaci\u00f3n se instala un certificado X.509 que contiene la clave p\u00fablica y la identidad del servidor. Este certificado de clave p\u00fablica puede estar firmado por una autoridad de certificaci\u00f3n externa de confianza o puede estar autofirmado, lo que suele ser el caso en entornos de desarrollo.<br \/>\nDurante el establecimiento de la conexi\u00f3n, la aplicaci\u00f3n cliente que ejecuta Couchbase Lite verifica la identidad de la puerta de enlace de sincronizaci\u00f3n utilizando el certificado del servidor. Couchbase Lite usa el certificado ra\u00edz de la CA de confianza para validar el certificado. Una vez verificado, el cliente procede con el intercambio de clave secreta. El secreto compartido se utiliza entonces para cifrar la comunicaci\u00f3n entre el cliente y Sync Gateway.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/tls.png\" alt=\"Basic TLS Exchange\" \/><br \/>\nConsulte el <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\">RFC<\/a> para obtener informaci\u00f3n espec\u00edfica sobre el protocolo SSL\/TLS.<\/p>\n<p>Este enfoque plantea algunos problemas :-<br \/>\n- Aunque en la mayor\u00eda de las circunstancias es razonable confiar en la fiabilidad de la CA, es posible que la propia CA se vea comprometida. Si esto ocurre, no hay forma fiable de autenticar la puerta de enlace de sincronizaci\u00f3n porque la propia CA utilizada para la verificaci\u00f3n no es de confianza.<br \/>\n- La comunicaci\u00f3n cliente-servidor puede ser objeto de un ataque de intermediario (Man-in-the-Middle, MiTM) por el que un servidor fraudulento que se haga pasar por Sync Gateway puede emitir un certificado falso que represente a Sync Gateway, firmado por una CA falsa. Si el cliente es enga\u00f1ado de alg\u00fan modo para que incluya el certificado de la CA falsa en su almac\u00e9n de Autoridades de Certificaci\u00f3n ra\u00edz de confianza, entonces el cliente confiar\u00e1 en el certificado falso firmado por la CA falsa. El resultado ser\u00e1 que el cliente se comunicar\u00e1 con una puerta de enlace de sincronizaci\u00f3n falsa.<br \/>\n- Si utiliza certificados autofirmados en su entorno de desarrollo, no hay forma de que el cliente valide de forma fiable la identidad del servidor.<\/p>\n<h2 id=\"asolution-certificatepinning\">Una soluci\u00f3n: la fijaci\u00f3n de certificados<\/h2>\n<p>Una forma com\u00fan de manejar los problemas anteriores es \"fijar\" el servidor Sync Gateway a su certificado\/clave p\u00fablica. En esta t\u00e9cnica, Couchbase Lite est\u00e1 preconfigurado con el certificado de confianza de Sync Gateway. As\u00ed, durante el establecimiento de la conexi\u00f3n, Couchbase Lite utiliza este certificado preconfigurado para verificar la identidad del servidor. Esto elimina la dependencia de una tercera CA externa para la verificaci\u00f3n del certificado.<br \/>\nEn <a href=\"https:\/\/www.owasp.org\/index.php\/Certificate_and_Public_Key_Pinning\">Sitio web de OWASP<\/a> es una buena referencia sobre la fijaci\u00f3n de certificados.<\/p>\n<h2 id=\"caveat\">Advertencia:<\/h2>\n<p>Es importante tener en cuenta que, dado que las aplicaciones se incluyen con el certificado, cada vez que este caduque habr\u00e1 que actualizar la aplicaci\u00f3n con el nuevo certificado. Esto puede ser un poco m\u00e1s dif\u00edcil en entornos m\u00f3viles, donde la publicaci\u00f3n de aplicaciones puede requerir revisiones de la App Store y la responsabilidad de actualizar las aplicaciones recae en los usuarios. As\u00ed que est\u00e9 atento a cu\u00e1ndo caducan los certificados y haga los planes adecuados para publicar las aplicaciones con los nuevos certificados.<\/p>\n<h2 id=\"background\">Fondo<\/h2>\n<p>La pila de Couchbase Mobile incluye <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/couchbase-lite\/index.html\">Couchbase Lite<\/a> base de datos integrada que se ejecuta localmente en los dispositivos y <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/sync-gateway\/index.html\">Pasarela de sincronizaci\u00f3n<\/a> en la nube que suele estar respaldada por <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/introduction\/intro.html\">Servidor Couchbase<\/a> persistencia de los datos en la nube. Sync Gateway se encarga de replicar los documentos entre los dispositivos.<\/p>\n<h3 id=\"installingcertificateonthesyncgateway\">Instalaci\u00f3n del certificado en la puerta de enlace de sincronizaci\u00f3n<\/h3>\n<p>Siga las instrucciones del <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/current\/guides\/sync-gateway\/configuring-ssl\/index.html\">Portal para desarrolladores de Couchbase<\/a> para instalar el certificado de servidor correspondiente en su Sync Gateway<\/p>\n<p>Un par de puntos a tener en cuenta durante la generaci\u00f3n del certificado:-<br \/>\n- El certificado y la clave privada correspondiente deben estar en formato .pem<br \/>\n- Instale los certificados en un lugar accesible para Sync Gateway.<br \/>\n- Si est\u00e1 generando un certificado autofirmado, probablemente el campo m\u00e1s importante es el <code>Nombre com\u00fan<\/code>. Debe ser el FQDN de su Sync Gateway. Si su Sync Gateway no tiene uno, debe especificar el uso de <code>localhost<\/code> para localhost o la direcci\u00f3n IPA est\u00e1tica de su Sync Gateway.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/selfsignedcert.png\" alt=\"self signed certificate\" width=\"608\" height=\"528\" \/><br \/>\nUna vez configurada, su pasarela de sincronizaci\u00f3n deber\u00eda ser accesible a trav\u00e9s de https.<\/p>\n<h2 id=\"bundlingcertificateinyouriosapp\">Integraci\u00f3n de certificados en su aplicaci\u00f3n iOS<\/h2>\n<ul>\n<li>Convierta el certificado PEM en formato der utilizando el siguiente comando<\/li>\n<\/ul>\n<pre class=\"lang:batch decode:true\">openssl x509 -inform PEM -in cert.pem -outform DER -out cert.cer<\/pre>\n<p>Puede consultar este <a href=\"https:\/\/www.sslshopper.com\/article-most-common-openssl-commands.html\">Hoja de trucos SSL<\/a> para m\u00e1s detalles sobre los distintos comandos de openSSL.<\/p>\n<ul>\n<li>Abra su archivo .xcodeproj y arrastre y suelte los archivos .der en su poejct. Aseg\u00farese de que tiene <em>\"Copiar archivos si es necesario\"<\/em> opci\u00f3n marcada<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/copycert.png\" alt=\"Copy files into xcode\" width=\"603\" height=\"354\" \/><\/li>\n<li>Una vez copiado, la estructura de su proyecto ser\u00eda algo as\u00ed<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/certadded.png\" alt=\"Certificate Added\" \/><\/li>\n<li>Fijaci\u00f3n del certificado del servidor Sync Gateway<br \/>\nEsto s\u00f3lo requiere unas pocas l\u00edneas de c\u00f3digo. El c\u00f3digo debe ejecutarse una vez. As\u00ed que hacerlo en el punto en el c\u00f3digo donde se inicializa el <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/references\/couchbase-lite\/couchbase-lite\/manager\/manager\/index.html\">CBLManager<\/a> puede ser una buena opci\u00f3n.<\/li>\n<\/ul>\n<pre class=\"lang:swift decode:true\">\/\/ 1: Locate the certificate in the app bundle\r\nif let pathToCert = Bundle.main.path(forResource: \"cert\", ofType: \"cer\") {\r\n    \/\/2 : Load the certificate\r\n    if let localCertificate:NSData = NSData(contentsOfFile: pathToCert) {\r\n        \/\/ 3: Create a SecCertificate\r\n        let certificate = SecCertificateCreateWithData(nil, localCertificate)\r\n        \/\/4: Configure the Replicator with the certificate\r\n        CBLReplication.setAnchorCerts([certificate], onlyThese: true)\r\n    }\r\n}<\/pre>\n<p>Los pasos 1 y 2 se explican por s\u00ed solos.<\/p>\n<p>Paso 3: <a href=\"https:\/\/developer.apple.com\/documentation\/security\/seccertificate\">SecCertificado<\/a> es un objeto de Core Foundation que representa un certificado X.509<\/p>\n<p>Paso 4: El replicador de Couchbase debe configurarse con el certificado de Sync Gateway mediante el comando <code>setAnchorCerts<\/code> en el <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/references\/couchbase-lite\/couchbase-lite\/replication\/replication\/index.html\">CBLReplicaci\u00f3n<\/a> objeto. Especificando <code>s\u00f3loEstos<\/code> como <code>verdadero<\/code>le est\u00e1 diciendo a la Replicadora que s\u00f3lo debe confiar en este certificado. Si lo establece como <code>falso<\/code>est\u00e1 a\u00f1adiendo el certificado de Sync Gateway a la lista de certificados ra\u00edz integrados en los que conf\u00eda la plataforma iOS.<\/p>\n<p>Ya est\u00e1. Con unos pocos pasos, puede habilitar la fijaci\u00f3n de certificados en su aplicaci\u00f3n iOS.<\/p>\n<h2 id=\"whatnext\">\u00bfQu\u00e9 sigue?<\/h2>\n<p>Como puede haber deducido de este post, Certificate Pinning es muy f\u00e1cil de configurar en sus aplicaciones iOS. Mientras que el apoyo en V1.4 se limita a iOS,estad atentos a la pr\u00f3xima <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/whatsnew.html\">Versi\u00f3n 2.0<\/a> (ahora en Developer Preview), que incluir\u00e1 tambi\u00e9n compatibilidad con otras plataformas m\u00f3viles.<br \/>\nSi tiene alguna pregunta o sugerencia, deje un comentario a continuaci\u00f3n o p\u00f3ngase en contacto conmigo a trav\u00e9s de Twitter @rajagp o por correo electr\u00f3nico.\u00a0<a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>.  En\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros de Couchbase<\/a> son otro buen lugar para plantear preguntas.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Communication between Couchbase Lite and Sync Gateway is encryped and secured using SSL\/TLS. The SSL\/TLS protocol relies on a Public Key Infrastructure (PKI) mechanism using a X.509 certificate to establish the Sync Gateway server\u2019s identity. The certificate is typically issued\/signed [&hellip;]<\/p>","protected":false},"author":1423,"featured_media":3755,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1821,1810,1813],"tags":[2001,2000,1536,2002,1660,9262,1658],"ppma_author":[8948],"class_list":["post-3758","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-architecture","category-couchbase-mobile","category-security","tag-certificate-authority","tag-certificate-pinning","tag-ios","tag-self-signed-certificate","tag-ssl","tag-tls-encryption","tag-x-509-certificates"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Certificate Pinning in iOS Apps<\/title>\n<meta name=\"description\" content=\"The SSL\/TLS protocol relies on a PKI mechanism that has certain drawbacks.Certificate pinning is a technique that is used by applications to alleviate this.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/certificate-pinning-couchbase-mobile-ios-app\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Certificate Pinning in your Couchbase Mobile iOS App\" \/>\n<meta property=\"og:description\" content=\"The SSL\/TLS protocol relies on a PKI mechanism that has certain drawbacks.Certificate pinning is a technique that is used by applications to alleviate this.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/certificate-pinning-couchbase-mobile-ios-app\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-21T17:00:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:06:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png\" \/>\n\t<meta property=\"og:image:width\" content=\"996\" \/>\n\t<meta property=\"og:image:height\" content=\"866\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Certificate Pinning in your Couchbase Mobile iOS App\",\"datePublished\":\"2017-06-21T17:00:37+00:00\",\"dateModified\":\"2025-06-14T06:06:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/\"},\"wordCount\":1172,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png\",\"keywords\":[\"Certificate Authority\",\"certificate pinning\",\"ios\",\"self signed certificate\",\"SSL\",\"TLS encryption\",\"x.509 certificates\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Couchbase Mobile\",\"Security\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/\",\"name\":\"Certificate Pinning in iOS Apps\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png\",\"datePublished\":\"2017-06-21T17:00:37+00:00\",\"dateModified\":\"2025-06-14T06:06:18+00:00\",\"description\":\"The SSL\/TLS protocol relies on a PKI mechanism that has certain drawbacks.Certificate pinning is a technique that is used by applications to alleviate this.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png\",\"width\":996,\"height\":866,\"caption\":\"self signed cert\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Certificate Pinning in your Couchbase Mobile iOS App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Certificate Pinning in iOS Apps","description":"The SSL\/TLS protocol relies on a PKI mechanism that has certain drawbacks.Certificate pinning is a technique that is used by applications to alleviate this.","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:\/\/www.couchbase.com\/blog\/es\/certificate-pinning-couchbase-mobile-ios-app\/","og_locale":"es_MX","og_type":"article","og_title":"Certificate Pinning in your Couchbase Mobile iOS App","og_description":"The SSL\/TLS protocol relies on a PKI mechanism that has certain drawbacks.Certificate pinning is a technique that is used by applications to alleviate this.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/certificate-pinning-couchbase-mobile-ios-app\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-06-21T17:00:37+00:00","article_modified_time":"2025-06-14T06:06:18+00:00","og_image":[{"width":996,"height":866,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Certificate Pinning in your Couchbase Mobile iOS App","datePublished":"2017-06-21T17:00:37+00:00","dateModified":"2025-06-14T06:06:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/"},"wordCount":1172,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png","keywords":["Certificate Authority","certificate pinning","ios","self signed certificate","SSL","TLS encryption","x.509 certificates"],"articleSection":["Best Practices and Tutorials","Couchbase Architecture","Couchbase Mobile","Security"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/","url":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/","name":"Certificate Pinning in iOS Apps","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png","datePublished":"2017-06-21T17:00:37+00:00","dateModified":"2025-06-14T06:06:18+00:00","description":"The SSL\/TLS protocol relies on a PKI mechanism that has certain drawbacks.Certificate pinning is a technique that is used by applications to alleviate this.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/selfsignedcert.png","width":996,"height":866,"caption":"self signed cert"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Certificate Pinning in your Couchbase Mobile iOS App"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Directora de Gesti\u00f3n de Productos","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"Priya Rajagopal es directora s\u00e9nior de gesti\u00f3n de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el per\u00edmetro. Lleva m\u00e1s de 20 a\u00f1os dedic\u00e1ndose profesionalmente al desarrollo de software en varios puestos de liderazgo t\u00e9cnico y de producto, con m\u00e1s de 10 a\u00f1os centrados en tecnolog\u00edas m\u00f3viles. Como delegada de est\u00e1ndares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de est\u00e1ndares IPTV. Tiene 22 patentes en las \u00e1reas de redes y seguridad de plataformas.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","author_category":"","last_name":"Rajagopal, Senior Director, Product Management","first_name":"Priya","job_title":"","user_url":"","description":"Priya Rajagopal es directora s\u00e9nior de gesti\u00f3n de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el per\u00edmetro. Lleva m\u00e1s de 20 a\u00f1os dedic\u00e1ndose profesionalmente al desarrollo de software en varios puestos de liderazgo t\u00e9cnico y de producto, con m\u00e1s de 10 a\u00f1os centrados en tecnolog\u00edas m\u00f3viles. Como delegada de est\u00e1ndares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de est\u00e1ndares IPTV. Tiene 22 patentes en las \u00e1reas de redes y seguridad de plataformas."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=3758"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3758\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/3755"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=3758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=3758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=3758"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=3758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}