Assinatura digital de um arquivo AIR

Assinar digitalmente seus arquivos de instalação do AIR com um certificado emitido por uma autoridade de certificação reconhecida (CA) fornece uma garantia significativa aos seus usuários de que o aplicativo que estão instalando não foi alterado de modo acidental ou mal-intencionado e o identifica como o signatário (editor). O AIR exibe o nome do editor durante a instalação quando o aplicativo do AIR tiver sido assinado com um certificado confiável ou que esteja vinculado a um certificado confiável no computador de instalação:

Caixa de diálogo da confirmação da instalação assinada por certificado confiável

Se você assinar um aplicativo com um certificado autoassinado (ou um certificado que não esteja ligado a um certificado confiável), o usuário deverá assumir um risco de segurança maior ao instalar o seu aplicativo. As caixas de diálogo de instalação refletem este risco adicional:

Exibir gráfico inteiro
A caixa de diálogo da confirmação da instalação do aplicativo, assinada por certificado autoassinado.
Importante: Uma entidade mal-intencionada poderia falsificar um arquivo AIR com sua identidade se ela, de alguma forma, obtiver seu arquivo de armazenamento de chaves de assinatura ou descobrir sua chave privada.

Certificados de assinatura de código

As garantias de segurança, limitações e obrigações legais que envolvem o uso de certificados de assinatura de código são descritas nas Declarações de Práticas de Certificação (CPS) e nos contratos de assinatura publicados pela autoridade de certificação emissora. Para obter mais informações sobre os contratos das autoridades de certificação que emitem atualmente certificados de assinatura de código do AIR, consulte:

ChosenSecurity (http://www.chosensecurity.com/products/tc_publisher_id_adobe_air.htm)

ChosenSecurity CPS (http://www.chosensecurity.com/resource_center/repository.htm)

GlobalSign (http://www.globalsign.com/code-signing/index.html)

CPS da GlobalSign (http://www.globalsign.com/repository/index.htm)

CPS da Thawte (http://www.thawte.com/cps/index.html)

VeriSign CPS (http://www.verisign.com/repository/CPS/)

Contrato de assinante do VeriSign (https://www.verisign.com/repository/subscriber/SUBAGR.html)

Sobre a assinatura de código do AIR

Quando um arquivo AIR é assinado, uma assinatura digital é incluída no arquivo de instalação. A assinatura inclui uma compilação do pacote, usada para verificar se o arquivo AIR não foi alterado desde que foi assinado e se ele inclui informações sobre o certificado de assinatura, usado para verificar a identidade do editor.

O AIR usa a infraestrutura de chave pública (PKI) suportada pelo armazenamento de certificados do sistema operacional para estabelecer se um certificado pode ser confiável. O computador no qual um aplicativo do AIR está instalado deve confiar diretamente no certificado usado para assinar o aplicativo do AIR ou deve confiar em uma cadeia de certificados que vincula o certificado a uma autoridade de certificação confiável para que as informações do editor sejam verificadas.

Se um arquivo AIR for assinado com um certificado que não vincula a nenhum dos certificados raiz confiáveis (e normalmente isso inclui todos os certificados autoassinados), as informações do editor não podem ser verificadas. Embora o AIR possa determinar que o pacote do AIR não foi alterado desde que ele foi assinado, não há como saber quem realmente criou e assinou o arquivo.

Nota: Um usuário pode optar por confiar em um certificado autoassinado e, em seguida, qualquer aplicativo do AIR assinado com o certificado exibirá o valor do campo de nome comum no certificado como o nome do editor. O AIR não fornece nenhum meio de um usuário designar um certificado como confiável. O certificado (não incluindo a chave privada) deve ser fornecido ao usuário separadamente e o usuário deve usar um dos mecanismos fornecidos pelo sistema operacional ou uma ferramenta apropriada para importar o certificado no local apropriado no armazenamento de certificados do sistema.

Sobre identificadores de editor do AIR

Importante: A partir do AIR 1.5.3 o ID do editor não é mais utilizado e não possui mais base calculada no certificado de assinatura de código. Novos aplicativos não precisam utilizar um ID do editor. Ao atualizar aplicativos existente, é necessário especificar o ID do editor original no arquivo descritor do aplicativo.

Antes do AIR 1.5.3, o instalador de aplicativo do AIR gerava um ID do editor durante a instalação do arquivo AIR. Isto era um identificador único do certificado usado para criar o arquivo AIR. Se você reutilizou o mesmo certificado para vários aplicativos do AIR, eles receberam o mesmo ID do editor. A assinatura de uma atualização de aplicativo com um certificado diferente e até mesmo uma instância renovada do certificado original alterava o ID do editor.

No AIR 1.5.3 e posterior, o ID do editor não é mais atribuído pelo AIR. Um aplicativo publicado com o AIR 1.5.3 pode especificar uma cadeia de caracteres de ID do editor no descritor do aplicativo. Você somente deve especificar um ID do editor ao publicar atualizações de aplicativos originalmente publicados em versões do AIR anteriores à 1.5.3. Se você não especificar o ID original no descritor do aplicativo, o novo pacote AIR não será tratado como uma atualização de um aplicativo existente.

Para descobrir o ID do editor original, localize o arquivopublisherid no subdiretório META-INF/AIR onde o aplicativo original está instalado. A sequência de caracteres no arquivo é o ID do editor. O descritor o aplicativo deve especificar o runtime AIR 1.5.3 (ou posterior) na declaração de espaço de nome do arquivo descritor do aplicativo para especificar o ID do editor manualmente.

O ID do editor, quando existir, é utilizado para os seguintes fins:

  • Como parte da chave de criptografia o armazenamento local criptografado

  • Como parte o caminho para o diretório de armazenamento do aplicativo

  • Como parte da sequência de caracteres de conexão para conexões locais

  • Como parte da sequência de caracteres de identidade utilizada para chamar o aplicativo com a API interna de navegador AIR

  • Como parte o OSID (utilizado na criação de programas personalizados de instalação/desinstalação)

Quando um ID de editor muda, o comportamento de qualquer recurso AIR dependente do ID também muda. Por exemplo, os dados existentes no armazenamento local criptografado não podem mais ser acessados e qualquer instância do Flash ou AIR que cria uma conexão local para o aplicativo deve utilizar o novo ID na sequência de caracteres de conexão. O ID do editor de um aplicativo instalado não pode ser alterado no AIR 1.5.3 ou posterior. Se você utilizar um ID do editor diferente ao publicar um pacote AIR, o instalador tratará o novo pacote como um aplicativo diferente, em vez de uma instalação.

Sobre formatos de certificados

As ferramentas de assinatura do AIR aceitam qualquer armazenamento de chave acessível pela JCA (arquitetura de criptografia Java). Isso inclui armazenamentos de chaves baseados em arquivos como arquivos de formatos PKCS12 (que normalmente usam uma extensão de arquivo .pfx ou .p12), arquivos .keystore Java, armazenamentos de chaves de hardware PKCS11 e armazenamentos de chaves de sistema. Os formatos de armazenamento de chave que o ADT pode acessar dependem da versão e configuração do runtime Java usado para executar o ADT. Acessar alguns tipos de armazenamento de chave, como tokens de hardware PKCS11, pode exigir a instalação e configuração de drivers de software adicionais e plug-ins de JCA.

Para assinar arquivos do AIR, você pode usar a maioria dos certificados de assinatura de código existentes ou obter um novo, emitido expressamente para assinar aplicativos do AIR. Por exemplo, qualquer um dos seguintes tipos de certificado da VeriSign, Thawte, GlobalSign ou ChosenSecurity podem ser usados:

  • ChosenSecurity

    • ID de editor TC para Adobe AIR

  • GlobalSign

    • Certificado de assinatura de código ObjectSign

  • Thawte:

    • Certificado do desenvolvedor do AIR

    • Certificado do desenvolvedor Apple

    • Certificado do desenvolvedor JavaSoft

    • Certificado Microsoft Authenticode

  • VeriSign:

    • ID digital do Adobe AIR

    • ID digital Microsoft Authenticode

    • ID digital de assinatura Sun Java

Nota: O certificado deve ser criado para assinatura de código. Você não pode usar um SSL ou outro tipo de certificado para assinar arquivos do AIR.

Carimbos de data/hora

Quando você assina um arquivo AIR, a ferramenta de empacotamento consulta o servidor de uma autoridade de carimbo de data/hora para obter uma data e hora da assinatura independentemente verificáveis. a marca de data/hora está incorporado no arquivo AIR. Desde que o certificado de assinatura seja válido no momento da assinatura, o arquivo AIR poderá ser instalado, mesmo depois que o certificado expirar. Por outro lado, se nenhum carimbo de data/hora for obtido, o arquivo AIR não poderá mais ser instalado quando o certificado expirar ou for revogado.

Por padrão, as ferramentas de empacotamento do AIR obtêm um carimbo de data/hora. No entanto, para permitir que aplicativos sejam empacotados quando o serviço de carimbo de data/hora estiver indisponível, você pode desativar o recurso de carimbo de data/hora. A Adobe recomenda que todos os arquivos do AIR distribuídos publicamente incluam um carimbo de data/hora.

A autoridade padrão de carimbo de data/hora usada pelas ferramentas de empacotamento do AIR é Geotrust.

Obtenção de um certificado

Para obter um certificado, você normalmente visitaria o site da autoridade de certificação na Web e completaria o processo de obtenção da empresa. As ferramentas usadas para produzir o arquivo de armazenamento de chave necessário pelas ferramentas do AIR dependem do tipo de certificado adquirido, de como o certificado é armazenado no computador recebedor e, em alguns casos, o navegador usado para obter o certificado. Por exemplo, para obter e exportar um certificado do Adobe Developer do Thawte, você deve usar o Mozilla Firefox. O certificado pode então ser exportado como um arquivo .12 diretamente da interface do usuário do Firefox.

Nota: Versões do Java 1.5 e acima não aceitam caracteres ASCII superiores nas senhas usadas para proteger arquivos de certificado PKCS12. O Java é usado pelas ferramentas de desenvolvimento do AIR para criar os pacotes assinados do AIR. Quando você exportar o certificado como um arquivo .p12 ou .pfx, use somente caracteres ASCII normais na senha.

Você pode gerar um certificado autoassinado usando a ferramenta para desenvolvedores do AIR (ADT) usada para empacotar arquivos de instalação do AIR. Algumas ferramentas de terceiros também podem ser usadas.

Para obter instruções como gerar um certificado autoassinado, bem como instruções sobre como assinar um arquivo do AIR, consulte AIR Developer Tool (ADT). Você também pode exportar e assinar arquivos do AIR usando o Flash Builder, Dreamweaver e a atualização do AIR para o Flash.

O exemplo a seguir descreve como obter um Certificado de desenvolvedor do AIR da autoridade de certificação Thawte e prepará-lo para o uso com o ADT.

Exemplo: Obtenção de um certificado do desenvolvedor do AIR da Thawte

Nota: Este exemplo ilustra apenas uma das várias maneiras de se obter e preparar um certificado de assinatura do código para o uso. Cada autoridade de certificação tem suas próprias políticas e procedimentos.

Para adquirir um certificado do desenvolvedor do AIR, o site da Thawte na Web requer que você use o navegador Mozilla Firefox. A chave privada para o certificado é armazenada no armazenamento de chave do navegador. Verifique se o armazenamento de chave do Firefox é protegido por uma senha mestre e se o computador em si é fisicamente seguro. (Você pode exportar e remover o certificado e a chave privada do armazenamento de chave do navegador quando o processo de obtenção estiver concluído.)

Como parte do processo de inscrição do certificado, é gerado um par de chave privada/pública. A chave privada é armazenada automaticamente no armazenamento de chave do Firefox. Você deve usar o mesmo computador e navegador para solicitar e recuperar o certificado do site da Thawte na Web.

  1. Visite o site da Thawte na Web e navegue até Página de produtos para certificados de assinatura de código.

  2. Da lista de certificados de assinatura de código, selecione o certificado do desenvolvedor do Adobe AIR.

  3. Complete o processo de inscrição de três etapas. Você precisa fornecer informações organizacionais e de contato. A Thawte executa então seu processo de verificação de identidade e pode solicitar informações adicionais. Após a conclusão da verificação, a Thawte enviará um email com instruções sobre como recuperar o certificado.

    Nota: informações adicionais sobre o tipo de documentação necessária podem ser encontradas aqui: https://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/pdf/enroll_codesign_eng.pdf.
  4. Recupere o certificado emitido do site da Thawte. O certificado é salvo automaticamente no armazenamento de chave do Firefox.

  5. Exporte um arquivo de armazenamento de chave contendo a chave privada e o certificado do armazenamento de chave do Firefox usando as seguintes etapas:

    Nota: Ao exportar a chave privada/certificado do Firefox, ele é exportado em um formato de .p12 (pfx) que o ADT, Flex, Flash e o Dreamweaver podem usar.
    1. Abra a caixa de diálogo do gerenciador de certificados do Firefox:

    2. No Windows: abra Tools (Ferramentas) -> Options (Opções) -> Advanced (Avançadas) -> Encryption (Criptografia) -> View Certificates (Exibir certificados)

    3. No Mac OS: abra Firefox (Firefox) -> Preferences (Preferências) -> Advanced (Avançadas) -> Encryption (Criptografia) -> View Certificates (Exibir certificados)

    4. No Linux: abra Edit (Editar) -> Preferences (Preferências) -> Advanced (Avançadas) -> Encryption (Criptografia) -> View Certificates (Exibir certificados)

    5. Selecione o certificado de assinatura do código do Adobe AIR da lista de certificados e clique no botão Backup.

    6. Digite um nome de arquivo e a localização para a qual exportar o arquivo de armazenamento de chave e clique em Save (Salvar).

    7. Se estiver usando a senha mestre do Firefox, será solicitado que você digite sua senha para o dispositivo de segurança do software para exportar o arquivo. (Essa senha é usada apenas pelo Firefox.)

    8. Na caixa de diálogo Choose a Certificate Backup Password (Escolha uma senha de backup de certificado), crie uma senha para o arquivo de armazenamento de chave.

      Importante: Essa senha protege o arquivo de armazenamento de chave e é necessária quando o arquivo é usado para assinar aplicativos do AIR. Uma senha segura deve ser escolhida.
    9. Clique em OK. Você deve receber uma mensagem de senha de backup bem-sucedida. O arquivo de armazenamento de chave contendo a chave privada e o certificado é salvo com uma extensão de arquivo .p12 (no formato PKCS12)

  6. Use o arquivo de armazenamento de chave exportado com o ADT, Flash Builder, Flash Professional ou Dreamweaver. A senha criada para o arquivo é necessária sempre que um aplicativo do AIR é assinado.

Importante: A chave privada e o certificado ainda são armazenados no armazenamento de chave do Firefox. Enquanto isso permite que você exporte uma cópia adicional do arquivo de certificado, também fornece outro ponto de acesso que deve ser protegido para manter a segurança do seu certificado e da chave privada.

Alteração de certificados

Em alguns casos, você deve alterar o certificado utilizado para assinar atualizações para seu aplicativo do AIR. Tais circunstâncias incluem:

  • Renovando o certificado de assinatura original.

  • Atualização de um certificado autoassinado para um certificado emitido por uma autoridade de certificação

  • Alteração de um certificado autoassinado prestes a expirar para outro

  • Alterar de um certificado comercial para outro, por exemplo, quando sua identidade corporativa for alterada

Para que o AIR reconheça um arquivo AIR como uma atualização, você deve assinar o arquivo AIR original e a atualização como mesmo certificado ou aplicar uma assinatura de migração de certificado à atualização. Uma assinatura de migração é a segunda assinatura aplicada ao pacote AIR de atualização, utilizando o certificado original. A assinatura de migração usa o certificado original para estabelecer que o signatário é o editor original do aplicativo.

Após o arquivo AIR com a assinatura de migração ser instalado, o novo certificado tornar-se o certificado primário. Atualizações subsequentes não requerem uma assinatura de migração. No entanto, você deve aplicar assinaturas de migração pelo máximo de tempo possível, para acomodar usuários que ignoram atualizações.

Importante: Você deve alterar o certificado e aplicar uma assinatura de migração para a atualização com o certificado original, antes que este expire. Caso contrário, os usuários devem desinstalar a versão existente do aplicativo antes de instalar uma nova versão. Para o AIR 1.5.3 ou posterior, você pode aplicar uma assinatura de migração utilizando um certificado expirado dentro de um período de tolerância de 365 dias depois que ele expirar. Contudo, não é possível utilizar um certificado expirado para aplicar a assinatura de aplicativo principal.

Para alterar os certificados:

  1. Crie uma atualização para o seu aplicativo

  2. Empacote e assine o arquivo de atualização do AIR com o novo certificado

  3. Assine o arquivo AIR novamente com o certificado original (usando o comando -migrate do ADT)

Um arquivo AIR com uma assinatura de migração é, em outros aspectos, um arquivo AIR normal. Se o aplicativo é instalado em um sistema sem a versão original, o AIR instala a nova versão da maneira normal.

Nota: Antes do AIR 1.5.3, a assinatura de um aplicativo do AIR com um certificado renovado nem sempre requeria uma assinatura de migração. A partir do AIR 1.5.3, uma assinatura de migração é obrigatória para certificados renovados.

Para aplicar uma assinatura de migração, use o Comando migrate do ADT, como descrito em Assinatura de uma versão atualizada de um aplicativo do AIR.

Nota: O comando migrate do ADT não pode ser usado com aplicativos AIR para desktop que incluem extensões nativas, pois estes são empacotados como os instaladores nativos, não como arquivos .air. Para alterar certificados para um aplicativo AIR para desktop que inclua uma extensão nativa, empacote o aplicativo usando o Comando package do ADT com o sinalizador -migrate.

Alterações de identidade de aplicativo

Antes do AIR 1.5.3, a identidade de um aplicativo do AIR era alterada quando uma atualização assinada com uma assinatura de migração era instalada. A alteração da identidade de um aplicativo possui diversas implicações, incluindo:

  • A nova versão do aplicativo não pode acessar dados no armazenamento local criptografado existente.

  • O local do diretório de armazenamento do aplicativo é alterado. Os dados no local antigo não são copiados para o novo diretório. (Mas o novo aplicativo pode localizar o diretório original com base no ID do editor antigo).

  • O aplicativo não pode mais abrir conexões locais usando o ID do editor antigo.

  • A sequência de caracteres de identidade utilizada para acessar o aplicativo a partir de uma página da web era alterada.

  • O OSID do aplicativo era alterado. (O OSID é utilizado durante o desenvolvimento de programas personalizados de instalação/desinstalação).

Ao publicar uma atualização do AIR 1.5.3 ou posterior, a identidade do aplicativo não pode ser alterada. Os ID de editor e o aplicativo original devem ser especificados no descritor do aplicativo o arquivo AIR de atualização. De outra forma, o novo pacote não é reconhecido como uma atualização.

Nota: Ao publicar um novo aplicativo do AIR com o AIR 1.5.3 ou superior, você não deve especificar um ID do editor.

Terminologia

Esta seção fornece um glossário de um pouco da terminologia principal que você deve entender ao tomar decisões sobre como assinar seu aplicativo para distribuição pública.

Termo

Descrição

Autoridade de certificação (CA)

Uma entidade em uma rede de infraestrutura de chave pública que serve como um terceiro confiável e, por último, certifica a identidade do proprietário de uma chave pública. Uma CA normalmente emite certificados digitais, assinados por sua própria chave privada, para atestar que ela verificou a identidade do proprietário do certificado.

Declaração de Prática de Certificação (CPS)

Apresenta as práticas e políticas da autoridade de certificação em emitir e verificar certificados. A CPS é parte do contrato entre a CA e seus assinantes e terceiros. Ela também resume as políticas para verificação de identidade e o nível de garantias oferecidas pelos certificados que elas fornecem.

Lista de revogação de certificado (CRL)

Uma lista de certificados emitidos que foram revogados e nos quais não se deve mais confiar. O AIR verifica o CRL no momento em que um aplicativo do AIR é assinado e, se nenhum carimbo de data/hora estiver presente, novamente quando o aplicativo for instalado.

Cadeia de certificados

Uma cadeia de certificados é uma sequência de certificados na qual cada certificado da cadeia foi assinado pelo certificado seguinte.

Certificado digital

Um documento digital que contém informações sobre a identidade do proprietário, a chave pública do proprietário e a identidade do certificado em si. Um certificado emitido por uma autoridade de certificação é em si assinado por um certificado que pertence à CA emissora.

Assinatura digital

Uma mensagem criptografada ou uma compilação que pode apenas ser descriptografada com metade da chave pública de um par de chave pública-privada. Em uma PKI, uma assinatura digital contém um ou mais certificados digitais rastreáveis, por último, para a autoridade de certificação. Uma assinatura digital pode ser usada para validar que uma mensagem (ou arquivo do computador) não foi alterada desde que ela foi assinada (nos limites da garantia fornecida pelo algoritmo criptográfico usado) e, supondo que alguém confia na autoridade de certificação emissora, a identidade do signatário.

Armazenamento de chave

Um banco de dados contendo certificados digitais e, em alguns casos, as chaves privadas relacionadas.

JCA (arquitetura de criptografia Java)

Uma arquitetura extensível para gerenciar e acessar armazenamentos de chaves. Consulte o Guia de referência da arquitetura de criptografia Java para obter mais informações.

PKCS n º 11

O padrão de interface de token criptográfico da RSA Laboratories. Um armazenamento de chave baseado em token de hardware.

PKCS n º 12

O padrão de sintaxe do Exchange de informações pessoais da RSA Laboratories. Um armazenamento de chave baseado em arquivo que normalmente contém uma chave privada e seu certificado digital associado.

Chave privada

A metade privada de um sistema criptográfico assimétrico de chave pública-privada de duas partes. A chave privada deve ser mantida em segredo e nunca deve ser transmitida pela rede. Mensagens assinadas digitalmente são criptografadas com a chave privada pelo signatário.

Chave pública

A metade pública de um sistema criptográfico assimétrico de chave pública-privada de duas partes. A chave pública está abertamente disponível e é usada para descriptografar mensagens criptografadas com a chave privada.

Infraestrutura de chave pública (PKI)

Um sistema de confiança no qual as autoridades de certificação atestam para a identidade dos proprietários de chaves públicas. Clientes da rede confiam nos certificados digitais emitidos por uma CA confiável para verificar a identidade do signatário de uma mensagem digital (ou arquivo).

Carimbo de data/hora

Um dado assinado digitalmente contendo a data e hora em que um evento ocorreu. O ADT pode incluir um carimbo de data/hora de um servidor compatível com hora RFC 3161 em um pacote do AIR. Quando presente, o AIR usa o carimbo de data/hora para estabelecer a validade de um certificado no momento da assinatura. Isso permite que um aplicativo do AIR seja instalado após seu certificado de assinatura ter expirado.

Autoridade de carimbo de data/hora

Uma autoridade que emite carimbos de data/hora. Para ser reconhecido pelo AIR, o carimbo de data/hora deve estar em conformidade com RFC 3161 e a assinatura de carimbo de data/hora deve ser vinculada a um certificado raiz confiável na máquina de instalação.

Certificados do iOS

Os certificados de assinatura de código emitidos pela Apple são usados para aplicações de assinatura do iOS, incluindo aqueles desenvolvidos com o Adobe AIR. É necessária a aplicação de uma assinatura com um certificado de desenvolvimento da Apple para instalar uma aplicação em dispositivos de teste. É necessária a aplicação de uma assinatura com um certificado de distribuição para distribuir o aplicativo concluído.

Para assinar um aplicativo, o ADT requer acesso ao certificado de assinatura do código e à chave privada associada. O arquivo de certificado, por si só, não inclui a chave privada Você deve criar um armazenamento de chave sob a forma de arquivo .P12 ou .pfx (Personal Information Exchange) que contém o certificado e a chave privada. Consulte Converter um certificado de desenvolvedor em um arquivo de armazenamento de chave P12.

Gerar uma solicitação de assinatura de certificado

Para obter um certificado de desenvolvedor gere um arquivo de solicitação de assinatura de certificado, que será enviado para o Portal de aprovisionamento Apple iOS.

O processo de solicitação de assinatura de certificado gera um par de chaves pública-privada. A chave privada permanece no seu computador. Você envia a solicitação de assinatura que contém a chave pública e seus dados de identificação para a Apple, que atua no papel de autoridade de certificação. A Apple assina o certificado com seu próprio certificado WWDR (World Wide Developer Relations).

Gerar a solicitação de assinatura de certificado no Mac OS

No Mac OS, é possível utilizar o aplicativo Acesso Porta-chaves para gerar uma solicitação de assinatura de código. O aplicativo Acesso ao Porta-chaves está no subdiretório "Utilitários" do diretório "Aplicações". As instruções para gerar a solicitação de assinatura de certificado estão disponíveis no Portal de aprovisionamento Apple iOS.

Gerar a solicitação de assinatura de certificado no Windows

Para desenvolvedores do Windows, talvez seja mais fácil obter o certificado de desenvolvedor de iPhone em um computador Mac. No entanto, é possível obter o certificado em um computador Windows. Primeiro, crie o arquivo CSR (Certificate Signing Request) usando o OpenSSL:

  1. Instale o OpenSSL em seu computador Windows. (Vá para http://www.openssl.org/related/binaries.html).

    Você deve instalar os arquivos do Visual C++ 2008 Redistributable, indicados na página de download do Open SSL. (A instalação do Visual C++ no computador não é necessária).

  2. Abra a sessão de comandos do Windows e CD para o diretório OpenSSL bin (por exemplo, c:\OpenSSL\bin\).

  3. Crie a chave particular digitando as informações abaixo na linha de comando:

    openssl genrsa -out mykey.key 2048

    Salve o arquivo de chave particular. O arquivo será utilizado posteriormente.

    Não ignore as mensagens de erro ao utilizar o OpenSSL. Mesmo que o OpenSSL gere uma mensagem de erro, ele ainda pode gerar os arquivos. No entanto, estes arquivos podem não ser utilizáveis. Se ocorrerem erros, verifique a sintaxe e execute o comando novamente.

  4. Crie o arquivo CSR digitando as informações abaixo na linha de comando:

    openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest  -subj "/emailAddress=yourAddress@example.com, CN=John Doe, C=US"

    Substitua os valores de endereço de email, CN (nome de certificado) e C (país) pelos seus valores.

  5. Faça o upload do arquivo CSR para a Apple no site de desenvolvedor iPhone. (Consulte “Registrar-se para obter um certificado de desenvolvedor iPhone e criar um arquivo de aprovisionamento”.)

Converter um certificado de desenvolvedor em um arquivo de armazenamento de chave P12

Para criar um armazenamento de chave P12, você deve combinar o seu certificado de desenvolvedor da Apple e a chave privada associada em um único arquivo. O processo para criar o arquivo de armazenamento de chave depende do método usado para gerar a solicitação de assinatura do certificado original e onde a chave privada é armazenada.

Convertendo o certificado de desenvolvedor de iPhone em um arquivo P12 no Mac OS

Após baixar o certificado da Apple iPhone, exporte-o para o formato de armazenamento de chave P12. Para executar isso no Mac® OS:

  1. Abra o aplicativo Acesso ao Porta-chaves (na pasta "Aplicações/Utilitários").

  2. Se ainda não adicionou o certificado às Chaves, selecione Ficheiro > Importar elementos... Navegue até o diretório do arquivo de certificado (arquivo .cer) obtido da Apple.

  3. Selecione a categoria "Chaves" no Acesso ao Porta-chaves.

  4. Selecione a chave particular associada ao seu certificado de desenvolvimento de iPhone.

    O desenvolvedor de iPhone identifica a chave particular: Certificado público <nome> <sobrenome> com o qual coincide.

  5. Clique com a tecla Command no certificado de desenvolvedor do iPhone e selecione Exportar "iPhone Developer: Name...".

  6. Salve o armazenamento de chave no formato de arquivo .p12 (Personal Information Exchange).

  7. Será solicitado que você crie uma senha usada ao utilizar o armazenamento de chave para assinar aplicativos ou para transferir a chave e o certificado neste armazenamento de chave para outro.

Converter um certificado de desenvolvedor da Apple em um arquivo P12 no Windows

Para desenvolver aplicativos AIR for iOS, você deve usar um arquivo de certificado P12. Crie esse certificado com base no arquivo de certificado de desenvolvedor de iPhone da Apple que você recebe da Apple.

  1. Converta o arquivo de certificado de desenvolvedor que recebe da Apple em um arquivo de certificado PEM. Digite o seguinte comando na linha de comando do diretório "bin" do OpenSSL:

    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
  2. Se estiver usando a chave particular de um keychain em um computador Mac, converta-a em uma chave PEM.

    openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
  3. É possível criar um arquivo P12 válido, com base na chave e na versão PEM do certificado de desenvolvedor de iPhone:

    openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

    Se estiver usando a chave do Mac OS Keychain, use a versão PEM que criou na etapa anterior. Do contrário, use a chave do OpenSSL que criou anteriormente (no Windows).