Как обновить библиотеку OpenSSL

0

Я использую Debian (Stretch). Здесь openssl versionвозвращается:

OpenSSL 1.1.0f 25 мая 2017 г. (Библиотека: OpenSSL 1.1.0-pre6-dev xx XXX xxxx)

  1. Как я могу обновить «Библиотеку», используемую для OpenSSL ( 1.1.0-pre6-dev ), до самой последней версии, поскольку apt-get install opensslона, похоже, не помогает?

  2. На другом сервере openssl versionвозвращает «OpenSSL 1.1.0g 2 ноября 2017 г. (Библиотека: OpenSSL 1.1.0f 25 мая 2017 г.)»: как это возможно, что используемая библиотека версий не совпадает с установленным пакетом?

Обновление 1

apt-cache policy openssl libssl1.1 вывод:

OpenSSL:

Installed: 1.1.0f-3+deb9u1
Candidate: 1.1.0f-3+deb9u1

Version table:
1.1.0f-3+deb9u1 500
500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
100 /var/lib/dpkg/status

1.1.0f-3 500
500 http://debian.mirrors.ovh.net/debian stretch/main amd64 Packages

libssl1.1:

Installed: 1.1.0f-5

Candidate: 1.1.0f-5

Version table:

1.1.0f-5 100
100 /var/lib/dpkg/status

1.1.0f-3+deb9u1 500
500 http://security.debian.org/debian-security stretch/updates/main amd64 
Packages

1.1.0f-3 500
500 http://debian.mirrors.ovh.net/debian stretch/main amd64 Packages

Обновление 2

Похоже, что установлены две версии openssl:

usr/local/ssl/bin/openssl version возвращается OpenSSL 1.0.2h 3 мая 2016

usr/bin/openssl version возвращает OpenSSL 1.1.0f 25 мая 2017 г. (Библиотека: OpenSSL 1.1.0-pre6-dev xx XXX xxxx)

which openssl возвращает / usr / bin / openssl

ldd $(which openssl) возвращается

linux-vdso.so.1 (0x00007fff3b074000)
libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007f4ec0de0000)
libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007f4ec095b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4ec0757000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4ec053a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4ec019b000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f4ec12f9000)
Винсент
источник
Почему вы хотите более новую версию?
Стивен Китт
потому что это, кажется, причина, почему я не могу скомпилировать Nginx из исходного кода с модулем http2 и модулем ssl
Vincent
Вы уверены , что используете Stretch? Что apt-cache policy openssl libssl1.1выводит? (Пожалуйста, отредактируйте свой вопрос, чтобы добавить информацию.) Stretch имеет только 1.1.0f, но это новее, чем 1.1.0-pre6.
Стивен Китт
Я только что отредактировал вопрос с запрошенным выводом, большое спасибо за вашу помощь
Винсент
Странно ... Что делать which opensslи ldd $(which openssl)выводить? Похоже, есть еще одна версия как opensslинструмента, так и libsslбиблиотеки.
Стивен Китт

Ответы:

3

Прежде всего, вы должны удалить локально установленные библиотеки и двоичные файлы ( libcryptoи libsslт. Д., И openssl). Это гарантирует, что вы используете упакованные версии, которые получают поддержку безопасности.

Чтобы получить то, что вам действительно нужно , то есть Nginx с HTTP2 и TLS, я настоятельно рекомендую вам использовать пакет с обратным портом вместо создания своего собственного; эта версия имеет функции, которые вы ищете. Для этого запустите (как root)

echo deb http://http.debian.net/debian stretch-backports main > /etc/apt/sources.list.d/stretch-backports.list
apt update
apt install -t stretch-backports nginx
Стивен Китт
источник
Дорогой Стефан, большое спасибо за то, что ты продолжил следить за этим вопросом, твои точные ответы поставили меня на правильный путь. Серьезно, спасибо!
Винсент
1

Debian Stretch является текущей стабильной версией (по состоянию на ноябрь 2017 года). Команда безопасности передает исправления безопасности в выпущенные версии кода, поэтому, пока вы не получите новые функции, вы можете быть уверены, что ваши библиотеки SSL обновлены.

Какие связанные пакеты установлены или могут быть установлены

dpkg -l '*openssl*'

Какие версии установленных пакетов доступны в репозиториях

dpkg -l '*openssl*' | awk '/^i/{print $2}' | xargs apt-show-versions -a

Убедитесь, что все в курсе

apt-get update
apt-get upgrade

Для любого данного пакета вы можете увидеть, какие исправления были применены, прочитав файл Changes в /usr/share/doc/{package_name}/changelog.Debian.gz. Например,

zless /usr/share/doc/openssl/changelog.Debian.gz
roaima
источник
0

Похоже, вы используете какой-то дистрибутив Linux, что означает, что обновления ваших пакетов зависят от сопровождающих вашего дистрибутива, и вы будете получать новые версии пакетов только тогда, когда упомянутые сопровождающие загружают новые версии в ваш репозиторий дистрибутива (это может также включать обновление до новой версии). версия вашего дистрибутива).

Конечно, вы можете следовать, например, этому руководству (если вы используете Ubuntu / Debian / Mint), чтобы создать новую версию OpenSSL, а затем использовать dpkg для ее установки, но это может привести к печальным последствиям, например, ваши установленные приложения будут либо прекратить соединение с использованием SSL или вообще прекратить работу.

Если вам абсолютно необходимо иметь новую версию OpenSSL, чтобы просто поиграть, вы можете скомпилировать ее из исходников и установить в / usr / local, где она не будет мешать общесистемным пакетам. Это обычно так же просто, как бег

./configure && make && make install

Но в настоящее время это не всегда просто, учитывая существование CMake и других цепочек сборки. В любом случае, многие приложения Linux поставляются с руководством по их сборке.

Артем Сергеевич Ташкинов
источник