Apache(RHEL 7)でmod_nssを介してTLSを実装しようとしています。 ~によると文書、インストールしましたmod_nss削除してmod_ssl。
私は文書(上記のリンクを参照)に記載されている手順に従い、特に次のことを確認しました。NSSプロトコルディレクティブは次のとおりです(文書によると、TLSバージョン1以降を除くすべてのSSLおよびTLSプロトコルバージョンは無効になります)。
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が実際に無効になっているかどうか疑問に思います。
私は解決策を見つけるために多くの時間を費やしましたが、私が見つけたすべては、mod_nssの代わりにmod_sslを介してSSLv3を無効にする方法を教えてくれます。
どんなアイデアや説明でも歓迎します。
答え1
ハンドシェイクエラーが発生したため、悪いことは発生しませんでした。
エラー:1408F10B:SSLルーチン:SSL3_GET_RECORD:無効なバージョン番号
クライアント/サーバーは、バイトを送信せずにバージョン番号が正しくないことをどのように確認できますか?
コマンドからそれを削除する-ssl3
と、違いを見ることができます。
SSLハンドシェイクは4493バイトを読み、499バイトを書きました。
また、接続が確立されると、s_client
入力がサーバーに送信されるのを待ちます。接続がない場合は返されます。