Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Carregando Chaves e Certificados

Se um certificado CA lhe foi enviado, ou se você gerou o seu próprio certificado sem keytool , você precisa carregá-lo em um keystore JSSE.

  

Carregando Certificados com keytool

Você pode usar o keytool para carregar um certificado no formato PEM diretamente em um keystore. O formato PEM é uma codificação de texto de certificados; é produzido pela OpenSSL, e é devolvido por alguns CAs. Um exemplo de arquivo PEM é:


  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 ----- 


O comando a seguir carrega um certificado codificado PEM no jetty.crt arquivo em um armazenamento de chaves JSSE:

 $ keytool -keystore keystore -import -alias jetty -file jetty.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 -in jetty.der -inform DER -outform PEM -out jetty.crt

 

----------------------------------------------------------------------------------------------------------

Configurando SslContextFactory

Os certificados SSL gerados detidos no armazenamento de chaves são configuradas no Jetty por injecção uma instância de SslContextFactoryobjeto e passá-la para SslConnectionFactory do conector, o que é feito na distribuição molhe por ambos em molhe-https.xml e molhe-spdy.xml . Desde SPDY é capaz de lidar com HTTPS também, normalmente você vai configurar píer para usar um desses arquivos de configuração ou o outro, o que pode ser feito outro na linha de comando ou editando o arquivo start.ini.

Esses arquivos de configuração criar uma instância SslContextFactory com o ID "sslContextFactory":

 

1
2
3
4
5
6
7
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
  <Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
  <Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
  <Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
  <Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
  <Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
</New>

 

 

Este exemplo usa o armazenamento de chaves distribuídas com molhe. Para usar seu próprio armazenamento de chaves que você precisa atualizar, pelo menos, as seguintes definições:

KeyStorePathVocê pode substituir o armazenamento de chave fornecida com o seu próprio, ou alterar a configuração para apontar para um arquivo diferente. Note-se que como um armazenamento de chaves é segurança da informação vital, pode ser desejável para localizar o arquivo em um diretório com um acesso muito restrito.KeyStorePasswordA senha de armazenamento de chaves pode ser definido aqui em texto simples, ou como alguma proteção contra observação casual, ela pode ser ofuscado usando a senha de classe.

O Truststore é usado se validar os certificados de cliente e é normalmente definido para o mesmo armazenamento de chaves.

O keyManagerPassword é passado como a senha para arg KeyManagerFactory.init (...). Se não houver nenhum keymanagerpassword, em seguida, o keyStorePassword é usado em vez disso. Se não existe um conjunto TrustManager, então o armazenamento de chaves é usado como o armazenamento de confiança eo keyStorePassword é usado como senha truststore

Não há necessidade de criar uma nova instância de SslContextFactory usando o xml acima como um existe no molhe-ssl.xml. Edite os caminhos e senhas no molhe-ssl.xml e garantir que você adicionar as seguintes linhas para start.ini após a jetty.dump.stop line =:


1
2
etc/jetty-ssl.xml
etc/jetty-https.xml

 

Opcionalmente, configure a porta https ou em molhe-https.xml como este:

 

1
<Set name="port">8443</Set>

 

ou via linha de comando, por exemplo

$ java -jar start.jar https.port=8443