Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Configurando o Acesso Seguro no Tomcat

Configurando o Acesso Seguro no Tomcat



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Implementar o acesso seguro via SSL no Tomcat (o acesso https, ou http seguro) é simples. Para isso, é necessário a criação de um certificado (que pode ser validado por uma entidade certificadora ou não) e a habilitação do certificado no Tomcat.

Siga os passos abaixo:


1. Vamos criar um certificado de nome tomcat no keystore localizado em /etc/.keystore-tomcat, usando o algoritmo RSA e com validade de 1 ano (365 dias). Altere o comando caso necessário para definir outros locais ou validades.

$ keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/.keystore-tomcat -validity 365

O keytool irá fazer algumas perguntas para criar o certificado. São elas:

  • a senha do keystore (escolha uma à seu gosto, mas deverá ser a mesma senha do certificado, mais adiante, e deverá ser escrita no server.xml)
  • o endereço do site (ele pergunta primeiro e ultimo nome, mas é para botar o endereço do site)
  • unidade organizacional (qualquer coisa)
  • nome da empresa
  • cidade
  • estado
  • país (apenas 2 letras, como em BR)
  • em seguida será pedida uma confirmação dos dados
  • por fim pedirá a senha do certificado tomcat, tecle Enter para que seja igual à senha do keystore

Eis um exemplo de configuração:

$ keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/.keystore-tomcat -validity 365
Enter keystore password:  SUA_SENHA
What is your first and last name?
[Unknown]:  SEU_SERVIDOR.SEU_DOMINIO
What is the name of your organizational unit?
[Unknown]: SEU_SERVIDOR
What is the name of your organization?
[Unknown]:  NOME_DA_SUA_EMPRESA
What is the name of your City or Locality?
[Unknown]:  Rio de Janeiro
What is the name of your State or Province?
[Unknown]:  RJ
What is the two-letter country code for this unit?
[Unknown]:  BR
Is CN=SEU_SERVIDOR.SEU_DOMINIO, OU=SEU_SERVIDOR, O=NOME_DA_SUA_EMPRESA, L=Rio de Janeiro, ST=RJ, C=BR correct?
[no]:  yes

Enter key password for
(RETURN if same as keystore password):

2. Caso não deseje registrar o certificado oficialmente, ou seja, que ele seja assinado digitalmente por uma autoridade certificadora, pule para o passo 3.

2.1 Primeiro criamos um pedido de assinatura de certificado (CSR, Certificate Signing Request) para a CA (Certificate Authority):

$ keytool -certreq -keystore /etc/.keystore-tomcat -alias tomcat -file riopro-tomcat.csr

2.2 Agora devemos enviar o arquivo criado, riopro-tomcat.csr, para a CA. Veja com a CA escolhida como fazer isso.

2.3 A CA responderá enviando 2 arquivos:

  • Um arquivo *.der, contendo a chave pública da CA
  • Um arquivo *.pem, contendo a o nosso certificado assinado com a chave privada da CA

Devemos então importar estes 2 arquivos para o nosso keystore. É importante executar os 2 comandos abaixo na ordem mostrada.

$ keytool -import -alias  -file .der -keystore /etc/.keystore-tomcat
$ keytool -import -alias  -file .pem -keystore /etc/.keystore-tomcat

3. Devemos agora exportar o certificado à ser usado pelo Tomcat (o certificado de alias tomcat ou o certificado assinado pela CA, substitua se for o caso).

$ keytool -export -keystore /etc/.keystore-tomcat -alias tomcat -file /export_keystore-tomcat.cer

4. Agora devemos importar o certificado que exportamos para o keystore do Java. A senha do keystore do Java é por default changeit.

$ keytool -import -alias tomcat -file /export_keystore-tomcat.cer -keystore $JAVA_HOME/jre/lib/security/cacerts

PS.: caso só esteja instalado na máquia o JRE, o keystore do Java estará então em $JAVA_HOME/lib/security/cacerts
5. Por fim, devemos editar o arquivo de configuração do Tomcat em $TOMCAT_HOME/conf/server.xml, e habilitar o conector HTTPS na porta 8443 (ou você pode mudar para qualquer porta. Seguindo o exemplo:

< Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" debug="0" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreType="JKS" keystoreFile="/etc/.keystore-tomcat" keystorePass="SUA_SENHA" />

Você pode comentar a parte sobre o conector HTTP se quiser, limitando o acesso à forma HTTPS.

6. Reinicie o Tomcat.

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Inicialização de serviços no Linux - parte I

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
O Skype 1.4.0.74 no Ubuntu 7.04

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Funciona,

mas e se eu quiser fazer com que só uma área do meu site funcione com https? como faço?

Gerson


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

O acesso https não bloqueia o acesso http. Só se você comentar a porta 8080. Você pode inclusive ter uma página de login que você direciona para https e depois de se logar fica http mesmo. Ficaria mais comum você trocar a porta de 8080 para 80 para ter um site “normal”


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

veja no arquivo conf/server.xml, como diz no help do tomcat.

procure por Connector port=”8080″ e troque por só 80.

boa sorte


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Amigo, esse seu tutorial, é para linux? e em realação ao tomcat serve para todas as versões? no caso eu estou usando o apache tomcat 4.0.


Particular: Configurando o Acesso Seguro no Tomcat



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Implementar o acesso seguro via SSL no Tomcat (o acesso https, ou http seguro) é simples. Para isso, é necessário a criação de um certificado (que pode ser validado por uma entidade certificadora ou não) e a habilitação do certificado no Tomcat.

Siga os passos abaixo:


1. Vamos criar um certificado de nome tomcat no keystore localizado em /etc/.keystore-tomcat, usando o algoritmo RSA e com validade de 1 ano (365 dias). Altere o comando caso necessário para definir outros locais ou validades.

$ keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/.keystore-tomcat -validity 365

O keytool irá fazer algumas perguntas para criar o certificado. São elas:

  • a senha do keystore (escolha uma à seu gosto, mas deverá ser a mesma senha do certificado, mais adiante, e deverá ser escrita no server.xml)
  • o endereço do site (ele pergunta primeiro e ultimo nome, mas é para botar o endereço do site)
  • unidade organizacional (qualquer coisa)
  • nome da empresa
  • cidade
  • estado
  • país (apenas 2 letras, como em BR)
  • em seguida será pedida uma confirmação dos dados
  • por fim pedirá a senha do certificado tomcat, tecle Enter para que seja igual à senha do keystore

Eis um exemplo de configuração:

$ keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/.keystore-tomcat -validity 365
Enter keystore password:  SUA_SENHA
What is your first and last name?
[Unknown]:  SEU_SERVIDOR.SEU_DOMINIO
What is the name of your organizational unit?
[Unknown]: SEU_SERVIDOR
What is the name of your organization?
[Unknown]:  NOME_DA_SUA_EMPRESA
What is the name of your City or Locality?
[Unknown]:  Rio de Janeiro
What is the name of your State or Province?
[Unknown]:  RJ
What is the two-letter country code for this unit?
[Unknown]:  BR
Is CN=SEU_SERVIDOR.SEU_DOMINIO, OU=SEU_SERVIDOR, O=NOME_DA_SUA_EMPRESA, L=Rio de Janeiro, ST=RJ, C=BR correct?
[no]:  yes

Enter key password for
(RETURN if same as keystore password):

2. Caso não deseje registrar o certificado oficialmente, ou seja, que ele seja assinado digitalmente por uma autoridade certificadora, pule para o passo 3.

2.1 Primeiro criamos um pedido de assinatura de certificado (CSR, Certificate Signing Request) para a CA (Certificate Authority):

$ keytool -certreq -keystore /etc/.keystore-tomcat -alias tomcat -file riopro-tomcat.csr

2.2 Agora devemos enviar o arquivo criado, riopro-tomcat.csr, para a CA. Veja com a CA escolhida como fazer isso.

2.3 A CA responderá enviando 2 arquivos:

  • Um arquivo *.der, contendo a chave pública da CA
  • Um arquivo *.pem, contendo a o nosso certificado assinado com a chave privada da CA

Devemos então importar estes 2 arquivos para o nosso keystore. É importante executar os 2 comandos abaixo na ordem mostrada.

$ keytool -import -alias  -file .der -keystore /etc/.keystore-tomcat
$ keytool -import -alias  -file .pem -keystore /etc/.keystore-tomcat

3. Devemos agora exportar o certificado à ser usado pelo Tomcat (o certificado de alias tomcat ou o certificado assinado pela CA, substitua se for o caso).

$ keytool -export -keystore /etc/.keystore-tomcat -alias tomcat -file /export_keystore-tomcat.cer

4. Agora devemos importar o certificado que exportamos para o keystore do Java. A senha do keystore do Java é por default changeit.

$ keytool -import -alias tomcat -file /export_keystore-tomcat.cer -keystore $JAVA_HOME/jre/lib/security/cacerts

PS.: caso só esteja instalado na máquia o JRE, o keystore do Java estará então em $JAVA_HOME/lib/security/cacerts
5. Por fim, devemos editar o arquivo de configuração do Tomcat em $TOMCAT_HOME/conf/server.xml, e habilitar o conector HTTPS na porta 8443 (ou você pode mudar para qualquer porta. Seguindo o exemplo:

< Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" debug="0" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreType="JKS" keystoreFile="/etc/.keystore-tomcat" keystorePass="SUA_SENHA" />

Você pode comentar a parte sobre o conector HTTP se quiser, limitando o acesso à forma HTTPS.

6. Reinicie o Tomcat.

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos
Configurando o Acesso Seguro no Tomcat
O Skype 1.4.0.74 no Ubuntu 7.04

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Funciona,

mas e se eu quiser fazer com que só uma área do meu site funcione com https? como faço?

Gerson


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

O acesso https não bloqueia o acesso http. Só se você comentar a porta 8080. Você pode inclusive ter uma página de login que você direciona para https e depois de se logar fica http mesmo. Ficaria mais comum você trocar a porta de 8080 para 80 para ter um site “normal”


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

veja no arquivo conf/server.xml, como diz no help do tomcat.

procure por Connector port=”8080″ e troque por só 80.

boa sorte


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Amigo, esse seu tutorial, é para linux? e em realação ao tomcat serve para todas as versões? no caso eu estou usando o apache tomcat 4.0.