Utilizando Certificados Digitais com OpenSSL e IIS no Windows

Bom Pessoal , Neste tutorial iremos tratar a utilização do OpenSSL como Autoridade Certificadora no Windows, tendo como base a utilização de um pacote de Scripts que serão configurados para atender nossas necessidades nesta implementação.

Link para Download dos Scripts e Pacote de Instalação:
O Arquivo está com senha, digite a senha: exemplo para descompactar o arquivo.
http://sdrv.ms/LBiFJy

Pré-Requisitos:

Instalar o Software para Suportar a Geração de Certificados Digitais, conforme sequencia abaixo.

1. Instalar o Pacote (vcredist_x86.exe).

2. Instalar o Pacote do OpenSSL(Win32OpenSSL-1_0_1c.exe).
clip_image002

Após instalação dos pré-requisitos , reinicie o sistema para que no próximo boot as dll´s do OpenSSL possam ser carregadas junto com o sistema e suas variáveis de ambiente estejam acessíveis.

1. Ordem de Configuração dos Arquivos:

1.1 init.cmd
1.2 0_CASetup_Pre-reqs.cmd
1.3 1_CASetup.cmd
1.4 CreateAllPurpose-NoCodeSigning.cmd
1.5 CreateCodeSigning.cmd
1.6 CreateSSLCert.cmd
1.7 CreateSSLCertWebIIS.cmd
1.8 Openssl.cfg

clip_image004

Para Configurar os arquivos de configuração , terá que ser alterado a linha que possui o argumento abaixo , conforme o nome da sua CA.

SET CANAME=Exemplo

Substitua o nome “Exemplo” pelo nome da sua CA.

clip_image005

Configurando o Openssl.cfg:

clip_image006

clip_image007

clip_image008

clip_image009

clip_image010

Obs: Altere as informações acima conforme a configuração da sua CA.

2. Ordem de execução , para gerar CA(Certificate Authority, traduzindo Autoridade Certificadora).

2.1 Execute no Prompt de comando: 0_CASetup_Pre-reqs.cmd

clip_image011

Obs: Após gerar os pré-requisitos para utilização da CA, copie o arquivo que foi configurado com as informações da sua CA. no caso o “openssl.cfg”.

2.2 Execute no Prompt de comando: 1_CASetup.cmd
clip_image013

Depois que copiar o arquivo para a Pasta da sua entidade certificadora gerada pelo primeiro script, verifique se ela foi criada em “C:\OpenSSL-Win32\bin”.

Quando executar o 1_CASetup.cmd , irá solicitar a senha e a confirmação da senha.

3. Processo de Gerar Certificado de requisição SSL no IIS e assinar certificado pelo OpenSSL.

Pré-requisito:

– todo certificado gerado para um site tem que possuir um domínio qualificado(fqdn), para evitar a invalidação da cadeia de certificado para o site.

3.1 no Console do IIS Manager(inetmgr) em Server Certificates.

3.2 Assinar Requisição Gerada e importar o certificado assinado.

clip_image015

clip_image017

clip_image018

clip_image019

clip_image021

clip_image022

clip_image024

clip_image026

clip_image027

clip_image029

clip_image031

clip_image032

clip_image034

4. Processo de Gerar Certificado de requisição SSL para servidor web no OpenSSL e assina-lo com o OpenSSL.

Pré-requisito:

– todo certificado gerado para um site tem que possuir um domínio qualificado(fqdn), para evitar a invalidação da cadeia de certificado para o site.

4.1 Assinar Requisição Gerada e importar o certificado assinado.

clip_image036

4.2 Importar Certificado digital gerado somente pelo OpenSSL no IIS.

clip_image038

clip_image039

clip_image041

clip_image042

clip_image044

5. Fazendo a Importação da Cadeia de Certificado Raiz da CA gerada, no caso de invalidação do certificado digital no browser.

5.1 Abrir o Console MMC no Windows, adicionar o Snap-in dos Certificados digitais referente ao Computador local.

clip_image046

clip_image048

clip_image050

clip_image051

clip_image053

clip_image055

clip_image057

clip_image059

clip_image060

clip_image061

clip_image062

clip_image063

clip_image064

clip_image066

6. Após a importação da Chave da Autoridade Certificadora os sites serão validados no browser:

clip_image068

image

Abaixo , Link do video de implementação do Post:
http://www.youtube.com/watch?v=_sKHv5hwyuA

Fontes:
http://www.mail-archive.com/[email protected]/msg31923.html
http://www.dylanbeattie.net/docs/openssl_iis_ssl_howto.html
http://silkspun.com/2012/02/29/an-openssl-ca-on-windows/

  • Ivan

    Com essa mesma ferramenta é possível fazer uma requisição de certificado de usuário, como se fosse um e-cpf que é solicitado quando entramos numa página que exige certificado pra identificar o usuário?

    • Ivan,
      Sim você pode utilizar o Openssl para essa finalidade. Pois é através dele que criamos nossa unidade certificadora e isso nos possibilita criar certificados com varias finalidades e uma delas é o exemplo deste post utilizando certificados ssl para websites.

  • Claudio

    Emerson, é possível usar esta certificação para NFe (nota fiscal eletrônica), substituindo as certificadoras A1 e A3?

    • Não é possivel, pois isso iria necessitar a validação do seu certificado numa entidade certificadora válida, como o serpro, serasa e outros. A ideia de utilizar certificados digitais com openssl é para facilitar o gerenciamento de certificados para sites web e para utilização de servidores de vpn que utilizar certificados digitais como metodo de autenticação, facilitando o gerenciamento de identidade e garantindo a segurança a informação.

      Att,
      Emerson

  • Quando o cliente acessar meu site com https ele não verá a notificação do navegador de que o certificado não é verificado?
    Posso usar esse certificado pra assinar meus aplicativos exe?

  • judivan

    A senha para descompactar os arquivos ?