Using HTTPS in Wildfly with LetsEncrypt
HTTPS for all
Todos já sabemos que hoje em dia não existe mais desculpa para seu site trafegar dados como plain/text, isso porquê existe o letsencrypt:
https://letsencrypt.org/
Se você utiliza UBUNTU e APACHE como servidor web, colocar seu site para rodar com HTTPS é tão simples quanto isso:
Install
Since Certbot is packaged for your system, all you'll need to do is apt-get the following packages.
$ sudo apt-get install python-letsencrypt-apache
Get Started
Certbot has a fairly solid beta-quality Apache plugin, which is supported on many platforms, and automates both obtaining and installing certs:
$ letsencrypt --apache
If you're feeling more conservative and would like to make the changes to your Apache configuration by hand, you can use the certonly subcommand:
$ letsencrypt --apache certonly
Isso é ótimo pois além de garantir um site seguro, e seu usuário vai agradecer por isso, você ganha outras features do https, como HTTP 2.0 .
Porém para quem utiliza o JBoss/Wildfly com backend em Java, a coisa é um pouco mais complicada, bem mais complicada pra falar a verdade, mas sim, é possível, vamos ao passo-a-passo para implementação de https no wildfly 10.
1 - Gerar o certificado com o certbot conforme as instruções do site https://letsencrypt.org/
2 - Gerar o arquivo com senha
A private key, gerada pelo letsencrypt não tem senha, porém o wildfly necessita de uma private key com senha, para isso precisamos copiar os arquivos gerados pelo letsencrype para o diretório de configuração do JBOSS, desta forma mantemos o backup lá no diretório original, e alteramos apenas as cópias.
Normalmente estes arquivos são gerados em:
/etc/letsencrypt/live/MEUDOMINIO
Então eu os copio para o diretório de configuração do wildfly:
cp /etc/letsencrypt/live/MEUDOMINIO/*.pem /WILDFLY_HOME/standalone/configuration/
Agora que os arquivos .pem gerados pelo letsencrypt estão no diretório de configuração, você pode trabalhá-los com mais segurança.
2.1 - Gerando uma versão da private key com senha:
> openssl rsa -aes192 -in privkey.pem -out keypass.pem
Este comando vai solicitar uma senha para o novo arquivo criado.
Este comando vai gerar o arquivo keypass.pem
> openssl pkcs12 -export -in cert.pem -inkey keypass.pem -out yourdomain.com.p12 -name default -CAfile your_provider_bundle.crt -caname root
Este comando vai gerar o arquivo yourdomain.com.p12
> keytool -importkeystore -deststorepass senha -destkeypass senha -destkeystore yourdomain.com.jks -srckeystore yourdomain.com.p12 -srcstoretype PKCS12 -srcstorepass senha -alias default
Este comando vai solicitar uma senha para o novo arquivo criado.
Este comando vai gerar o arquivo keypass.pem
> openssl pkcs12 -export -in cert.pem -inkey keypass.pem -out yourdomain.com.p12 -name default -CAfile your_provider_bundle.crt -caname root
Este comando vai gerar o arquivo yourdomain.com.p12
> keytool -importkeystore -deststorepass senha -destkeypass senha -destkeystore yourdomain.com.jks -srckeystore yourdomain.com.p12 -srcstoretype PKCS12 -srcstorepass senha -alias default
Este comando irá gerar o arquivo yourdomain.com.jks, dentro da sessão security-realms:
Agora é só incluir o arquivo jks, dentro do arquivo WILDFLY_HOME/standalone/configuration/standalone.xml
SslRealm ">
yourdomain.com
.jks" relative-to="jboss.server.config.dir" keystore-password="senha "/> Agora é só incluir o arquivo jks, dentro do arquivo WILDFLY_HOME/standalone/configuration/standalone.xml
Também é necessário incluir um listener para o protocolo https, assim como já existe para o protocolo http:
Ainda no arquivo standalone.xml, é necessário incluir os socket bindings para as portas, 443 e 8443 conforme abaixo:
Depois disso, inicialize o servidor, acessando seu site pelo protocolo https.
http://reallifejava.com/configuring-ssl-in-wildfly-8/
https://community.letsencrypt.org/t/how-could-i-get-the-password-for-keyfile/4703/2
https://docs.jboss.org/author/display/WFLY10/Undertow+subsystem+configuration
https://docs.jboss.org/jbossweb/7.0.x/ssl-howto.html
https://blogs.oracle.com/blogbypuneeth/entry/steps_to_create_a_jks
Comentários
Postar um comentário