Problema de conexão SSL com s_client

1

Estou tentando configurar o SSL em duas máquinas (na LAN) de uma CA local que criei e estou com problemas ao testar com o s_client, não consigo localizar informações úteis com minhas habilidades no google-fu. Estou tentando me familiarizar com a segurança das informações e parecia um bom lugar para começar. Meu cenário é

host1: ubuntu 12.04, tomcat7

host2: ubuntu 12.04, tomcat7

configurou o tomcat w / ssl em ambos os hosts e pode acessar a homepage do tomcat @ https: // {host}: 8443 de qualquer uma das máquinas. Eu configurei o conector com meu keystore & pass, eu acredito que o tomcat está feliz com os params como anteriormente eu tinha erros de inicialização do tomcat não sendo capazes de extrair a chave privada, mas isso é resolvido. aqui está o que eu fiz

// create tomcat server keystore
1. sudo keytool -genkey -alias tomcat7 -keyalg rsa -keystore     /etc/tomcat7/keystore/host1.jks

2. openssl genrsa -aes256 -out host1_key.pem 2048

3. openssl req -new -key host1_key.pem -out host1.csr

4. openssl x509 -req -days 3650 -in host1.csr -CA root_ca.cer -CAkey root_ca_key.pem -    CAcreateserial -setalias host1 -addtrust serverAuth -addtrust clientAuth -extensions client -outform PEM -out host1.cer

// export to keystore
5. openssl pkcs12 -export -in host1.cer -inkey host1_key.pem -out host1.p12 -name "host1"

// import keystore
6. sudo keytool -importkeystore -srckeystore host1.p12 -destkeystore     /etc/tomcat7/keystore/host1.jks -srcstoretype pkcs12
dest passwd: 
src passwd: 
Entry for alias host1 successfully imported
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled

7. view keystore host1.jks
Enter keystore password:  

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 2 entries

tomcat7, Feb 18, 2013, PrivateKeyEntry, 
Certificate fingerprint (MD5): 2A:F1:5A:D1:5B:B1:24:5E:C7:96:3F:71:C8:17:09:E8
host1, Feb 18, 2013, PrivateKeyEntry, 
Certificate fingerprint (MD5): 3F:81:FD:79:78:85:98:32:72:C4:42:8F:D6:2F:DD:09

8. Configure connector in tomcat w/ this keystore.  restart tomcat. Boots w/out error.


Browse to https://host1:8443 from host2 and will get to "It Works!" page

O próximo passo que fiz foi testar a conexão de uma máquina para outra

host2: openssl s_client -connect host1:8443
CONNECTED(00000003)
140310470641312:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:724:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 226 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

No Wireshark, eu configurei meu filtro para todos os protocolos TLS ("ssl.record.version == 0x0301") e nem vejo um pedido sair quando executo o comando acima. Eu acho que significa que openssl não pode extrair meu certificado? Eu não tenho certeza onde procurar daqui, se eu mudar minha senha do keystore para algo inválido no meu conector tomcat, eu vou ver erros no tomcat quando ele inicializa. Caso contrário, eu deveria ter visto os pedidos de handshaking em wireshark.

Eu verei o mesmo se eu tentar do meu outro host.

Eu li sobre 'truststores' ao tentar resolver meu problema, seria outro keystore com o .p12 do outro servidor importado e minha CA local?

Obrigado, qualquer direção seria útil.

    
por Crushing 18.02.2013 / 20:34

1 resposta

1

Você define quais códigos são aceitos em server.xml , por exemplo

   SSLCipherSuite="ALL:!ADH:!SSLv2:!EXPORT40:!EXP:!LOW" 

que exclui SSLv2. Há mais informações em centros tecnológicos

    
por 19.02.2013 / 08:55