:::: MENU ::::

sexta-feira, 22 de abril de 2011



Lembro-me sem saudades do meu tempo de pimpolho newbie... Eu via falar do tal "Tom cat" e imaginava: "Que miseéria é um tom cat? Pra que serve? é de passar no cabelo?". É garotenhos e garotenhas... É verdade... Mas, o tempo passou, <exagero>o papai aqui virou modafoca e hoje administração de Tomcat pra mim é é farinha no meu prato de feijão</exagero> heheheheh.


Então, vamos comer?
Nesse tuto vamos instalar o Apache Tomcat e configurar o SSL, para o uso do HTTPS. Nada tenso, podem ficar tranquilos.



Preparativos

No site do Tomcat (http://tomcat.apache.org/download-70.cgi) você poderá mudar qual a sua mirror. Ela é definida automaticamente. Se achar o download lento, experimente alterar.
Com o mirror definido, escolha qual o pacote satisfaz a sua necessidade. Vamos usar aqui o tar.gz


wget http://mirror.pop-sc.rnp.br/apache/tomcat/tomcat-7/v7.0.12/bin/apache-tomcat-7.0.12.tar.gz

Com o pacote em mãos, vamos colocá-lo no /opt, já que é um software de terceiros. #LSBrlz!
sudo tar xvf apache-tomcat-7.0.12.tar.gz -C /opt/
sudo mv /opt/apache-tomcat-7.0.12 /opt/tomcat


A saber: O diretório /opt/tomcat/ agora também será conhecido como o CATALINA_HOME

Crie um usuário para o Tomcat e defina que o proprietário dos arquivos do /opt/tomcat será o usuário tomcat:
su -
useradd -r tomcat -s /sbin/nologin  -d /opt/tomcat/ -c "Tony Katty, The Modafocker"
chown -R tomcat /opt/tomcat
exit

adduser -r -s /sbin/nologin? WTF???
Seguinte: Vejamos as opções do adduser:
-r : cria um usuário do sistema, seu UID fica entre SYS_UID_MIN(100) e o SYS_UID_MAX(499) se o UID não for especificado. A entrada em /etc/default/useradd também é ignorada;
-s: especifica qual será o shell padrão do usuário. No caso, o /sbin/nologin;
-d: Diretório home do usuário;
-c: Um comentário.


Now, instale as ferramentas necessárias para compilar o Tomcat:
zypper in binutils-gold gcc gcc45 glibc-devel libgomp45 linux-glibc-devel make

#FuckYea

E no site da Oracle, baixe o JDK(Java Development Kit). Nem dá pra colocar aqui um wget puxando o jdk pq tem de aceitar um contrato e talz... Aí mopai, complica! =\ Façam o download e mandem para seu servidor via scp que fica tudo lindo :)
http://www.oracle.com/technetwork/java/javase/downloads/

Baixou? Massa! Vamos instalar!
chmod +x jdk-6u25-linux-i586-rpm.bin
sudo ./jdk-6u25-linux-i586-rpm.bin

Agora, o diretório /usr/java/latest também será conhecido como o JAVA_HOME


Instalação

Mão na massa! Primeiramente, entre no diretório /opt/tomcat/bin/ e descompacte o pacote commons-daemon-native.tar.gz. Em seguida, entre no diretório descompactado e depois no diretório unix. Lá que vamos compilar o necessário.
cd /opt/tomcat/bin
tar xvf commons-daemon-native.tar.gz
cd /opt/tomcat/bin/commons-daemon-1.0.5-native-src/unix
sudo ./configure --with-java=/usr/java/latest
sudo make

Percebam que foi gerado um arquivo, o binário jsvc. Mova-o para o $CATALINA_HOME/bin
sudo mv -v /opt/tomcat/bin/commons-daemon-1.0.5-native-src/unix/jsvc /opt/tomcat/bin/

Também vamos precisar do script de inicialização do Tomcat, que está dentro do diretório $CATALINA_HOME/bin/commons-daemon-1.0.5-native-src/unix/samples. Copie-o para o diretório /etc/init.d/. Eu também vou mudar o nome do arquivo para apenas "tomcat", pra facilitar na hora do uso :)
sudo cp -v /opt/tomcat/bin/commons-daemon-1.0.5-native-src/unix/samples/Tomcat7.sh /etc/init.d/tomcat

Configuração

Hora da configuração. Vamos adicionar algumas variáveis necessárias para a inicialização do Tomcat. Logo após os comentários, adicione:

vim /etc/init.d/tomcat
[...]
# resolve links - $0 may be a softlink

export JAVA_HOME="/usr/java/latest"
export CATALINA_HOME="/opt/tomcat"
[...]

Feito isso, Vamos testar!
sudo service tomcat start


Funcionou? Quer na inicialiazação?
chkconfig tomcat on

Tomcat com SSL

Secure Socket Layer para os não-íntimos. Nada complicado, é até ridículo. Primeiro, vamos criar um keystore. Para criar um certificado keystore auto-assinado, execute o comando:
sudo /usr/java/latest/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/conf/.keystore

Responda as perguntas e a senha que será pedida no início, repita no final. No meu caso, ficou desse modo:
CN=tomcat, OU=WebApps, O=Maruts.org, L=Salvador, ST=Bahia, C=BR

Agora, acesse o diretório /opt/tomcat/conf. Vamos fazer algumas alterações no arquivo server.xml
Descomente as linhas 84 e 88. Adicione dois parâmetros:
keystoreFile="/path/para/o/.keystore" keystorePass="aquela senha"

O arquivo ficará dessa maneira:

 85    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
 86                keystoreFile="/opt/tomcat/conf/.keystore" keystorePass="aquela senha... lembra?"
 87                maxThreads="150" scheme="https" secure="true"
 88                clientAuth="false" sslProtocol="TLS" />


SÓ ISSO
:D


Comodidades

Eu costumo mudar as portas, caso esse servidor hospede apenas esse serviço. Isso vai variar de caso a caso. E o que eu ganho com isso? Simples! Não precisa ficar colocando porta no final da URL, por exemplo, o acesso normal vai ser somente o ip/nome do servidor e o acesso via https  vai ser (LOL) https://NomeDoServidor. Melhor né?

Enfim, se você puder alterar, é assim:
Para o acesso normal, mude na linha 70, de 8080 para 80:
sed -i.bkp 's/8080/80/g'/opt/tomcat/conf/server.xml

E para o https, mude na linha 85, de 8443 para 443:
sed -i.bkp 's/8443/443/g'/opt/tomcat/conf/server.xml

É isso aé meus queridos. Boas festas pra vocês \o/
e usem openSUSE! ;D


Referências:
Apache Tomcat Doc
SSL Configuration HOW-TO
Categories: , , ,

0 comentários:

Postar um comentário

Só não vale xingar a mãe ou puxar cabelo nos comentários =)

Posts populares