{"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\/pt\/certificate-pinning-couchbase-mobile-ios-app\/","title":{"rendered":"Fixa\u00e7\u00e3o de certificados em seu aplicativo Couchbase Mobile iOS"},"content":{"rendered":"<p>A comunica\u00e7\u00e3o entre o Couchbase Lite e o Sync Gateway \u00e9 criptografada e protegida usando <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\">SSL\/TLS<\/a>. O protocolo SSL\/TLS se baseia em uma infraestrutura de chave p\u00fablica (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Public_key_infrastructure\">PKI<\/a>) usando um mecanismo <a href=\"https:\/\/www.ietf.org\/rfc\/rfc5280.txt\">Certificado X.509<\/a> para estabelecer a identidade do servidor do Sync Gateway. Normalmente, o certificado \u00e9 emitido\/assinado por uma Autoridade de Certifica\u00e7\u00e3o confi\u00e1vel e \u00e9 instalado no Sync Gateway. Em um ambiente de desenvolvimento, esse certificado pode ser autoassinado.<br \/>\nSe a confiabilidade do certificado for comprometida de alguma forma ou se voc\u00ea estiver usando um certificado autoassinado, a identidade do servidor n\u00e3o poder\u00e1 ser estabelecida de forma confi\u00e1vel e n\u00e3o haver\u00e1 garantias de confidencialidade na comunica\u00e7\u00e3o entre o cliente e o servidor.<br \/>\nPara aliviar esses problemas, o Couchbase Lite oferece suporte \u00e0 fixa\u00e7\u00e3o de certificados. A fixa\u00e7\u00e3o de certificados \u00e9 uma t\u00e9cnica que pode ser usada por aplicativos para \"fixar\" um host em seu certificado\/chave p\u00fablica. Em geral, o certificado \u00e9 entregue ao cliente por um canal fora de banda e empacotado com o cliente. Ao fixar o certificado, o aplicativo cliente verificador n\u00e3o precisa mais depender de uma terceira parte confi\u00e1vel para verificar a assinatura, e essa t\u00e9cnica tamb\u00e9m funciona com certificados autoassinados.<br \/>\nEsta postagem abordar\u00e1 como fixar certificados em seu aplicativo cliente iOS Coucbase Lite.<\/p>\n<p><!--more--><\/p>\n<p><a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/couchbase-lite\/index.html\">Vers\u00e3o 1.4<\/a>\u00a0do Couchbase Lite suporta apenas a fixa\u00e7\u00e3o de certificados no iOS. O pr\u00f3ximo <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/whatsnew.html\">Vers\u00e3o 2.0<\/a> (agora no Developer Preview) oferecer\u00e1 suporte \u00e0 fixa\u00e7\u00e3o em todas as plataformas m\u00f3veis compat\u00edveis. Os trechos de c\u00f3digo discutidos nesta postagem se aplicam ao <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/couchbase-lite\/index.html\">vers\u00e3o de produ\u00e7\u00e3o atual<\/a> do Couchbase Lite. Fique atento a uma futura postagem no blog sobre a fixa\u00e7\u00e3o de certificados na vers\u00e3o 2.0.<\/p>\n<h2 id=\"theproblem\">O problema<\/h2>\n<p>A comunica\u00e7\u00e3o entre o Couchbase Lite e o Sync Gateway \u00e9 criptografada usando <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\">SSL\/TLS<\/a>.<\/p>\n<p>Em um n\u00edvel muito alto, o protocolo TLS funciona da seguinte forma.<br \/>\nUm certificado X.509 contendo a chave p\u00fablica e a identidade do servidor \u00e9 instalado no Sync Gateway. Esse certificado de chave p\u00fablica pode ser assinado por uma Autoridade de Certifica\u00e7\u00e3o de terceiros confi\u00e1vel ou pode ser autoassinado, sendo este \u00faltimo o caso mais comum em ambientes de desenvolvimento.<br \/>\nDurante o estabelecimento da conex\u00e3o, o aplicativo cliente que executa o Couchbase Lite verifica a identidade do Sync Gateway usando o certificado do servidor. O Couchbase Lite usa o certificado raiz da CA confi\u00e1vel para validar o certificado. Uma vez verificado, o cliente prossegue com a troca de chaves secretas. O segredo compartilhado \u00e9 ent\u00e3o usado para criptografar a comunica\u00e7\u00e3o entre o cliente e o 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 o <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\">RFC<\/a> para obter informa\u00e7\u00f5es espec\u00edficas sobre o protocolo SSL\/TLS.<\/p>\n<p>H\u00e1 alguns problemas com essa abordagem :-.<br \/>\n- Embora, na maioria das circunst\u00e2ncias, seja razo\u00e1vel confiar na confiabilidade da CA, \u00e9 poss\u00edvel que a pr\u00f3pria CA seja comprometida. Se isso acontecer, n\u00e3o haver\u00e1 uma maneira confi\u00e1vel de autenticar o Sync Gateway porque a CA usada para a verifica\u00e7\u00e3o em si n\u00e3o \u00e9 confi\u00e1vel!<br \/>\n- A comunica\u00e7\u00e3o cliente-servidor pode estar sujeita a um ataque MiTM (Man-in-the-Middle), por meio do qual um servidor desonesto que se faz passar por Sync Gateway pode emitir um certificado falso representando o Sync Gateway, assinado por uma CA falsa. Se, de alguma forma, o cliente for induzido a incluir o certificado da CA falsa em seu armazenamento de autoridade de certifica\u00e7\u00e3o raiz confi\u00e1vel, o cliente confiar\u00e1 no certificado falso assinado pela CA falsa. Isso far\u00e1 com que o cliente se comunique com um Sync Gateway falso.<br \/>\n- Se voc\u00ea estiver usando certificados autoassinados em seu ambiente de desenvolvimento, n\u00e3o h\u00e1 como o cliente validar de forma confi\u00e1vel a identidade do servidor.<\/p>\n<h2 id=\"asolution-certificatepinning\">Uma solu\u00e7\u00e3o - Fixa\u00e7\u00e3o de certificados<\/h2>\n<p>Uma maneira comum de lidar com os problemas acima \u00e9 \"fixar\" o servidor Sync Gateway em seu certificado\/chave p\u00fablica. Nessa t\u00e9cnica, o Couchbase Lite \u00e9 pr\u00e9-configurado com o certificado confi\u00e1vel do Sync Gateway. Portanto, durante o estabelecimento da conex\u00e3o, o Couchbase Lite usa esse certificado pr\u00e9-configurado para verificar a identidade do servidor. Isso elimina a depend\u00eancia de uma CA externa de terceiros para a verifica\u00e7\u00e3o do certificado.<br \/>\nO <a href=\"https:\/\/www.owasp.org\/index.php\/Certificate_and_Public_Key_Pinning\">Site da OWASP<\/a> \u00e9 uma boa refer\u00eancia sobre a fixa\u00e7\u00e3o de certificados.<\/p>\n<h2 id=\"caveat\">Advert\u00eancia<\/h2>\n<p>\u00c9 importante observar que, como os aplicativos s\u00e3o empacotados com o certificado, toda vez que o certificado expira, o aplicativo precisa ser atualizado com o novo certificado. Isso pode ser um pouco mais desafiador em ambientes m\u00f3veis, nos quais os lan\u00e7amentos de aplicativos podem exigir revis\u00f5es da App Store e o \u00f4nus de atualizar os aplicativos recai sobre os usu\u00e1rios. Portanto, esteja ciente de quando os certificados expiram e fa\u00e7a planos apropriados para publicar os aplicativos com os novos certificados.<\/p>\n<h2 id=\"background\">Hist\u00f3rico<\/h2>\n<p>A pilha do Couchbase Mobile inclui o <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/couchbase-lite\/index.html\">Couchbase Lite<\/a> banco de dados incorporado executado localmente em dispositivos e <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/guides\/sync-gateway\/index.html\">Gateway de sincroniza\u00e7\u00e3o<\/a> na nuvem, que normalmente \u00e9 apoiada por <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/introduction\/intro.html\">Servidor Couchbase<\/a> persistindo os dados na nuvem. O Sync Gateway lida com a replica\u00e7\u00e3o de documentos entre os dispositivos.<\/p>\n<h3 id=\"installingcertificateonthesyncgateway\">Instala\u00e7\u00e3o do certificado no Sync Gateway<\/h3>\n<p>Siga as instru\u00e7\u00f5es na se\u00e7\u00e3o <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/current\/guides\/sync-gateway\/configuring-ssl\/index.html\">Portal do desenvolvedor do Couchbase<\/a> para instalar o certificado de servidor relevante em seu Sync Gateway<\/p>\n<p>Alguns pontos a serem observados durante a gera\u00e7\u00e3o do certificado<br \/>\n- O certificado e a chave privada correspondente devem estar no formato .pem<br \/>\n- Instale os certificados em um local acess\u00edvel ao Sync Gateway<br \/>\n- Se voc\u00ea estiver gerando um certificado autoassinado, provavelmente o campo mais importante \u00e9 o <code>CommonName<\/code>. Deve ser o FQDN de seu Sync Gateway. Se o seu Sync Gateway n\u00e3o tiver um, voc\u00ea dever\u00e1 especificar use <code>localhost<\/code> para localhost ou o endere\u00e7o IPA est\u00e1tico do seu 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 \/>\nUma vez configurado, seu gateway de sincroniza\u00e7\u00e3o deve ser acessado via https.<\/p>\n<h2 id=\"bundlingcertificateinyouriosapp\">Agrupamento de certificados em seu aplicativo iOS<\/h2>\n<ul>\n<li>Converta o certificado PEM no formato der usando o comando abaixo<\/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>Voc\u00ea pode consultar este <a href=\"https:\/\/www.sslshopper.com\/article-most-common-openssl-commands.html\">Folha de dicas sobre SSL<\/a> para obter detalhes sobre os v\u00e1rios comandos do openSSL.<\/p>\n<ul>\n<li>Abra seu arquivo .xcodeproj e arraste e solte os arquivos .der em seu poejct. Certifique-se de que voc\u00ea tenha <em>\"Copiar arquivos, se necess\u00e1rio\"<\/em> op\u00e7\u00e3o 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>Ap\u00f3s a c\u00f3pia, a estrutura de seu projeto seria algo como o seguinte<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/certadded.png\" alt=\"Certificate Added\" \/><\/li>\n<li>Fixa\u00e7\u00e3o do certificado do servidor Sync Gateway<br \/>\nIsso requer apenas algumas linhas de c\u00f3digo. O c\u00f3digo deve ser executado uma vez. Portanto, faz\u00ea-lo no ponto do c\u00f3digo em que voc\u00ea inicializa o <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/references\/couchbase-lite\/couchbase-lite\/manager\/manager\/index.html\">Gerenciador de CBL<\/a> pode ser uma boa op\u00e7\u00e3o.<\/li>\n<\/ul>\n<pre class=\"lang:swift decode:true\">\/\/ 1: Localizar o certificado no pacote de aplicativos\r\nif let pathToCert = Bundle.main.path(forResource: \"cert\", ofType: \"cer\") {\r\n    \/\/2 : Carregar o certificado\r\n    if let localCertificate:NSData = NSData(contentsOfFile: pathToCert) {\r\n        \/\/ 3: Criar um SecCertificate\r\n        let certificate = SecCertificateCreateWithData(nil, localCertificate)\r\n        \/\/4: Configure o Replicator com o certificado\r\n        CBLReplication.setAnchorCerts([certificate], onlyThese: true)\r\n    }\r\n}<\/pre>\n<p>As etapas 1 e 2 s\u00e3o autoexplicativas.<\/p>\n<p>Etapa 3: <a href=\"https:\/\/developer.apple.com\/documentation\/security\/seccertificate\">SecCertificate<\/a> \u00e9 um objeto do Core Foundation que representa um certificado X.509<\/p>\n<p>Etapa 4: O Couchbase Replicator deve ser configurado com o certificado do Sync Gateway usando o comando <code>setAnchorCerts<\/code> no m\u00e9todo <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/references\/couchbase-lite\/couchbase-lite\/replication\/replication\/index.html\">CBLReplica\u00e7\u00e3o<\/a> objeto. Ao especificar <code>somenteEstes<\/code> como <code>verdadeiro<\/code>Se voc\u00ea definir o certificado como \"certificado de seguran\u00e7a\", estar\u00e1 dizendo ao Replicator que ele deve confiar apenas nesse certificado. Se voc\u00ea o definir como <code>falso<\/code>Se voc\u00ea estiver adicionando o certificado do Sync Gateway \u00e0 lista de certificados raiz integrados confi\u00e1veis pela plataforma iOS.<\/p>\n<p>\u00c9 isso a\u00ed! Com apenas algumas etapas, voc\u00ea pode ativar a fixa\u00e7\u00e3o de certificados em seu aplicativo iOS.<\/p>\n<h2 id=\"whatnext\">O que vem a seguir<\/h2>\n<p>Como voc\u00ea deve ter percebido nesta publica\u00e7\u00e3o, a fixa\u00e7\u00e3o de certificados \u00e9 muito f\u00e1cil de configurar em seus aplicativos iOS. Embora o suporte na V1.4 seja limitado ao iOS, fique atento \u00e0 pr\u00f3xima vers\u00e3o do <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/whatsnew.html\">Vers\u00e3o 2.0<\/a> (agora no Developer Preview), que tamb\u00e9m incluir\u00e1 suporte em outras plataformas m\u00f3veis.<br \/>\nSe tiver d\u00favidas ou coment\u00e1rios, deixe um coment\u00e1rio abaixo ou sinta-se \u00e0 vontade para entrar em contato comigo pelo Twitter @rajagp ou por e-mail\u00a0<a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>.  O\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">F\u00f3runs do Couchbase<\/a> s\u00e3o outro bom lugar para entrar em contato com perguntas.<\/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 v26.0 (Yoast SEO v26.0) - 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\/pt\/certificate-pinning-couchbase-mobile-ios-app\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\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\/pt\/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\":\"pt-BR\",\"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\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\/pt\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Certificate Pinning in iOS Apps","description":"O protocolo SSL\/TLS depende de um mecanismo de PKI que tem algumas desvantagens, e a fixa\u00e7\u00e3o de certificados \u00e9 uma t\u00e9cnica usada pelos aplicativos para atenuar esse problema.","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\/pt\/certificate-pinning-couchbase-mobile-ios-app\/","og_locale":"pt_BR","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\/pt\/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":"pt-BR","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":"O protocolo SSL\/TLS depende de um mecanismo de PKI que tem algumas desvantagens, e a fixa\u00e7\u00e3o de certificados \u00e9 uma t\u00e9cnica usada pelos aplicativos para atenuar esse problema.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/certificate-pinning-couchbase-mobile-ios-app\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@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":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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, Diretora S\u00eanior, Gerenciamento de Produtos","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 diretora s\u00eanior de gerenciamento de produtos da Couchbase, respons\u00e1vel pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente h\u00e1 mais de 20 anos em v\u00e1rios cargos t\u00e9cnicos e de lideran\u00e7a de produtos, com mais de 10 anos de foco em tecnologias m\u00f3veis. Como delegada de padr\u00f5es de IPTV da TISPAN, ela foi uma das principais colaboradoras das especifica\u00e7\u00f5es de padr\u00f5es de IPTV. Ela tem 22 patentes nas \u00e1reas de rede e seguran\u00e7a de plataforma.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/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 \u00e9 diretora s\u00eanior de gerenciamento de produtos da Couchbase, respons\u00e1vel pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente h\u00e1 mais de 20 anos em v\u00e1rios cargos t\u00e9cnicos e de lideran\u00e7a de produtos, com mais de 10 anos de foco em tecnologias m\u00f3veis. Como delegada de padr\u00f5es de IPTV da TISPAN, ela foi uma das principais colaboradoras das especifica\u00e7\u00f5es de padr\u00f5es de IPTV. Ela tem 22 patentes nas \u00e1reas de rede e seguran\u00e7a de plataforma."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=3758"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3758\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/3755"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=3758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=3758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=3758"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=3758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}