{"_id":"5c9e4a9f3df25b034ea4deb4","project":"575aeffae12cf20e002f306c","version":{"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","__v":33,"createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","categories":["575aeffae12cf20e002f3070","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","57602fe5b82256240055c657","57602ff6c811102000cef302","576030909b1a9a220067ca40","57604518b82256240055c722","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","577680bf3cee3a0e00a000bc","577ff3b1ff48990e000c6806","5783f78c5cbce30e0074e2b7","5783f86292edb92200e6101c","5783f86dbfbba719003f0d8b","5783f8755cbce30e0074e2b8","5783f8b65cbce30e0074e2b9","5783f8bf5cbce30e0074e2ba","5783f8d8ce802f0e0087d574","578529f887c9280e0090394b","57852aeb87c9280e0090394d","57866e72b2f4060e00fa39ca","57ab6d5c39c2fd1900191879","57f39451ab0ee12000bef915","582499a0d90fa027009b259e","58c29df1258e5a1900b60478","5a7c4127490e52002a7f643c","5ce43ecb9e6a78002aae5c66","5ce7de70923530005cbe627a"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"category":{"_id":"5ce43ecb9e6a78002aae5c66","project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2019-05-21T18:09:15.941Z","from_sync":false,"order":0,"slug":"atualização-tls","title":"** Atualização TLS"},"user":"57601a13af3e090e00108059","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2019-03-29T16:41:03.620Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"Esse repositório contém dicas e instruções para te ajudar a verificar se seu sistema é compatível com certificados TLS 1.2.\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"IMPORTANTE\",\n  \"body\": \"Enfatizamos que protocolos de segurança envolvem a parte técnica da sua aplicação, então é crucial que ela seja revisada pelo serviço de hospedagem web, fornecedor de software ou pela equipe de desenvolvimento/infraestrutura do sistema do cliente.\"\n}\n[/block]\nPara ajuda adicional, você pode considerar as orientações a seguir, específicas de acordo com linguagens de programação que disponibilizamos SDK's:\n\n- [PHP](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-php)\n- [NodeJS](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-nodejs)\n- [Ruby](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-ruby)\n- [Python](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-python)\n- [.NET](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section--net)\n- [Java](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-java)\n- [Delphi](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-delphi)\n- [Go](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-go)\n\n<hr>\n\n# PHP\n\n\n## Requisitos\n\n\n- Versão do PHP: <code>>= 5.4</code>\n- Versão da biblioteca cURL: <code>>= 7.34.0</code>\n- Versão da biblioteca OpenSSL: <code>>= 1.0.1c</code>\n- O PHP utiliza o cURL fornecido pelo sistema, e precisa ter a versão do OpenSSL igual ou superior à <code>1.0.1c</code>\n- Pode ser necessário <a href=\"http://curl.haxx.se/docs/ssl-compared.html\" target=\"_blank\">atualizar suas bibliotecas SSL/TLS</a>\n\n\n## Diretrizes\n\n\nVocê pode encontrar informações sobre as bibliotecas OpenSSL dessa forma:\n\n1) OpenSSL instalado em seu sistema operacional:\n\n- Execute o comando <code>openssl version</code>\n\n<br>\n\n2) OpenSSL que seu PHP está utilizando:\n\n- Procure esta informação dentro do arquivo <code>php.ini</code>\n\n<br>\n\n3) Para encontrar a versão do OpenSSL de seu cURL, execute o comando a seguir em seu servidor:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"php -r 'echo json_encode(curl_version(), JSON_PRETTY_PRINT);'\",\n      \"language\": \"curl\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\nTodas essas bibliotecas OpenSSL podem ser diferentes, e atualizar uma não atualizará a outra automaticamente.\n\nO <code>php_curl</code> utiliza sua própria versão da biblioteca OpenSSL, que não é a mesma que o PHP usa, que estão nos arquivos <code>openssl.so</code> e <code>php.ini</code>.\n\n\n## Verificando sua conexão com TLS 1.2\n\n\n1) Baixe <a href=\"https://github.com/gerencianet/TLS-update/tree/master/PHP\" target=\"_blank\">esses arquivos</a> em seu servidor.\n\n2) No terminal de seu servidor, execute os comandos a seguir:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"php tls.php\",\n      \"language\": \"curl\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\nEm caso de sucesso, o retorno será:\n\n<code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code>\n\n<br>\n\nEm caso de falha, um dos erros a seguir deve ser exibido:\n\n<code>Peer's Certificate issuer is not recognized</code>\n\n<code>Unable to connect to api.gerencianet.com.br</code>\n\n<code>error: Could not resolve host: api.gerencianet.com.br; Name or service not known</code>\n\n<br>\n\n3) Ao atualizar bibliotecas OpenSSL, você precisa atualizar a versão do OpenSSL de seu <code>php_curl</code>, e não a versão do OpenSSL de seu servidor operacional.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"NOTA\",\n  \"body\": \"Tenha certeza que os testes executados em seu terminal utilizam a mesma versão de PHP e bibliotecas SSL/TLS que seu servidor web.\\n\\nSe você usar MAMP ou XAMPP, o PHP já é configurado com a versão mais antiga do OpenSSL, onde pode ser complicado atualizar. Os links a seguir podem ajudá-lo nessa atualização:\\n\\n- <a href=\\\"https://stackoverflow.com/questions/33887552/change-openssl-version-in-mamp\\\" target=\\\"_blank\\\">Change OpenSSL version in MAMP</a>\\n\\n- <a href=\\\"http://php.net/manual/pt_BR/openssl.installation.php\\\" target=\\\"_blank\\\">PHP - OpenSSL Installation</a>\"\n}\n[/block]\n<br>\n<hr>\n\n# NodeJS\n\n## Requisitos\n\n- O Node utiliza o OpenSSL instalado no sistema.\n- O TLS 1.2 exige que a versão mínima do OpenSSL seja a <code>1.0.1c</code>.\n\n## Verificando sua conexão com TLS 1.2\n\n1) Execute o seguinte comando em seu servidor:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"node -e \\\"console.log(process.versions)\\\"\",\n      \"language\": \"curl\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\n<br>\n\n2) A versão do seu OpenSSL será exibida na propriedade <code>openssl</code>, conforme demonstrado no exemplo a seguir:\n\n<code>{\n  http_parser: '2.7.0',\n  node: '8.6.0',\n  v8: '6.0.287.53',\n  uv: '1.14.1',\n  zlib: '1.2.11',\n  ares: '1.10.1-DEV',\n  modules: '57',\n  nghttp2: '1.25.0',\n  openssl: '1.0.2l',\n  icu: '59.1',\n  unicode: '9.0',\n  cldr: '31.0.1',\n  tz: '2017b' \n}</code>\n\n## Executando exemplo de NodeJS\n\n1) Baixe o arquivo <code>tls.js</code> <a href=\"https://github.com/gerencianet/TLS-update/tree/master/Node\">neste link</a>.\n\n2) Coloque-o em seu servidor, e execute-o com o comando <code>node tls.js</code>.\n\n<br>\n<hr>\n\n# Ruby\n\n## Requisitos\n\n- É necessário que a versão de seu Ruby seja <code>2.0.0</code> ou superior, assim como a do OpenSSL <code>1.0.1c</code> ou superior:\n\n    - O Ruby <code>2.0.0</code> ou superior é necessário para que o mesmo consiga utilizar o TLS 1.2 do OpenSSL de seu próprio sistema;\n\n    - Para conseguir utilizar o TLS 1.2 é necessário o OpenSSL <code>1.0.1c</code> ou superior instalado em seu sistema.\n\n- Para atualizar as dependências de seu aplicativo, talvez seja necessário utilizar o comando <code>bundle update</code>.\n\n## Verificando sua conexão com TLS 1.2\n\n1) Execute o arquivo <code>tls-example.rb</code>, que pode ser encontrado <a href=\"https://github.com/gerencianet/TLS-update/tree/master/Ruby\" target=\"_blank\">neste link</a>, da seguinte maneira:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ ruby tls.rb\",\n      \"language\": \"ruby\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\nEm caso de sucesso, o retorno será exibido em seu terminal:\n\n<code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code>\n\n<br>\n\nCaso ocorra algum erro na requisição devido ao protocolo TLS, uma exceção será lançada.\n\n<br>\n<hr>\n\n# Python\n\n## Requisitos\n\n- O Python utiliza o OpenSSL fornecido pelo sistema\n- O TLS 1.2 necessita da versão OpenSSL <code>1.0.1c</code> ou posterior\n\n## Verificando sua conexão com TLS 1.2\n\n1) Baixe <a href=\"https://github.com/gerencianet/TLS-update/blob/master/Python/tls.py\" target=\"_blank\">esse arquivo</a> em seu servidor.\n\n2) Execute-o arquivo com o comando <code>python tls.py</code>\n\n<br>\n\nEm caso de sucesso, o retorno será:\n\n<code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code>\n\n<br>\n\nEm caso de falha, a seguinte mensagem será exibida:\n\n<code>Sua versão SSL é xxx</code>\n<code>Sua versão deve ser superior à 1.0.1c</code>\n\n<br>\n<hr>\n\n# .NET\n\n## Requisitos\n\nPara habilitar o funcionamento do protocolo TLS 1.2 em seu sistema, você precisa utilizar a versão mais recente do Mono (Linux) ou <a href=\"https://www.microsoft.com/pt-br/download/details.aspx?id=30653\" target=\"_blank\">.NET Framework 4.5</a> ou <a href=\"https://docs.microsoft.com/pt-br/dotnet/framework/migration-guide/versions-and-dependencies\" target=\"_blank\">superior</a>.\n\n## Verificando sua conexão com TLS 1.2\n\n1) Execute o arquivo <code>Tls.exe</code>, que pode ser encontrado <a href=\"https://github.com/gerencianet/TLS-update/raw/master/C%23/Tls.exe\" target=\"_blank\">neste link</a>.\n\n## Windows\n\nExecute o arquivo normalmente como qualquer outro executável (extensão .exe).\n\n## Linux\n\nExecute o comando a partir do <code>mono</code> da seguinte maneira:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ mono Tls.exe\",\n      \"language\": \"curl\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\nEm caso de sucesso, o retorno será:\n\n<code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code>\n\n<br>\n\nPara exemplo completo, veja <a href=\"https://github.com/gerencianet/TLS-update/tree/master/C%23\" target=\"_blank\">este link</a>.\n\n<br>\n<hr>\n\n# Java\n\n## TLS 1.2 no Java\n\n- Na versão <code>1.6</code> do Java, o TLS 1.2 está disponível a partir da atualização de número <code>11</code>. Caso necessário, atualize a JDK de seu servidor - as versões mais recentes estão disponíveis <a href=\"http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html\" target=\"_blank\">neste link</a>.\n\n- Nas versões <code>1.7</code> e <code>1.8</code> do Java o suporte para TLS 1.2 é nativo.\n\n- A habilitação deste recurso depende do servidor que sua aplicação está utilizando.\n\n## Verificando se seu servidor consegue realizar requisições usando TLS 1.2\n\nObtenha o arquivo .jar <a href=\"https://github.com/gerencianet/TLS-update/blob/master/Java/tls.jar\" target=\"_blank\">neste link</a> e faça o teste.\n\n## Windows\n\nBasta clicar 2x no arquivo <code>tls.jar</code>.\n\n## Linux\n\nExecute o seguinte comando a partir do terminal, na pasta que contém o arquivo <code>tls.jar</code>:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"java -jar tls.jar\",\n      \"language\": \"curl\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\n<br>\n\nPara download, a classe completa pode ser encontrada <a href=\"https://github.com/gerencianet/TLS-update/blob/master/Java/tls.java\" target=\"_blank\">neste link</a>.\n\n<br>\n<hr>\n\n# Delphi\n\n## Requisitos\n\n*Para habilitar o funcionamento do protocolo TLSv1.2 em seu sistema, a única coisa necessária é utilizar a versão mais recente do Mono(linux) ou .NET Framework (maior que 4.5, recomendado >= 4.6.2). *\n\n- As versões do Windows Server 2003 e Windows XP, além de versões mais antigas e anteriores **não são compatíveis com TLS**. Confira a relação completa da compatibilidade de sistemas operacionais <a href=\"https://files.readme.io/95c6a8b-1-windows-tls.png\" target=\"_blank\">nesta tabela</a>.\n\n- Deve-se utilizar, no mínimo, <a href=\"https://www.microsoft.com/pt-br/download/details.aspx?id=53344\" target=\"_blank\">.NET Framework 4.6.2</a> ou superior. Confira <a href=\"https://files.readme.io/ce48972-2-compatibilidade-windows-dotnet.png\" target=\"_blank\">nesta tabela</a> a relação das versões do Windows e sua compatibilidade com o .NET Framework 4.6.2.\n\nPortanto, é importante estar atento certificar-se que o sistema operacional que roda a sua aplicação seja compatível com o protocolo TLS 1.2 e Microsoft .NET Framework 4.6.2.\n\n## Verificando suas versões\n* Execute o arquivo Tls.exe, que pode ser encontrado clicando <a href=\"https://github.com/gerencianet/TLS-update/blob/master/Delphi/Tls.exe\" target=\"_blank\" >aqui</a>:\n\n## Windows:\nExecute o arquivo como qualquer outro <code>.exe</code> normalmente.\n\n## Linux:\nExecute o comando a partir do mono da seguinte maneira:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ mono Tls.exe\",\n      \"language\": \"curl\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\n* On success:\n\n<code>Gerencianet_Connection_TLS1.2_OK!</code>\n* On failure, an <code>URLError</code> is raised:\n\n<code>Failed!</code>\n\n\n## Links\n\n- <a href=\"https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/\" target=\"_blank\">Compatibilidade do Windows com TLS 1.2</a>\n\n- <a href=\"https://docs.microsoft.com/pt-br/dotnet/framework/get-started/system-requirements\" target=\"_blank\">Compatibilidade do Windows com as versões do .NET Framework</a>\n\n<br>\n<hr>\n\n# Go\n\nTodas as versões do Go já suportam TLS 1.2 por padrão, portanto, você não precisará fazer nenhuma alteração.\n\n## Requisitos\nGo usa o OpenSSL fornecido pelo sistema.\nTLSv1.2 precisa da versão OpenSSL 1.0.1c ou superior.\nExecutando exemplo em Go\nBaixe o arquivo <code>tls.go</code> do nosso <a href=\"https://github.com/gerencianet/TLS-update/tree/master/Go\" target=\"_blank\">repositório</a>.\n\nColoque-o em seu servidor, e execute-o com o comando:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"go run tls.go\",\n      \"language\": \"go\",\n      \"name\": \"Código\"\n    }\n  ]\n}\n[/block]\n* On success:\n\n<code>Gerencianet_Connection_TLS1.2_OK!</code>\n* On failure:\n\n<code>Fatalln `err`</code>","excerpt":"","slug":"verificando-tls-12","type":"basic","title":"Verificando versões e conexão com TLS 1.2"}

Verificando versões e conexão com TLS 1.2


Esse repositório contém dicas e instruções para te ajudar a verificar se seu sistema é compatível com certificados TLS 1.2. [block:callout] { "type": "danger", "title": "IMPORTANTE", "body": "Enfatizamos que protocolos de segurança envolvem a parte técnica da sua aplicação, então é crucial que ela seja revisada pelo serviço de hospedagem web, fornecedor de software ou pela equipe de desenvolvimento/infraestrutura do sistema do cliente." } [/block] Para ajuda adicional, você pode considerar as orientações a seguir, específicas de acordo com linguagens de programação que disponibilizamos SDK's: - [PHP](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-php) - [NodeJS](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-nodejs) - [Ruby](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-ruby) - [Python](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-python) - [.NET](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section--net) - [Java](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-java) - [Delphi](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-delphi) - [Go](https://dev.gerencianet.com.br/v1/docs/verificando-tls-12#section-go) <hr> # PHP ## Requisitos - Versão do PHP: <code>>= 5.4</code> - Versão da biblioteca cURL: <code>>= 7.34.0</code> - Versão da biblioteca OpenSSL: <code>>= 1.0.1c</code> - O PHP utiliza o cURL fornecido pelo sistema, e precisa ter a versão do OpenSSL igual ou superior à <code>1.0.1c</code> - Pode ser necessário <a href="http://curl.haxx.se/docs/ssl-compared.html" target="_blank">atualizar suas bibliotecas SSL/TLS</a> ## Diretrizes Você pode encontrar informações sobre as bibliotecas OpenSSL dessa forma: 1) OpenSSL instalado em seu sistema operacional: - Execute o comando <code>openssl version</code> <br> 2) OpenSSL que seu PHP está utilizando: - Procure esta informação dentro do arquivo <code>php.ini</code> <br> 3) Para encontrar a versão do OpenSSL de seu cURL, execute o comando a seguir em seu servidor: [block:code] { "codes": [ { "code": "php -r 'echo json_encode(curl_version(), JSON_PRETTY_PRINT);'", "language": "curl", "name": "Código" } ] } [/block] Todas essas bibliotecas OpenSSL podem ser diferentes, e atualizar uma não atualizará a outra automaticamente. O <code>php_curl</code> utiliza sua própria versão da biblioteca OpenSSL, que não é a mesma que o PHP usa, que estão nos arquivos <code>openssl.so</code> e <code>php.ini</code>. ## Verificando sua conexão com TLS 1.2 1) Baixe <a href="https://github.com/gerencianet/TLS-update/tree/master/PHP" target="_blank">esses arquivos</a> em seu servidor. 2) No terminal de seu servidor, execute os comandos a seguir: [block:code] { "codes": [ { "code": "php tls.php", "language": "curl", "name": "Código" } ] } [/block] Em caso de sucesso, o retorno será: <code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code> <br> Em caso de falha, um dos erros a seguir deve ser exibido: <code>Peer's Certificate issuer is not recognized</code> <code>Unable to connect to api.gerencianet.com.br</code> <code>error: Could not resolve host: api.gerencianet.com.br; Name or service not known</code> <br> 3) Ao atualizar bibliotecas OpenSSL, você precisa atualizar a versão do OpenSSL de seu <code>php_curl</code>, e não a versão do OpenSSL de seu servidor operacional. [block:callout] { "type": "info", "title": "NOTA", "body": "Tenha certeza que os testes executados em seu terminal utilizam a mesma versão de PHP e bibliotecas SSL/TLS que seu servidor web.\n\nSe você usar MAMP ou XAMPP, o PHP já é configurado com a versão mais antiga do OpenSSL, onde pode ser complicado atualizar. Os links a seguir podem ajudá-lo nessa atualização:\n\n- <a href=\"https://stackoverflow.com/questions/33887552/change-openssl-version-in-mamp\" target=\"_blank\">Change OpenSSL version in MAMP</a>\n\n- <a href=\"http://php.net/manual/pt_BR/openssl.installation.php\" target=\"_blank\">PHP - OpenSSL Installation</a>" } [/block] <br> <hr> # NodeJS ## Requisitos - O Node utiliza o OpenSSL instalado no sistema. - O TLS 1.2 exige que a versão mínima do OpenSSL seja a <code>1.0.1c</code>. ## Verificando sua conexão com TLS 1.2 1) Execute o seguinte comando em seu servidor: [block:code] { "codes": [ { "code": "node -e \"console.log(process.versions)\"", "language": "curl", "name": "Código" } ] } [/block] <br> 2) A versão do seu OpenSSL será exibida na propriedade <code>openssl</code>, conforme demonstrado no exemplo a seguir: <code>{ http_parser: '2.7.0', node: '8.6.0', v8: '6.0.287.53', uv: '1.14.1', zlib: '1.2.11', ares: '1.10.1-DEV', modules: '57', nghttp2: '1.25.0', openssl: '1.0.2l', icu: '59.1', unicode: '9.0', cldr: '31.0.1', tz: '2017b' }</code> ## Executando exemplo de NodeJS 1) Baixe o arquivo <code>tls.js</code> <a href="https://github.com/gerencianet/TLS-update/tree/master/Node">neste link</a>. 2) Coloque-o em seu servidor, e execute-o com o comando <code>node tls.js</code>. <br> <hr> # Ruby ## Requisitos - É necessário que a versão de seu Ruby seja <code>2.0.0</code> ou superior, assim como a do OpenSSL <code>1.0.1c</code> ou superior: - O Ruby <code>2.0.0</code> ou superior é necessário para que o mesmo consiga utilizar o TLS 1.2 do OpenSSL de seu próprio sistema; - Para conseguir utilizar o TLS 1.2 é necessário o OpenSSL <code>1.0.1c</code> ou superior instalado em seu sistema. - Para atualizar as dependências de seu aplicativo, talvez seja necessário utilizar o comando <code>bundle update</code>. ## Verificando sua conexão com TLS 1.2 1) Execute o arquivo <code>tls-example.rb</code>, que pode ser encontrado <a href="https://github.com/gerencianet/TLS-update/tree/master/Ruby" target="_blank">neste link</a>, da seguinte maneira: [block:code] { "codes": [ { "code": "$ ruby tls.rb", "language": "ruby", "name": "Código" } ] } [/block] Em caso de sucesso, o retorno será exibido em seu terminal: <code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code> <br> Caso ocorra algum erro na requisição devido ao protocolo TLS, uma exceção será lançada. <br> <hr> # Python ## Requisitos - O Python utiliza o OpenSSL fornecido pelo sistema - O TLS 1.2 necessita da versão OpenSSL <code>1.0.1c</code> ou posterior ## Verificando sua conexão com TLS 1.2 1) Baixe <a href="https://github.com/gerencianet/TLS-update/blob/master/Python/tls.py" target="_blank">esse arquivo</a> em seu servidor. 2) Execute-o arquivo com o comando <code>python tls.py</code> <br> Em caso de sucesso, o retorno será: <code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code> <br> Em caso de falha, a seguinte mensagem será exibida: <code>Sua versão SSL é xxx</code> <code>Sua versão deve ser superior à 1.0.1c</code> <br> <hr> # .NET ## Requisitos Para habilitar o funcionamento do protocolo TLS 1.2 em seu sistema, você precisa utilizar a versão mais recente do Mono (Linux) ou <a href="https://www.microsoft.com/pt-br/download/details.aspx?id=30653" target="_blank">.NET Framework 4.5</a> ou <a href="https://docs.microsoft.com/pt-br/dotnet/framework/migration-guide/versions-and-dependencies" target="_blank">superior</a>. ## Verificando sua conexão com TLS 1.2 1) Execute o arquivo <code>Tls.exe</code>, que pode ser encontrado <a href="https://github.com/gerencianet/TLS-update/raw/master/C%23/Tls.exe" target="_blank">neste link</a>. ## Windows Execute o arquivo normalmente como qualquer outro executável (extensão .exe). ## Linux Execute o comando a partir do <code>mono</code> da seguinte maneira: [block:code] { "codes": [ { "code": "$ mono Tls.exe", "language": "curl", "name": "Código" } ] } [/block] Em caso de sucesso, o retorno será: <code>Sucesso: sua conexão com a Gerencianet está utilizando o protocolo TLS 1.2.</code> <br> Para exemplo completo, veja <a href="https://github.com/gerencianet/TLS-update/tree/master/C%23" target="_blank">este link</a>. <br> <hr> # Java ## TLS 1.2 no Java - Na versão <code>1.6</code> do Java, o TLS 1.2 está disponível a partir da atualização de número <code>11</code>. Caso necessário, atualize a JDK de seu servidor - as versões mais recentes estão disponíveis <a href="http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html" target="_blank">neste link</a>. - Nas versões <code>1.7</code> e <code>1.8</code> do Java o suporte para TLS 1.2 é nativo. - A habilitação deste recurso depende do servidor que sua aplicação está utilizando. ## Verificando se seu servidor consegue realizar requisições usando TLS 1.2 Obtenha o arquivo .jar <a href="https://github.com/gerencianet/TLS-update/blob/master/Java/tls.jar" target="_blank">neste link</a> e faça o teste. ## Windows Basta clicar 2x no arquivo <code>tls.jar</code>. ## Linux Execute o seguinte comando a partir do terminal, na pasta que contém o arquivo <code>tls.jar</code>: [block:code] { "codes": [ { "code": "java -jar tls.jar", "language": "curl", "name": "Código" } ] } [/block] <br> Para download, a classe completa pode ser encontrada <a href="https://github.com/gerencianet/TLS-update/blob/master/Java/tls.java" target="_blank">neste link</a>. <br> <hr> # Delphi ## Requisitos *Para habilitar o funcionamento do protocolo TLSv1.2 em seu sistema, a única coisa necessária é utilizar a versão mais recente do Mono(linux) ou .NET Framework (maior que 4.5, recomendado >= 4.6.2). * - As versões do Windows Server 2003 e Windows XP, além de versões mais antigas e anteriores **não são compatíveis com TLS**. Confira a relação completa da compatibilidade de sistemas operacionais <a href="https://files.readme.io/95c6a8b-1-windows-tls.png" target="_blank">nesta tabela</a>. - Deve-se utilizar, no mínimo, <a href="https://www.microsoft.com/pt-br/download/details.aspx?id=53344" target="_blank">.NET Framework 4.6.2</a> ou superior. Confira <a href="https://files.readme.io/ce48972-2-compatibilidade-windows-dotnet.png" target="_blank">nesta tabela</a> a relação das versões do Windows e sua compatibilidade com o .NET Framework 4.6.2. Portanto, é importante estar atento certificar-se que o sistema operacional que roda a sua aplicação seja compatível com o protocolo TLS 1.2 e Microsoft .NET Framework 4.6.2. ## Verificando suas versões * Execute o arquivo Tls.exe, que pode ser encontrado clicando <a href="https://github.com/gerencianet/TLS-update/blob/master/Delphi/Tls.exe" target="_blank" >aqui</a>: ## Windows: Execute o arquivo como qualquer outro <code>.exe</code> normalmente. ## Linux: Execute o comando a partir do mono da seguinte maneira: [block:code] { "codes": [ { "code": "$ mono Tls.exe", "language": "curl", "name": "Código" } ] } [/block] * On success: <code>Gerencianet_Connection_TLS1.2_OK!</code> * On failure, an <code>URLError</code> is raised: <code>Failed!</code> ## Links - <a href="https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/" target="_blank">Compatibilidade do Windows com TLS 1.2</a> - <a href="https://docs.microsoft.com/pt-br/dotnet/framework/get-started/system-requirements" target="_blank">Compatibilidade do Windows com as versões do .NET Framework</a> <br> <hr> # Go Todas as versões do Go já suportam TLS 1.2 por padrão, portanto, você não precisará fazer nenhuma alteração. ## Requisitos Go usa o OpenSSL fornecido pelo sistema. TLSv1.2 precisa da versão OpenSSL 1.0.1c ou superior. Executando exemplo em Go Baixe o arquivo <code>tls.go</code> do nosso <a href="https://github.com/gerencianet/TLS-update/tree/master/Go" target="_blank">repositório</a>. Coloque-o em seu servidor, e execute-o com o comando: [block:code] { "codes": [ { "code": "go run tls.go", "language": "go", "name": "Código" } ] } [/block] * On success: <code>Gerencianet_Connection_TLS1.2_OK!</code> * On failure: <code>Fatalln `err`</code>