{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","params":[],"results":{"codes":[]},"settings":""},"next":{"description":"","pages":[]},"title":"Instalando a Dito","type":"basic","slug":"instalando-a-dito","excerpt":"","body":"Para facilitar a integração da sua aplicação com a Dito, construimos algumas SDKs nas seguintes linguagens:\n\n#### Web:\n* [JavaScript](doc:javascript-sdk) SDK\n* [Ruby Gem](doc:ruby-gem) SDK\n\n\n#### Mobile:\n* [iOS](doc:ios-sdk) SDK\n* [Android](doc:android-sdk) SDK\n[block:callout]\n{\n \"type\": \"warning\",\n \"title\": \"Não encontrou a linguagem que você usa na lista acima?\",\n \"body\": \"Não se preocupe, você ainda pode usar a nossa [Rest API](doc:rest-api).\"\n}\n[/block]\n### Configurando uma VPN para integrações offline\n\nPara conectar uma fonte de dados offline como um banco de dados é necessário antes estabelecer uma conexão privada e segura com a Dito. Uma VPN é uma ferramenta que garante esse tipo de conexão. A Dito recomenda o uso da OpenVPN por ser segura gratuíta e fácil de configurar. Nos passos abaixo é explicado o passo a passo de como configurar um servidor com OpenVPN para que o acesso a fonte de dados possa se dar de forma segura.\n\n#### Passo 1: Instale a versão 2 do OpenVPN\n\nDownload aqui: https://openvpn.net/download-open-vpn\n\nSiga o passo a passo de instalação para seu sistema operacional presente no site acima.\n\n#### Passo 2: Gerando uma chave estática\n\nDigite o comando abaixo para gerar a chave secreta que será armazenada no arquivo `secret.key`. Essa chave será utilizada tanto pelo cliente quanto pelo servidor para estabelecer a conexão.\n\nNo ambiente Linux:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"openvpn --genkey --secret secret.key\\n\",\n \"language\": \"shell\"\n }\n ]\n}\n[/block]\nNo ambiente Windows:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"openvpn.exe --genkey --secret secret.key\",\n \"language\": \"powershell\",\n \"name\": null\n }\n ]\n}\n[/block]\n#### Passo 3: Gerando o arquivo de configuração do servidor\n\nSalve o arquivo abaixo no seu servidor com o nome `server.ovpn` e substitua `[generated-key]` pela chave contida no arquivo criado no passo anterior (secret.key).\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"dev tun\\nifconfig 10.8.0.1 10.8.0.2\\nsecret [inline]\\ncompress lz4\\ncipher AES-128-CBC\\nkeepalive 10 60\\nping-timer-rem\\npersist-tun\\npersist-key\\nauth-nocache\\nproto tcp-server\\n\\n<secret>\\n [generated-key]\\n</secret>\",\n \"language\": \"text\",\n \"name\": \"server.ovpn\"\n }\n ]\n}\n[/block]\nO arquivo resultante deverá ser similar ao mostrado abaixo:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"dev tun\\nifconfig 10.8.0.1 10.8.0.2\\nsecret [inline]\\ncompress lz4\\ncipher AES-128-CBC\\nkeepalive 10 60\\nping-timer-rem\\npersist-tun\\npersist-key\\nauth-nocache\\nproto tcp-server\\n\\n<secret>\\n-----BEGIN OpenVPN Fake key V1-----\\n1027a2a060da7a9e3414f16d7a7a46c7\\nae73878cf0a5fb0fd50effdd9478b6ec\\nf10c5c8f2917e7d6aeb3a2a1g5c896e7\\nc780fd99d264d285e1bcc01172066807\\n839e0f97e662934d41a2582d4d0e1067\\nc6d5dd7c21229352bdedd802eb91f793\\n6f3f244e1897a37d547e9e1f2dc83c8b\\nb477ebc226a073b5c30751f23b830465\\n99ac1ac5b823830cbee23b257f6ba99e\\na07e3beda6fe135a5e26f76478184480\\nd0128b76196bc38191b4796254e619a2\\n2c8c785aaf34b3f9ee66a1e3a8308b50\\n50953539f15c82fd7d4bb75d1a8b03e0\\n85aa5bb8a301f1c96b8f475508dd9b85\\nea2cf20f100d2590dbfa6b89986f74af\\n7cea8fa28f275f5949a82643cdbe505d\\n-----END OpenVPN Fake key V1-----\\n</secret>\\n\",\n \"language\": \"text\",\n \"name\": \"server.ovpn\"\n }\n ]\n}\n[/block]\n>Nota: O endereço de IP 10.8.0.1 é o endereço que irá identificar o servidor dentro da rede da VPN. \nJá o IP 10.8.0.2 é o endereço que irá identificar o cliente que está se conectando à VPN. Note que nessa configuração só é possível um cliente se conectar por vez o que não é um problema. Caso seja preciso alterar algum desses IPs é importante utilizar os mesmos IPs no passo abaixo onde explicamos o processo de criação do arquivo de configuração do cliente.\n[block:callout]\n{\n \"type\": \"warning\",\n \"body\": \"Esse será o endereço utilizado pela Dito para se conectar ao banco de dados, por isso é fortemente recomendado que esse valor não seja alterado para facilitar o processo. Caso ainda sim precise alterar algum desses IPs é melhor entrar em contato com a equipe técnica da Dito para que façamos as alterações no nosso lado e a VPN funcione corretamente.\",\n \"title\": \"É obrigatório utilizar o endereço 10.8.0.1?\"\n}\n[/block]\n#### Passo 4: Configuração de Firewall\n\nGaranta que:\n\n* A porta TCP de número 1194 esteja aberta no servidor\n* A interface virtual TUN utilizada pelo OpenVPN não esteja bloqueada. No Linux, a interface TUN provavelmente será chamada de \"tun0\" enquanto no Windows ela provavelmente se chamará algo como \"Local Area Connection n\".\n\nTenha em mente que 90% dos problemas de novos usuários de OpenVPN estão relacionados com firewall.\n\nInicie a VPN no servidor com o comando:\n`openvpn server.ovpn`\n\nÉ possível rodar o comando acima em segundo plano com a opção --daemon:\n`openvpn server.ovpn --daemon`\n\n#### Passo 5: Gerando o arquivo de configuração do cliente\n\nEsse arquivo será utilizado pela Dito para realizar a conexão na VPN criada no passo anterior. \nVocê também poderá utilizar esse arquivo para testar se a VPN está funcionando a partir de outro computador em uma rede diferente.\n\nPara criar esse arquivo copie o template abaixo para um arquivo chamado `cliente.ovpn` e em seguida substitua a sessão <secret> pelo secret gerado anteriormente e o domínio `myremote.mydomain` pelo endereço IP público ou domínio do servidor.\n\nNota: Perceba que a ordem dos IPs 10.8.0.* está trocada, pois o primeiro IP é o IP do cliente nesse caso e o segundo o IP do servidor. \n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"remote myremote.mydomain\\ndev tun\\nifconfig 10.8.0.2 10.8.0.1\\nsecret [inline]\\ncompress lz4\\ncipher AES-128-CBC\\nkeepalive 10 60\\nping-timer-rem\\npersist-tun\\npersist-key\\nauth-nocache\\nproto tcp-client\\n\\n<secret>\\n-----BEGIN OpenVPN Fake key V1-----\\n1027a2a060da7a9e3414f16d7a7a46c7\\nae73878cf0a5fb0fd50effda9478b6ec\\nf10c5c8f2917e7d6aeb3a2a195c896e7\\nc780fd99d264d285e1bcc0117c066807\\n839e0f97e662934d41a2582d4d0e1067\\nc6d5dd7c21229352bdedd802eb91f793\\n6f3f244e1897a37d547e9e1f2dc83c8b\\nb477ebc226a073b5c30751f23b830465\\n99ac1ac5b823830cbee23b257f6ba99e\\na07e3beda6fe135a5e26f76478184480\\nd0128b76196bc38191b4796254e619a2\\n2c8c785aaf34b3f9ee66a1e3a8308b50\\n50953539f15c82fd7d4bb75d1a8b03e0\\n85aa5bb8a301f1c96b8f475508dd9b85\\nea2cf20f100d2590dbfa6b89986f74af\\n7cea8fa28f275f5949a82643cdbe505d\\n-----END OpenVPN Fake key V1-----\\n</secret>\\n\\n\",\n \"language\": \"text\",\n \"name\": \"client.ovpn\"\n }\n ]\n}\n[/block]\n\nFeito isso, verifique se as configurações do firewall estão corretas e passe para o próximo passo para validar o funcionamento da rede.\n\nPara testar, do lado do cliente inicie a conexão com a VPN recém criada:\n`openvpn client.ovpn`\n\nSe tudo correr bem, uma mensagem de conexão realizada com sucesso aparecerá no terminal similar a mensagem abaixo:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"Peer Connection Initiated with [AF_INET]186.224.59.232:46770\\nInitialization Sequence Completed\",\n \"language\": \"text\"\n }\n ]\n}\n[/block]\nNesse caso, basta enviar para a Dito o arquivo `client.ovpn`.\n\n#### Windows - opção via interface gráfica\n\nA interface gráfica do OpenVPN no Windows permite utilizar um arquivo de extensão .ovpn como configuração para realizar a conexão. Para iniciar o servidor ou cliente com essa interface basta clicar com o botão direito sobre o arquivo `.ovpn` e em seguida na opção “Start OpenVPN on this config file” para iniciar o servidor ou cliente.\n[block:image]\n{\n \"images\": [\n {\n \"image\": [\n \"https://files.readme.io/ab2fb81-openvpn.jpeg\",\n \"openvpn.jpeg\",\n 373,\n 107,\n \"#e7e8e9\"\n ]\n }\n ]\n}\n[/block]\n**Referência**\n* https://openvpn.net/community-resources/static-key-mini-howto/","updates":["610a90b542467e0103c2de6c","610a90d31b8c4c0038693a29"],"order":1,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5538fe94fd56310d00b1740f","createdAt":"2015-04-23T14:15:48.062Z","user":"5538fa99545cd90d0011e593","__v":10,"githubsync":"","project":"5538fb24dc5dd00d00e1da91","version":{"version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5538fb25dc5dd00d00e1da95","5538feec27f8540d0024f00e","5547cbd3d3427d0d00cd6e2d","554a574f0b54d30d007fe0f9","55afbdbef202b12100cd9eeb","5c016f198e69b802d4385e25","5c81470b175ad6002457d9fa","5c81472e74fd5a0063420bae","5c81476b2dd69100430ea5a4"],"_id":"5538fb25dc5dd00d00e1da94","createdAt":"2015-04-23T14:01:09.040Z","project":"5538fb24dc5dd00d00e1da91","__v":9,"releaseDate":"2015-04-23T14:01:09.040Z"},"category":{"sync":{"isSync":false,"url":""},"pages":["5538fb26dc5dd00d00e1da97","5538fe94fd56310d00b1740f","554a5f2f156a480d00e29230","55b0f279b3c7f62b00e5ca83","566b23cbc7c3cd1700265dc1"],"title":"Começando a usar","slug":"começando-a-usar","order":0,"from_sync":false,"reference":false,"_id":"5538fb25dc5dd00d00e1da95","createdAt":"2015-04-23T14:01:09.535Z","version":"5538fb25dc5dd00d00e1da94","project":"5538fb24dc5dd00d00e1da91","__v":5},"parentDoc":null}