Ответ 1
Люди Ubuntu создают OpenSSL без поддержки SSLv2, потому что протокол известных проблем безопасности. Итак, почему вы не можете найти SSLv2_method
в своей библиотеке, даже если вы можете найти ее при компиляции библиотеки самостоятельно.
Журналы сборки Ubuntu публично доступны. Вы можете увидеть в журнале oneiric-i386.openssl_1.0.0e, что библиотека настроена с параметром -no-ssl2
, что отключает поддержку SSLv2.
./Configure --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/i386-linux-gnu no-idea no-mdc2 no-rc5 zlib enable-tlsext no-ssl2 debian-i386
Configuring for debian-i386
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-idea [option] OPENSSL_NO_IDEA (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-mdc2 [option] OPENSSL_NO_MDC2 (skip dir)
no-rc5 [option] OPENSSL_NO_RC5 (skip dir)
no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
no-shared [default]
no-ssl2 [option] OPENSSL_NO_SSL2 (skip dir)
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-zlib-dynamic [default]
Обратите внимание, что доступность SSLv23_method
не означает, что клиент сможет подключиться к серверу с SSLv2. В краткой документации OpenSSL обсуждается эта ситуация:
Список доступных протоколов может быть позже ограничен с помощью Параметры SSL_OP_NO_SSLv2, SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1 SSL_CTX_set_options() или SSL_set_options(). Используя эти варианты можно выбрать, например. SSLv23_server_method() и быть способный вести переговоры со всеми возможными клиентами, но только разрешить более новые протоколы, такие как SSLv3 или TLSv1.