Назад | Перейти на главную страницу

Проблема с SSL-соединением с s_client

Я пытаюсь настроить SSL на двух машинах (в локальной сети) из локального центра сертификации, который я создал, и у меня возникает проблема при тестировании с помощью s_client, я не могу найти полезную информацию с моими навыками google-fu. Я пытаюсь ознакомиться с информационной безопасностью, и мне показалось, что это хорошее место для начала. Мой сценарий

хост1: ubuntu 12.04, tomcat7

хост2: ubuntu 12.04, tomcat7

настроил tomcat с ssl на обоих хостах и ​​может получить доступ к домашней странице tomcat @ https: // {host}: 8443 с любого компьютера. Я настроил соединитель с моим хранилищем ключей и проходом, я считаю, что tomcat счастлив с параметрами, поскольку раньше у меня были ошибки запуска tomcat, неспособные извлечь закрытый ключ, но это решено. вот что я сделал

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

Следующим шагом, который я сделал, было тестирование соединения с одной машины на другую.

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

В Wireshark я установил свой фильтр для всего протокола TLS ("ssl.record.version == 0x0301"), и я даже не вижу, чтобы запрос вышел, когда я запускаю указанную выше команду. я считать это означает, что openssl не может извлечь мой сертификат? Я не уверен, где искать, если я изменю свой пароль хранилища ключей на что-то недопустимое в моем коннекторе tomcat, я увижу ошибки в tomcat при его загрузке. В противном случае я должен был бы увидеть запросы подтверждения в wirehark.

Я увижу то же самое, если попробую с другого хоста.

Я читал о «доверенных хранилищах», пытаясь решить свою проблему. Может ли это быть еще одно хранилище ключей с импортированным .p12 другого сервера и моим локальным ЦС?

Спасибо, любое направление будет полезно.

Вы устанавливаете, какие шифры принимаются в server.xml, например

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

что исключает SSLv2. Больше информации на стеки технологий