HTTPS + TomCat + SSL

4 respostas
Shelson

Pessoal,

Estou precisando fazer uma pgn. de login e senha, dentro de um ambiente HTTPS, rodando no TomCat.

Exemplo:

HTTPS://localhost:8080/login

Eu gostaria de saber como eu implemento essa solução.
O que devo configurar no TomCat, ou mesmo no servlet e no JSP.
Qual certificado eu posso usar, e como instalar. De preferência algum OpenSource.
E se preciso implementar alguma coisa com JAAS para isso.

Valeu a todos !!!

4 Respostas

T

“Login e senha” é uma coisa e SSL é uma outra coisa.
Primeiramente, você quer fazer login e senha com SSL igual a uma página de Internet Banking? Se for assim, o SSL é fácil (basta seguir o how-to do Tomcat, funciona belezinha), mas o login e senha você pode escolher entre:

  • Controlado pela própria aplicação (igualzinho a um Internet Banking, dá trabalho mas funciona exatamente do jeito que você quer);

  • “Form-Based Login” (é legal porque você não precisa ficar se preocupando muito com isso na sua aplicação, e mesmo que você entre diretamente em alguma página na sua aplicação, ele redireciona você automaticamente para a página de login se você estiver logado);
    No caso de “Form-Based Login” é esse cara que usa o tal de JAAS. Deve ter alguma coisa no How-to (tanto para configurar no Tomcat, quanto para criar a página de login, que tem um segredinho).

  • Ou então “Certificate-Based Login” - isso é meio chato tanto para configurar no Tomcat, quanto para efetuar o deploy de sua aplicação. Esse “Certificate-Based Login” é parecido com o site www.receita.fazenda.gov.br - “Receita 222”. onde você precisa instalar um certificado digital para cada cliente, o que dá trabalho e sai caro. Mas se seus clientes têm o tal do CPF Eletrõnico e um leitor de smart cards pode até valer a pena usar o tal do Certificate-Based Login.

Shelson

eu vou ler a documentação , que achei num link seu inclusive :stuck_out_tongue: :

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/ssl-howto.html

gostaria de saber sobre Form-Based Login, se vc tem algum link sobre, para eu poder pesquisar.
Tb gostaria de saber se vc pode me falar qual segredinho, tem nesse carinha.

:wink:

E uma outra dúvida que fiquei, quando olhava em alguns links que vc respondeu é, que eu não sei o que é keystroke. Mas se tiver na docvumentação do TomCat , por favor esquece essa pergunta.

se vc tiver algum samplezinho por aí … manda me brodi :stuck_out_tongue: :lol:

T

Keystore é um arquivinho onde ficam armazenadas as chaves e certificados. No caso do Tomcat é legal especificar um lugar fixo - não deixar o default, que fica no seu diretório de usuário, algo como “\Documents and Settings\Thingol.keystore” no caso do Windows, e ~/.keystore no caso do Unix, mas obviamente não deve ficar em um lugar que pode ser lido por qualquer usuário (ou seja, no diretório onde você deixa os arquivos .html, .gif e .jsp. Talvez deixando em um diretório dentro de WEB-INF seja mais seguro).
No caso de Form-Based Login, procure páginas de exemplo contendo a action “j_security_check”. Você precisa definir essa pseudo-ação numa página de login (ela deve ser acessível diretamente, como um index.jsp ou um login.jsp, não pode ser um action do Struts), e mexer no seu web.xml (procure na documentação o que deve ser alterado no web.xml). Um exemplo de form para form-based login (sem enfeite nenhum, só com os campos de entrada)

<form name="formLogin" method="POST" action="j_security_check" >

                <input type="text" name="j_username" />
                <input type="password" name="j_password" />
</form>

Você precisa mexer no seu web.xml, e incluir algo parecido com:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>Home</web-resource-name>
            <url-pattern>/aplicacao1/*</url-pattern>
            <url-pattern>/aplicacao2/*</url-pattern>
            <url-pattern>/aplicacao3/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>OPERADOR</role-name>
            <role-name>ADMINISTRADOR</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    <!-- Define qual a pagina de login -->
    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name></realm-name>
        <form-login-config>
            <form-login-page>/login.jsp</form-login-page>
            <form-error-page>/erro/erro_usuario.do</form-error-page>
        </form-login-config>
    </login-config>


    <security-role>
        <description>Usuario Administrador</description>
        <role-name>ADMINISTRADOR</role-name>
    </security-role>
    <security-role>
        <description>Usuario Operador</description>
        <role-name>OPERADOR</role-name>
    </security-role>

Para cadastrar os usuários, você precisa ver a documentação do Tomcat (aqui estou mostrando só o que não varia entre os diversos servidores J2EE.

Shelson

muito obrigado !!!

agora eu vou ler a documentação e começar a implementar.

:smiley: :smiley: :smiley: :smiley: :smiley:

Criado 22 de fevereiro de 2005
Ultima resposta 22 de fev. de 2005
Respostas 4
Participantes 2