Esse procedimento foi testado para Windows XP e Windows Server 2003
1 - Faça o Download do OpenSSL
Link para download : Win32 OpenSSL v1.0.1cTalvez precise instalar o Virtual C++ que está disponível na mesma página do link.
2 - Crie seu próprio certificado para assinatura
No prompt de comando do windows acesse o diretório onde foi instalado o OpenSSL, no meu caso é C:\OpenSSL-Win32\Bin\ e execute o opensslDigite os seguintes comandos:
Crie uma chave privada
genrsa -des3 -out C:\Cert\CA.key 1024
* Precisará determinar uma senha.
** O OpenSSL irá gerar um arquivo CA.key, para segurança configuer-o como "somente leitura". Crie ocertificado de sua chave privada
req -new -key C:\Cert\CA.key -x509 -days 365 -out C:\Cert\CA.crt
* O OpenSSL irá pedir a senha da chave privada.
** Insira as informações que o OpenSSL requisitar: País, Estado, Cidade, Empresa, etc. Simule as informações como se fosse uma empresa certificadora.
*** Defina o arquivo CA.crt como somente leitura.3 - Obtenha a solicitação de assinatura de certificado no IIS
- No IIS clique com o botão direito no site que deseja certificar e selecione "propriedades".
- Depois selecione a guia "Segurança de diretório" e clique no botão "Certificado de servidor".
- Selecione a opção "Criar novo certificado" e clique no botão "Avançar".
Criando solicitação |
- Selecione a opção "Preparar a solicitação agora, mas enviá-la posteriormente". Clique em "Avançar".
- No campo "Nome", digite um nome auto-explicativo para facilitar a identificação do certificado.
- No campo "Comprimento de bit" deixe como está (1024). Clique em "Avançar".
- Preencha os dados conforme pede o assistente e avance novamente.
- No Campo "Nome comum" preencha com a URL do site que deseja certificar. exemplo: dominio.com.br
- Na próxima etapa preencha os campos de informações de localização: País, Estado e cidade. Clique em "Avançar".
- Na póxima etapa salve o arquivo em C:\Cert\certreq.csr
- Depois é só avançar e concluir.
4 - Assinar o certificado solicitado
Volte para o prompt de comando do Windows, e digite a seguinte linha no OpenSSL:
x509 -req -days 365 -in C:\Cert\certreq.csr -CA C:\CertCA.crt -CAkey C:\Cert\CA.key -CAcreateserial -out C:\Cert\assinado.crt
* O OpenSSL gera um arquivo assinado que será usado para instalar no IIS.
** 365 é a quantidade de dias para validade do certificado.5 - Instale o certificado no IIS
- No IIS clique com o botão direito no site que deseja certificar e selecione "propriedades".
- Depois selecione a guia "Segurança de diretório" e clique no botão "Certificado de servidor".
- Selecione a opção "Processar a solicitação pendente e instalar o certificado" e Avance.
Salvando solicitação |
- Clique em procurar para localizar seu certificado assinado. Caso ele venha com o filtro *.cer como padrão, retire o filtro e coleque "Todos os Arquivos (*.*)" para selecionar seu certificado assinado com extensão *.crt
- Avace e conclua a instalação do certificado.
6 - Atribua Conexão segura ao site
- No IIS clique com o botão direito no site que deseja certificar e selecione "propriedades".
- Depois selecione a guia "Segurança de diretório" e clique no botão "Editar".
Atribuindo conexão segura |
- Deixe selecionado a opção "Exigir canal seguro (SSL)".
Exigir canal seguro (SSL) |
Obs.: Você pode exigir canal seguro em apenas sub-diretórios, exemplo: dominio.com/admin/
Para isso basta criar um diretório virtual chamado "admin" dentro do site, e nas propriedades dele repetir o passo acima.
Apartir daí só poderá conectar em dominio.com.br/admin/ usando o protocolo https. Assim: https://dominio.com.br/admin/
Aviso!
Todos os certificados auto-assinados não são reconhecidos pelos navegadores, deste modo para obter um certificado reconhecido é necessário enviar o seu arquivo *.csr para ser assinado por um Autoridade Certificadora.
Alguns certificadores:
http://www.validcertificadora.com.br/
http://www.laniway.com.br/br/corporativo/certificado.do
http://www.webplace.com.br/ssl/
http://www.verisign.com.br/
http://www.digicert.com/
Vantagens do certificado auto-assinado
- Sua conexão será devidamente criptografada garantindo a segurança dos dados na conexão com o servidor. (Gratuito)
Desvantagens do certificado auto-assinado
- Toda vez que o cliente (usuário) acessar uma de suas páginas seguras o navegador do cliente avisará que o certificado digital dele não foi assinado por uma entidade competente.