{"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* [PHP](doc:php-sdk) SDK\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":[],"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":8,"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}
Para facilitar a integração da sua aplicação com a Dito, construimos algumas SDKs nas seguintes linguagens: #### Web: * [JavaScript](doc:javascript-sdk) SDK * [Ruby Gem](doc:ruby-gem) SDK * [PHP](doc:php-sdk) SDK #### Mobile: * [iOS](doc:ios-sdk) SDK * [Android](doc:android-sdk) SDK [block:callout] { "type": "warning", "title": "Não encontrou a linguagem que você usa na lista acima?", "body": "Não se preocupe, você ainda pode usar a nossa [Rest API](doc:rest-api)." } [/block] ### Configurando uma VPN para integrações offline Para 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. #### Passo 1: Instale a versão 2 do OpenVPN Download aqui: https://openvpn.net/download-open-vpn Siga o passo a passo de instalação para seu sistema operacional presente no site acima. #### Passo 2: Gerando uma chave estática Digite 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. No ambiente Linux: [block:code] { "codes": [ { "code": "openvpn --genkey --secret secret.key\n", "language": "shell" } ] } [/block] No ambiente Windows: [block:code] { "codes": [ { "code": "openvpn.exe --genkey --secret secret.key", "language": "powershell", "name": null } ] } [/block] #### Passo 3: Gerando o arquivo de configuração do servidor Salve 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). [block:code] { "codes": [ { "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>", "language": "text", "name": "server.ovpn" } ] } [/block] O arquivo resultante deverá ser similar ao mostrado abaixo: [block:code] { "codes": [ { "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", "language": "text", "name": "server.ovpn" } ] } [/block] >Nota: O endereço de IP 10.8.0.1 é o endereço que irá identificar o servidor dentro da rede da VPN. Já 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. [block:callout] { "type": "warning", "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.", "title": "É obrigatório utilizar o endereço 10.8.0.1?" } [/block] #### Passo 4: Configuração de Firewall Garanta que: * A porta TCP de número 1194 esteja aberta no servidor * 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". Tenha em mente que 90% dos problemas de novos usuários de OpenVPN estão relacionados com firewall. Inicie a VPN no servidor com o comando: `openvpn server.ovpn` É possível rodar o comando acima em segundo plano com a opção --daemon: `openvpn server.ovpn --daemon` #### Passo 5: Gerando o arquivo de configuração do cliente Esse arquivo será utilizado pela Dito para realizar a conexão na VPN criada no passo anterior. Você também poderá utilizar esse arquivo para testar se a VPN está funcionando a partir de outro computador em uma rede diferente. Para 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. Nota: 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. [block:code] { "codes": [ { "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", "language": "text", "name": "client.ovpn" } ] } [/block] Feito isso, verifique se as configurações do firewall estão corretas e passe para o próximo passo para validar o funcionamento da rede. Para testar, do lado do cliente inicie a conexão com a VPN recém criada: `openvpn client.ovpn` Se tudo correr bem, uma mensagem de conexão realizada com sucesso aparecerá no terminal similar a mensagem abaixo: [block:code] { "codes": [ { "code": "Peer Connection Initiated with [AF_INET]186.224.59.232:46770\nInitialization Sequence Completed", "language": "text" } ] } [/block] Nesse caso, basta enviar para a Dito o arquivo `client.ovpn`. #### Windows - opção via interface gráfica A 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. [block:image] { "images": [ { "image": [ "https://files.readme.io/ab2fb81-openvpn.jpeg", "openvpn.jpeg", 373, 107, "#e7e8e9" ] } ] } [/block] **Referência** * https://openvpn.net/community-resources/static-key-mini-howto/