だいぶ前だがOpenSSLに脆弱性が発見された。
https://jvn.jp/vu/JVNVU96083153/index.html
脆弱性修正済みバージョン
3.6.2
3.5.6
3.4.5
3.3.7
3.0.20
しかし通常のapt upgradeなどでは、修正済みバージョンが出てこないこともある。
Ubuntu 24.04の場合
doe@ubuntu:~$ apt show openssl
Package: openssl
Version: 3.0.13-0ubuntu3.9
Priority: important
Section: utils
Origin: Ubuntu
~~~以下略~~~
ので、OpenSSLから直接ダウンロードして、OpneSSLをアップグレードした。
とは言っても、結局やっていることはmakeでインストールしただけである。
OpenSSLのダウンロードとハッシュ値確認
まずはOpenSSLのホームページから、ターゲットのOpenSSLバージョンを選択し、URLを確認することから始める。
3.5.6がLTSでサポートが長いので、ここでは3.5.6をターゲットとした。
ターゲットが決まったら、ブラウザにて右クリックなどで、”openssl-3.5.6.tar.gz”のURLをコピーする。
コピーしたURLとwgetコマンドを合わせて、以下のようにし、wgetでtarファイルをダウンロードする。
wget https://github.com/openssl/openssl/releases/download/openssl-3.5.6/openssl-3.5.6.tar.gz
私は面倒くさいので、ホームディレクトリにダウンロードしたが、/tmpなどのフォルダでやってもいいかもしれない。
また、OpenSSLのホームページでsha256ハッシュなどもコピーし、
以下のようにechoコマンドで適当なテキストファイルに出力されるようにする。
echo “ハッシュ値 *openssl-3.5.6.tar.gz” > openssl-3.5.6.sha256
そしてsha256sumコマンドで、ダウンロードしたファイルとホームページで確認したハッシュ値を比較する。
sha256sum -c openssl-3.5.6.sha256
以下のように、ハッシュ値が比較が成功していれば、OKである。
doe@ubuntu:~$ sha256sum -c openssl-3.5.6.sha256
openssl-3.5.6.tar.gz: OK
尤も上記の方法では、成りすましの確認などはできないため、セキュリティを気にする場合はPGPでダウンロードファイルを確認するのがいいだろう。
またこの段階で、次のステップに必要な、makeなどもインストールしておく。
これはaptからできる。
インストール前に、パッケージリストの更新も忘れずに。
sudo apt update
sudo apt install build-essential make
OpenSSLのmakeとmake install
ファイルのダウンロードとハッシュ値確認が完了したら、makeでのインストールに進んでいく。
まずはtarファイルを展開することになる。
tar -xzvf openssl-3.5.6.tar.gz
ファイル展開後に、展開されたディレクトリ内に移動し、
展開先ディレクトリにある、config作成用実行ファイル”config”を実行する。
./config
引数等指定できるが、特段指定せずとも適切なフォルダにコマンドやライブラリが格納されるので、問題ない。
“OpenSSL has been successfully configured”と表示され、make用の設定の生成が成功すれば、makeでのinstallに進んでいく。
sudo make
sudo make install
環境変数の設定
インストールが完了したら、バージョンを確認する。
openssl version
しかし以下のようにエラーが出るはずである。
(環境によっては出ないかもしれない。その時はおめでとうございます。)
doe@ubuntu:~$ openssl version
openssl: /lib/x86_64-linux-gnu/libssl.so.3: version `OPENSSL_3.4.0′ not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libssl.so.3: version `OPENSSL_3.2.0′ not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.3.0′ not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.5.0′ not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.4.0′ not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.2.0′ not found (required by openssl)
これは、今回インストールしたOpenSSLのライブラリが格納されているディレクトリが、正しく環境変数などにも反映されていないために起きている。
なので、ホームディレクトリの.bashrcファイルに、以下の環境変数の設定を追加し、再起動等を行いシェルの再読み込みを行えば解決する。
export LD_LIBRARY_PATH=/usr/local/lib64
再度OpenSSLのバージョン確認コマンドを実行し、現在有効なopensslのバージョンを確認する。
doe@ubuntu:~$ openssl version
OpenSSL 3.5.6 7 Apr 2026 (Library: OpenSSL 3.5.6 7 Apr 2026)
念のため、古いバージョンのOpenSSLは、ファイル名を変えておくとよいかもしれない。
sudo mv /bin/openssl /bin/openssl.old
doe@ubuntu:~$ /bin/openssl version
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.5.6 7 Apr 2026)
doe@ubuntu:~$ sudo mv /bin/openssl /bin/openssl.old

コメント