Я использую серверное приложение 3 с OSX 10.9.5, которое поставляется с Openssl 0.9.8zg, и, поскольку эта версия не поддерживает TLS 1.2, я решил выполнить обновление до OpenSSL 1.0.2j.
Поскольку этот OpenSSL был установлен по умолчанию, я не могу просто обновить его, поэтому я использовал macports для установки более новой версии, чтобы посмотреть, могу ли я использовать его вместо другой версии.
После того, как я выполнил установку, я заметил, что смог использовать более новую версию только под пользователем без полномочий root (через командную строку), если я вхожу в систему с правами root, я продолжаю использовать старую версию.
Итак, я добавил расположение macports в файле «paths», а затем смог использовать openssl также в корневом каталоге.
Но теперь я не знаю наверняка, использует ли мое серверное приложение (также известное как система) правильный OpenSSL или нет.
Сейчас я не менял ни одного сертификата, я использую сертификат по умолчанию, который был в старой версии. Я никогда раньше не использовал openssl и все еще пытаюсь понять, как это работает.
Если я попытаюсь использовать openssl с правами root или с пользователем без полномочий root, на моем сервере я получу следующий результат с ошибкой:
remote:~ root# openssl s_client -connect remote.X.pt:443 -tls1_2
CONNECTED(00000003)
140735302370144:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:362:
---
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
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1480421165
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
Кажется, что TLS 1.2 поддерживается, но если я попытаюсь использовать стороннюю службу например, SSLlabs, я получил следующее:
Protocols
TLS 1.2 No
TLS 1.1 No
TLS 1.0 Yes
SSL 3 No
SSL 2 No
Итак, мой вопрос в том, продолжает ли моя система использовать библиотеки более старых версий или есть ли что-нибудь в сертификате, которое говорит, что этот сервер просто разрешает TLS 1.0? Если он продолжает использовать библиотеки старой версии, как я могу указать на библиотеки новой версии?
UPDATE1:
Просто подтвердите в phpinfo, что я все еще использую старую версию. Итак, мой вопрос: как я могу заменить openssl на новую версию в macports?
Server.app поставляется с предварительно скомпилированными двоичными файлами, которые связываются с Apple OpenSSL в / usr / lib
. Хотя вы можете установить $ PATH
, чтобы изменить, какие программы вы выполняете в командной строке, $ PATH
не влияет на библиотеки , связанные программным обеспечением .
Это наводит на пару мыслей:
/usr/lib/libssl.0.9.8.dylib
vs. / opt / local / lib / libssl.1.0.0.dylib
), так что здесь не вариант. Как следствие, я не вижу способа заставить Server.app 3 использовать TLS 1.2, к сожалению.