segunda-feira, 1 de junho de 2015

Certificado Digital: Opção de exportar chave privada desabilitada

Em alguns casos quando precisamos exportar o certificado digital já instalado em um computador/servidor para posterior instalação em outro dispositivo, podemos nos deparar com a situação da imagem abaixo:

O problema aqui é que ao tentarmos exportar o certificado digital, a opção de exportar a chave privada não está acessível.




Isso ocorre porque no momento em que o certificado foi importado, a opção "Mark this key as exportable. This will allow you to back up or transport your keys at a later time" não foi habilitada.

Essa opção basicamente permite que depois de instalado, o certificado possa ser exportado como forma de backup ou para ser instalado em outros dispositivos. A imagem abaixo mostra a opção habilitada, o que nesse caso permite a exportação futura desse certificado.



Blz! Mas afinal, como podemos fazer para exportar o certificado juntamente com sua chave privada, já que a opção de exportar chave privada não está disponível ???

Para isso vamos utilizar uma ferramenta chamada Jailbreak. Estou disponibilizando a ferramenta para download no link: https://mega.co.nz/#!lZty1LSL!8LEw5uV117inU-d8nXSFzHwOUgBnKA5TeTVsyi3ZN9w

Jailbreak é uma ferramenta para exportar certificados marcados como não-exportável na console de certificados no MMC do Windows. 

Bem, vamos colocar a mão na massa:

1) Depois de realizar o download, descompacte a pasta em um local de sua preferencia, em nosso exemplo extraímos na unidade C:\

2) No computador onde o certificado já está instalado, abra um prompt de comando como administrador, entre no diretório do Jailbreak e rode os comandos abaixo:


jbstore -l  
Obs.: Nesse comando utilizamos o parâmetro -l (é a letra e não o numero um)


O comando acima, irá listar todos os certificados já instalados no computador. Em nosso caso só existe um certificado instalado que é o MEUCERTIFICADO.

Não vou entrar em detalhes de certificados, mas quando instalamos um certificado no Windows, podemos instalar o mesmo como conta de usuário ou como conta de computador. Em nosso exemplo, estamos utilizando o modo conta de usuário, que é o padrão do Jailbreak.

Em cenários em que o certificado está instalado em modo conta de computador, devemos rodar o comando abaixo, que basicamente passa o parâmetro -s "SYSTEM" (o -s é de storage)

jbstore -l -s "SYSTEM" 


3) Depois de listar o nome do certificado, agora devemos rodar o comando abaixo para exportar o certificado já com sua chave privada incorporada.


jbstore -1 -n "Nome_do_seu_certificado"
Obs 1.: Diferente do comando de listar, aqui utilizamos o parâmetro -1 (numero um) 
Obs 2.: O nome do certificado deve ser exatamente como o o nome listado no comando anterior


Para certificados instalados na conta de computador, rodar o comando abaixo:
jbstore -1 -s "SYSTEM" -n "Nome_do_seu_certificado"

Depois de executado, o comando irá salvar automaticamente um novo certificado junto com a chave privada no diretório do Jailbreak com o nome de out.pfx como mostrado a imagem abaixo:

Além disso, por padrão o Jailbreak cria uma senha para futuras importações desse certificado. Essa senha padrão é "password"



Feito isso, é só você renomear o certificado out.pfx para um nome de sua preferencia e pronto!!! 
O certificado estará disponível para ser importado com chave privada em um novo dispositivo.

Abraços!