Habilitando SSL no BitNami Tomcat Stack

Em continuação ao Primeiros passos no Amazon EC2, este post descreve os passos para habilitar SSL no BitNami Tomcat Stack.

Habilitando SSL

Não vou detalhar muito os passos abaixo, pois esses detalhes podem ser encontrados facilmente na internet. Este é um guia copy&paste para criação de SSL self-signed usando o OpenSSL no BitNami Tomcat Stack. Na verdade esses passos funcionam para Ubuntu e Apache2, não necessariamente só para o Tomcat Stack.

Criando um certificado self-signed

# Substituindo o usuário corrente (bitnami) para o root.
$ sudo su root

# Instalando o OpenSSL.
$ apt-get install openssl

# Criando o diretório para guardar os certificados.
$ cd ~
$ mkdir sslcert
$ cd sslcert

# Criação das chaves pública e privada.
$ openssl genrsa -des3 -out server.key 1024

# No "Common Name (eg, YOUR name)" preencher com o domínio ou ip que o servidor que será acessado.
$ openssl req -new -key server.key -out server.csr

# O parâmetro "-days 1825", quer dizer que a chave só expirará em 5 anos.
$ openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt

# Criando um chave sem senha, caso contrário o Apache sempre pedirá ao iniciar a senha definida na criação do server.key.
$ cp server.key server.key.secure
$ openssl rsa -in server.key.secure -out server.key

# Colocando permissões somente de leitura para o owner do arquivo e sem permissão para os demais.
$ chmod 400 server.csr
$ chmod 400 server.crt
$ chmod 400 server.key
$ chmod 400 server.key.secure

# Copiando arquivos necessários para o diretório do Apache.
$ mkdir /opt/bitnami/apache2/conf/sslcert
$ cp server.crt  /opt/bitnami/apache2/conf/sslcert
$ cp server.key  /opt/bitnami/apache2/conf/sslcert

Habilitando SSL no Apache

Descomentar a linha Include conf/extra/httpd-ssl.conf no /opt/bitnami/apache2/conf/httpd.conf.

Alterar as linhas no arquivo /opt/bitnami/apache2/conf/extras/httpd-ssl.conf.

De

SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"

Para

SSLCertificateFile "/opt/bitnami/apache2/conf/sslcert/server.crt"

De

SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"

Para

SSLCertificateKeyFile "/opt/bitnami/apache2/conf/sslcert/server.key"

Basta reiniciar o Apache que o SSL estará pronto para o uso.

apachectl restart