Instalando um certificado SSL no Tomcat (Windows)  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
rdbarbosa
Smalltalk

Membro desde: 13/07/2007 09:49:25
Mensagens: 1
Offline

1. Para adquirir um certificado SSL é necessário gerar uma requisição da assinatura do certificado (CSR - Certificate Signing Request) que é um arquivo criptografado que contém a chave pública, nome, localidade e URL (endereço Web) de sua organização. Na criação de um CSR deverá ser informado um arquivo inexistente em um caminho válido, este arquivo é o Keystore e o CSR é o inicio do Keystore. Para gerar o CSR utilize a ferramenta Keytool do SDK localizada em C:\Program Files\Java\jdk1.5.0_02\bin

Exemplo:
========

Comando
-------
keytool -genkey -alias certificado -keyalg RSA -keystore C:\Certificado\Keystore\definaonome.kdb

Preenchimento dos dados
-----------------------
What is your first and last name? *This is the Common Name Field - The Fully Qualified Domain Name MUST be entered here*
[Unknown]: www.dominio.com.br
What is the name of your organizational unit?
[Global Sign]: Razão da Empresa
What is the name of your organization?
[Global Sign]: Razão da Empresa
What is the name of your City or Locality?
[London]: Cidade
What is the name of your State or Province?
[London]: Estado
What is the two-letter country code for this unit?
[GB]: País

Notas
-----

* Lembrando que o caminho para o Keystore C:\Certificado\Keystore é válido e o arquivo definaonome.kdb não existe e será gerado com o CSR após a execução do comando.

* Fazer imediatamente um backup do arquivo C:\Certificado\Keystore\definaonome.kdb, pois o certificado será gerado para apenas essa chave plública e no caso de perda do arquivo ocassionando uma nova geração.

* Na criação do Keystore é solicitado a criação de uma senha, a mesma será utilizada durante todo o processo de implatação do certificado, portando guarde a senha para uma futura consulta.

* No comando é utilizado o parâmetro -alias certificado, quando receber o certificado da certificadora, o certificado deverá ser importado para o alias certificado.

2. A requisição foi gerada dentro do keystore informado, agora é o hora de gerar o arquivo CSR com os dados da requisição que está no keystore. O arquivo será utilizado para efetuar o pedido do certificado juntamente com a certificadora. Algumas certificadoras possibilitam a inclução direta do arquivo na solicitação on-line do certificado e outras disponibilizam um campo para ser incluído o conteúdo do arquivo csr gerado, o conteúdo completo desde -----BEGIN NEW CERTIFICATE REQUEST----- até -----END NEW CERTIFICATE REQUEST-----

Exemplo:
========

Comando
-------
keytool -certreq -keyalg RSA -alias certificado -file C:\Certificado\Keystore\definaonome.csr -keystore C:\Certificado\Keystore\nomedefinidonocomando1.kdb

Notas
-----

* No comando é utilizado o parâmetro -alias certificado, este alias obviamente tem que ser o mesmo alias utilizado no comando do passo 1.

* O caminho para o .csr C:\Certificado\Keystore é válido e o arquivo definaonome.csr não existe e será gerado com após a execução do comando.

* A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando do passo 1.

3. Efetuar o pedido online do certificado juntamente com a certificadora seguindo as instruções do próprio site.

4. Todo certificado SSL segue uma estrutura, uma sequência, que se resume em gerado para e gerado por. Exemplo, o certificado gerado para www.dominio.com.br foi gerado por Certificadora Intermediario e o certificado gerado para Certificadora Intermediario foi gerado por Certificadora Root, portanto para o funcionamento do seu certificado é necessário instalar (importar para o keystore) todos os certificados que fazem parte da estrutura, também conhecidos como raizes do certificado. Obviamente que cada certificadora segue uma estrutura diferente. Para você identificar a estrutura correta do seu certificado (.cer - formato texto) abra o seu certificado (dois cliques), na aba detalhes (mostrar tudo), localize o campo assunto (subject); neste campo estão as informações gerado para, localize o campo emissor (Issuer); neste campo estão as informações gerado por; sendo assim até chegar ao certificado root da certificadora. Enquanto você aguarda da certificadora a validação do seu CSR e a geração do seu certificado podemos ir instalando (importando) as raizes do certificado.

Exemplo:
========

Comandos
--------

keytool -import -keystore C:\Certificado\Keystore\nomedefinidonocomando1.kdb -alias Root -trustcacerts -file C:\Certificado\Certificadora\root.cer

keytool -import -keystore C:\Certificado\Keystore\nomedefinidonocomando1.kdb -alias Primary -trustcacerts -file C:\Certificado\Certificadora\intermediario.cer

Notas
-----

* Sempre começar pelo root, e depois ir seguindo a sequência.

* Os certificados raízes estão disponíveis no site das certificadoras.

* Os certificados raízes deverão ser importados para o keystore gerado no comando do passo 1.

* A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando do passo 1.

* Cada certificado raiz é importado para um alias diferente.

5. O seu certificado pode ser enviado de diversas formas pela certificadora, algumas enviam o arquivo .cer .pem .crt e outras encaminham no corpo do e-mail. Para os casos dos arquivos é só salvar o arquivo e instalar (importar), para os casos que o certificado está no corpo do e-mail basta copiar o conteúdo desde -----BEGIN CERTIFICATE----- até -----END CERTIFICATE----- e através do notepad salvar um arquivo com este conteúdo no formato .cer .crt .pem. Com o certificado em mãos é hora de instalar (importar) para o mesmo keystore gerado no comando do passo 1 e para o mesmo alias utilizado no comando do passo 1.

Exemplo:
========

Comando
-------
keytool -import -trustcacerts -keystore C:\Certificado\Keystore\nomedefinidonocomando1.kdb -alias certificado -file C:\Certificado\Certificadora\meucertificado.cer

Notas
-----

* A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando do passo 1.

* No comando é utilizado o parâmetro -alias certificado, o certificado deverá ser importado para o alias utilizado na criação do CSR no comando do passo 1.


6. É interessante visualizar os certificados instalados (importados) no keystore, para conferir o sucesso da instalação.

Exemplo:
========

Comando
-------
keytool -list -keystore C:\Certificado\Keystore\nomedefinidonocomando1.kdb -v > C:\Certificado\list.txt

Keystore type: jks
Keystore provider: SUN

Your keystore contains 3 entries

Alias name: client
Creation date: 12/07/2007
Entry type: keyEntry
Certificate chain length: 3

*******************************************
*******************************************


Alias name: root
Creation date: 12/07/2007
Entry type: trustedCertEntry

*******************************************
*******************************************


Alias name: primary
Creation date: 12/07/2007
Entry type: trustedCertEntry

*******************************************
*******************************************



Notas
-----

* O caminho de saída do comando é válido e o arquivo list.txt não existe e será gerado após a execução do comando.

* A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando do passo 1.



7. Após a devida instalação (importação) do certificado e suas raízes para o keystore é hora de configurar o keystore no Tomcat e habilitar o conector SSL.

Exemplo:
========

Configuração
------------

Editar o arquivo C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml
Excluir o trecho abaixo
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->

Incluir o trecho abaixo
<!-- Define a blocking Java SSL Coyote HTTP/1.1 Connector on port 443 -->
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:\Certificado\Keystore\nomedefinidonocomando1.kdb" keystorePass="senhadokeystore"
clientAuth="false" sslProtocol="TLS"/>

Alterar tudo que for 8443 para 443, ctrl + h
Salvar e iniciar o servico do tomcat

Notas
-----

* keystoreFile="C:\Certificado\Keystore\nomedefinidonocomando1.kdb" é o caminho do keystore gerado no comando do passo 1.

* keystorePass="senhadokeystore" é a senha do keystore que foi cadastrada no comando do passo 1.

* O Tomcat disponibiliza uma documentação em http://localhost/docs/ssl-howto.html ou http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html, fique atento as instruções pois há uma pegadinha ou um erro na documentação. Na documentação o exemplo é:

<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="/usr/local/ssl/server.crt"
SSLCertificateKeyFile="/usr/local/ssl/server.pem"
clientAuth="false" sslProtocol="TLS"/>
-->

Mas existem duas coisas que não estão claras



<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
A inclusão dessa linha no server.xml não irá funcionar, pois a mesma está comentada de maneira incorreta o certo é:
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->


<!--
<Connector

clientAuth="false" sslProtocol="TLS"/>
-->

A criação do conector está comentada, ou seja não irá funcionar.

Renato Bizzarri
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 16366
Localização: SP
Offline

Sr. Renato...

Só perguntando, porque o post é muito comprido e não o li direito.

Você está precisando de ajuda (você seguiu o tutorial mas teve algum problema), ou então está dizendo que o tutorial tem algum erro e está comentando sobre os problemas?
[WWW]
cado
JavaGuru
[Avatar]

Membro desde: 28/06/2006 09:54:37
Mensagens: 264
Localização: Curitiba
Offline

thingol wrote:Sr. Renato...

Só perguntando, porque o post é muito comprido e não o li direito.

Você está precisando de ajuda (você seguiu o tutorial mas teve algum problema), ou então está dizendo que o tutorial tem algum erro e está comentando sobre os problemas?


po thingol, nao seria interessante ler o post dele e depois comentar??

Ele fez um mini-tutorial de como fazer para instalar um certificado ssl no windows.
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 16366
Localização: SP
Offline

É que ele não tinha sido muito claro.
Uma vez eu vi um tutorial sobre instalação de certificados no Tomcat, pensei que ele tinha feito um "paste" desse tutorial, e posto um comentário em cima.
Mas na verdade ele estava dizendo que a documentação original do Tomcat está com erros.

[WWW]
cado
JavaGuru
[Avatar]

Membro desde: 28/06/2006 09:54:37
Mensagens: 264
Localização: Curitiba
Offline

thingol wrote:É que ele não tinha sido muito claro.
Uma vez eu vi um tutorial sobre instalação de certificados no Tomcat, pensei que ele tinha feito um "paste" desse tutorial, e posto um comentário em cima.
Mas na verdade ele estava dizendo que a documentação original do Tomcat está com erros.





É q ultimamente o pessoal anda estressado aqui sabe e me surpreendi quendo vi q era vc que tinha falado aquilo.

Gobain
JavaTeenager
[Avatar]

Membro desde: 27/06/2007 13:10:28
Mensagens: 151
Localização: Curitiba
Offline

E então pessoal,

To tentando seguir esse how-to aqui, mas cheguei nesse erro... alguma idéia?


[WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team