As instalações do iOS7.1 OTA deixaram você desanimado? Isso resolve tudo.

Com o lançamento do iOS7.1, a Apple agora requer que as instalações OTA sejam feitas por HTTPS. Isso se aplica a ambas as implantações de aplicativos corporativos, juntamente com implantações Ad-Hoc. Infelizmente, a Apple não documentou essa alteração e, se as instalações OTA pararam de funcionar, esse é o motivo.

A boa notícia é que, se o seu servidor de implantação já tiver o SSL configurado, tudo o que você precisa fazer é simplesmente certificar-se de implantar em uma conexão HTTPS. Pode ser necessário modificar os caminhos para o arquivo manifest.plist que aponta para o binário do aplicativo.

A má notícia é que, se você ainda não tem o SSL configurado, isso significa que você precisa configurá-lo MESMO se sua solução de implantação for totalmente interna à sua empresa. Isso é lamentável, porque não acredito que devamos ser forçados a fazer isso enquanto implantamos com segurança dentro de nossa organização.

No entanto, devemos sucumbir às exigências da Apple.

Algumas soluções foram propostas, tais como:

  • Use Dropbox em https daqui para frente
  • Esqueça o dinheiro e compre um certificado de uma autoridade de certificação bem conhecida
  • Hospede os binários do seu aplicativo em seu servidor público se ele já tiver suporte HTTPS (péssima ideia!)

Embora você possa fazer tudo isso, eu ofereço uma solução que não requer dinheiro, funciona perfeitamente e não exige que você se desfaça do seu ambiente de implantação atual mudando para algo como o Dropbox, que na verdade é apenas uma solução hackeada.

Aqui estão as etapas:

  • Em qualquer computador OSX
  • Baixe o seguinte binário de linha de comando em: https://github.com/deckarep/EasyCert/releases
  • Execute o seguinte comando: ./EasyCert -cn Acme -h http://www.acme.com
  • Obviamente, substitua o sinalizador cn por algum nome que represente sua empresa
  • Além disso, substitua o sinalizador h pelo nome do host do seu servidor web a partir do qual você implementa
  • Isso irá gerar alguns arquivos, mas você só precisa dos três a seguir:
  • myCA.cer – instale-o no (s) dispositivo (s) que deseja implantar
  • myCert1.cer – instale-o em seu servidor web junto com a chave abaixo para habilitar https
  • myCer1.key – instale-o também em seu servidor web junto com o certificado acima para habilitar https
  • Feito!

Se você seguir esse caminho, faz sentido fornecer um link em seu servidor da web onde os dispositivos possam navegar até você e realmente clicar no certificado para instalar. Este certificado corresponderá às credenciais TLS dos servidores da web e permitirá que você instale fazendo OTA como antes. O certificado só precisa ser instalado uma vez e seu dispositivo irá salvá-lo daqui para frente.

Aqui está o artigo stackoverflow.com com mais detalhes: http://stackoverflow.com/a/22367111/71079

Para quem deseja o código-fonte da biblioteca EasyCert, aqui está o código-fonte escrito na linguagem de programação Go: https://github.com/deckarep/EasyCert/

Lembre-se de que a intenção desta solução foi projetada para ser executada dentro do firewall de sua organização. Visto que atuamos como nossa própria Autoridade de Certificação, isso não é o mesmo que proteger um servidor da Web de uma autoridade de certificação oficial, mas fazemos isso de qualquer maneira, porque ele funciona dentro de nosso jardim murado.

Boa sorte e envie-me Pull-Requests se tiver algum problema com a ferramenta EasyCert.

Comente abaixo se isso te ajudar ou se você tiver problemas.

@deckarep