Я пытаюсь реализовать TLS через mod_nss в Apache (RHEL 7). Согласно документации , я установил mod_nss и удалил mod_ssl .
Я выполнил шаги, описанные в документации (см. Ссылку выше), особенно убедившись, что директива NSSProtocol читается следующим образом (согласно документам, это отключает все версии протокола SSL и TLS, кроме TLS версии 1 и выше):
NSSProtocol TLSv1.0,TLSv1.1
Затем я перезапустил Apache и проверил, включен ли SSLv3:
openssl s_client -connect localhost:443 -ssl3
который возвращает:
[root@box1 ~]# openssl s_client -connect localhost:443 -ssl3 CONNECTED(00000003) 139894684407712:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:339: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 5 bytes and written 7 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE SSL-Session: Protocol : SSLv3 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1442107224 Timeout : 7200 (sec) Verify return code: 0 (ok) --- [root@box1 ~]#
Как вы можете видеть, рукопожатие завершается (как указано в подтверждении SSL, прочитано 5 байтов и написано 7 байтов ), поэтому я сомневаюсь, что SSLv3 фактически отключен.
Я потратил бесчисленные часы на поиск решения, но все, что мне удалось найти, говорит мне, как отключить SSLv3 через mod_ssl, а не mod_nss.
Любые идеи или разъяснения будут более чем приветствуются.
Ничего плохого не произошло, поскольку вы получили ошибку рукопожатия:
Ошибка: 1408F10B: Подпрограммы SSL: SSL3_GET_RECORD: неправильный номер версии
Как клиент / сервер может решить, что номер версии неверен без отправки байтов?
Удалите -ssl3
из вашей команды, и вы увидите разницу:
Подтверждение SSL прочитало 4493 байта и записано 499 байт
Также, если соединение установлено, s_client
ожидает, что ваш вход будет перенесен на сервер. Без соединения он возвращается.