Histórico da Página
Índice
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
Objetivo
...
Serviços em HTTPS tem como objetivo garantir maior segurança no tráfego de arquivos entre cliente-servidor. Neste documento abordaremos a configuração SSL do servidor de aplicação jetty, utilizado na Replicação de Documentos, que será utilizado juntamente com o Fluig quando o JBoss WildFly estiver com o certificado SSL também ativo.
Nota | ||
---|---|---|
| ||
Os procedimentos descritos neste guia foram testados e homologados na versão 9.4.8.v20171121 do Jetty |
Configurar SSL para Jetty
...
Para configurar o SSL no Jetty, complete as tarefas abaixoé necessário:
- Gerando Gerar as chaves e os certificados
- Requesting a Trusted Certificate
- Loading Keys and Certificates
- Configuring SslContextFactory
- auto-assinados (caso não possua o certificado).
Carregar chaves e certificados.
Configurar sslContextFactory.
Gerando as chaves e os certificados auto-assinados
O caminho mais fácil para gerar as chaves e os certificados é usar a ferramenta keytool que já vem na instalação da JDK.
Informações | ||
---|---|---|
| ||
Se você já possui as chaves e os certificados vá direto para |
o passo, Carregando as chaves e certificados |
, afim de verificar como carregá-los para dentro |
do keystore JSSE. Esta seção também se |
aplica no caso de renovação de certificados onde você deseja substituir um certificado que está expirando. |
O exemplo abaixo gera somente chaves e certificados básicos. Você deve acessar a documentação do Jetty se precisar especificar o seguintes itens:
- O tamanho da chave
- A data de expiração do certificado
- Alterar a segurança dos providers
Gerando
...
chaves e
...
certificados com keytool do JDK
...
O comando a seguir gera as chaves e o certificado diretamente no arquivo keystore
:
Bloco de código | ||
---|---|---|
| ||
$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA |
...
- Preencha todos as informações solicitadas e ao final digite
...
- sim e pressione Enter para confirmar.
Estes certificados auto-assinados não são válidos externamente.
Carregando chaves e certificados
...
Se um certificado CA lhe foi enviado
Carregando Chaves e Certificados
Uma vez que um CA enviou-lhe um certificado, ou se você gerou o seu próprio certificado sem keytool
, você precisa carregá-lo em um armazenamento de chaves keystore JSSE.
Nota
Você precisa tanto a chave privada e o certificado no armazenamento de chaves JSSE. Você deve carregar o certificado para o armazenamento de chaves usado para gerar o CSR com keytool
. Se o seu par de chaves já não está em um armazenamento (por exemplo, porque foi gerado com OpenSSL), você precisa usar o formato PKCS12 para carregar tanto chaves eo certificado (ver PKCKS12 Chaves e Certificados ).
Carregando Certificados com keytool
Você pode usar o keytool
para carregar um certificado em forma no formato PEM diretamente em um armazenamento de chaveskeystore. O formato PEM é uma codificação de texto de certificados; é produzido pela OpenSSL, e é devolvido por alguns CAs. Um exemplo de arquivo PEM é:
Bloco de código | ||
---|---|---|
| ||
jetty.crt ----- BEGIN CERTIFICATE ----- MIICSDCCAfKgAwIBAgIBADANBgkqhkiG9w0BAQQFADBUMSYwJAYDVQQKEx1Nb3J0 IEJheSBDb25zdWx0aW5nIFB0eS4gTHRkLjEOMAwGA1UECxMFSmV0dHkxGjAYBgNV BAMTEWpldHR5Lm1vcnRiYXkub3JnMB4XDTAzMDQwNjEzMTk1MFoXDTAzMDUwNjEz MTk1MFowVDEmMCQGA1UEChMdTW9ydCBCYXkgQ29uc3VsdGluZyBQdHkuIEx0ZC4x DjAMBgNVBAsTBUpldHR5MRowGAYDVQQDExFqZXR0eS5tb3J0YmF5Lm9yZzBcMA0G CSqGSIb3DQEBAQUAA0sAMEgCQQC5V4oZeVdhdhHqa9L2 / ZnKySPWUqqy81riNfAJ 7uALW0kEv / LtlG34dOOcVVt / PK8 / bU4dlolnJx1SpiMZbKsFAgMBAAGjga4wgasw HQYDVR0OBBYEFFV1gbB1XRvUx1UofmifQJS / MCYwMHwGA1UdIwR1MHOAFFV1gbB1 XRvUx1UofmifQJS / MCYwoVikVjBUMSYwJAYDVQQKEx1Nb3J0IEJheSBDb25zdWx0 aW5nIFB0eS4gTHRkLjEOMAwGA1UECxMFSmV0dHkxGjAYBgNVBAMTEWpldHR5Lm1v cnRiYXkub3JnggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADQQA6NkaV OtXzP4ayzBcgK / qSCmF44jdcARmrXhiXUcXzjxsLjSJeYPJojhUdC2LQKy + p4ki8 Rcz6oCRvCGCe5kDB ----- END CERTIFICATE ----- |
Utilizando certificados com extensão .crt
Se você já possui um certificado com a extensão .crt e a senha para acessá-lo utilize o comando abaixo. Este O comando a seguir carrega um certificado codificado PEM no jetty.crt
arquivo em um armazenamento de chaves JSSE:o conteúdo do arquivo .crt para dentro do arquivo keystore JSSE:
Bloco de código | ||
---|---|---|
| ||
$ keytool |
-keystore keystore -import -alias |
jetty -file |
[nome_do_arquivo].crt -trustcacerts |
Se o certificado que você recebe do CA não está em um formato que keytool
entende, você pode usar o openssl
comando para converter formatos:
$ Openssl x509 -em jetty.der -Informar DER -outform PEM out jetty.crt
Carregando chaves e certificados através PKCS12
Se você tem uma chave e certificado em arquivos separados, você precisa combiná-los em um arquivo de formato PKCS12 para carregar em um novo armazenamento de chaves. O certificado pode ser um que você gerou a si mesmo ou um voltar de uma CA em resposta ao seu CSR.
O seguinte comando OpenSSL combina as chaves na jetty.key
e o certificado no jetty.crt
arquivo no jetty.pkcs12
arquivo:
$ Openssl pkcs12 -inkey jetty.key -em jetty.crt -export out jetty.pkcs12
Se você tem uma cadeia de certificados, porque o seu CA é um intermediário, construir o arquivo PKCS12 da seguinte forma:
$ Cat example.crt intermediate.crt [intermediate2.crt] ... rootCA.crt> cert-chain.txt $ Openssl pkcs12 -export -inkey example.key -em cert-chain.txt out example.pkcs12
A ordem dos certificados deve ser de servidor para rootca, conforme a secção RFC2246 7.4.2.
OpenSSL pede uma senha de exportação. A senha não vazio é necessário para fazer a próxima etapa de trabalho. Em seguida, carregar o arquivo PKCS12 resultando em um armazenamento de chaves JSSE com keytool
:
$ Keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
...
Ao executar o comando acima digite uma senha 'não pode ser deixado em branco'. Esta é a senha de acesso ao arquivo keystore.
Utilizando certificados com extensão .p12
Se você possui um certificado com a extensão .p12 utilize o comando abaixo. Este comando a seguir carrega o conteúdo do arquivo .crt para dentro do arquivo keystore JSSE:
Bloco de código | ||
---|---|---|
| ||
$ keytool -importkeystore -srckeystore [nome_do_arquivo].p12 -srcstoretype PKCS12 -destkeystore keystore |
Ao executar o comando acima lhe será solicitado uma senha 'não pode ser deixado em branco'. Esta é a senha de acesso ao arquivo keystore.
Será solicito uma segunda senha, esta é a de acesso ao certificado, guarde as duas senha.
É necessário copiar o arquivo keystore do local onde foi gerado para dentro da pasta [instalação do jetty]/etc
Configurando SslContextFactory
O Jetty permite que seja criado um diretório específico para realizar as configurações, assim é possível manter uma separação entre os arquivos binários de instalação ($JETTY_HOME) e as configurações personalizadas ($JETTY_BASE). Veja mais detalhes em Gerenciando Jetty Home e Jetty Base
Configuração em sistemas Linux:
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
|
Configuração específica para Jetty no Windows
É necessário adicionar o parâmetro abaixo no momento em que o Jetty será iniciado:
-Dfile.encoding=UTF-8 -Djavax.net.ssl.trustStore=[caminho do arquivo keystore gerado]
Para iniciar o Jetty basta digitar no terminal do Windows o seguinte comando:
java -Dfile.encoding=UTF-8 -Djavax.net.ssl.trustStore=[caminho do arquivo keystore gerado] -jar start.jar