zzz0mbie
@zzz0mbie

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Apacheで使用されるOpenSSLのバージョンを変更したい

解決したいこと

Apacheが認識するOpenSSLのバージョンを変更したい

発生している問題・エラー

OS:Ubuntu 20.04.3

UbuntuのOpenSSLを1.1.1f→3.0.9にアップデートしました。
しかし、/var/log/apache2/error.log を見ると、Apacheが認識しているOpenSSLは1.1.1fのままでした。

[Fri Jul 21 18:09:09.947365 2023] [mpm_prefork:notice] [pid 718233] AH00163: Apache/2.4.57 (Ubuntu) OpenSSL/1.1.1f configured -- resuming normal operations

Apacheを再コンパイルする必要があるようなのですが、調べても詳しいやり方が分かりませんでした。
ヒントを頂けると幸いです。よろしくお願いいたします。

0

1Answer

Comments

  1. @zzz0mbie

    Questioner

    回答ありがとうございます。
    何度もApache再起動しているのですが、変化ありません( ; ; )

  2. 以下の記述があるので、OpenSSLのバージョンが1.1.1であることは正常に動作しているように見えます。

    Apache HTTP Server version 2.4.43 or newer is required in order to operate a TLS 1.3 web server with OpenSSL 1.1.1.

  3. opensslのバージョンはどのように確認しましたか? 以下のコマンドを実行するとどうなりますか?

    openssl version
    

    Apacheのバージョンはいくつですか?

    apachectl -v
    

    また、opensslのアップデートはどのように行いましたか?

  4. @zzz0mbie

    Questioner

    $ openssl version
    OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023)
    
    $ apachectl -v
    Server version: Apache/2.4.57 (Ubuntu)
    Server built:   2023-04-08T12:55:47
    

    OpenSSLのアップデート手順は下記になります。

    $ cd /usr/local/src/
    $ sudo wget https://www.openssl.org/source/openssl-3.0.9.tar.gz
    $ sudo tar xvf openssl-3.0.9.tar.gz
    $ cd openssl-3.0.9
    $ sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
    $ sudo make
    $ sudo make install
    # 新しいバージョンのOpenSSLは/usr/local/ssl/bin64からファイルをロードするので、その場所へのリンクを作る
    $ sudo vi /etc/ld.so.conf.d/openssl-3.0.9.conf
    $ cat /etc/ld.so.conf.d/openssl-3.0.9.conf
    /usr/local/ssl/lib
    /usr/local/ssl/lib64
    $ sudo ldconfig -v
    # /usr/bin/opensslにある OpenSSL バイナリを/usr/local/ssl/bin/opensslにある新しいバージョンに置き換える
    # まずバイナリファイルをバックアップ
    $ sudo mv /usr/bin/c_rehash /usr/bin/c_rehash.BAKUP
    $ sudo mv /usr/bin/openssl /usr/bin/openssl.BAKUP
    # リンクを作成
    $ sudo ln -sf /usr/local/ssl/bin/openssl /usr/bin/openssl
    $ sudo ln -sf /usr/local/ssl/bin/c_rehash /usr/bin/c_rehash
    # /etc/environment を編集
    $ sudo vi /etc/environment
    # PATH の最後に「/usr/local/ssl/bin」を追加して保存
    # 環境変数をリロード
    $ source /etc/environment
    $ echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin
    # バージョン確認
    $ openssl version
    OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023)
    
  5. なるほど。状況を理解しました。すいません、私の理解力が足りませんでした。

    OpenSSLをソースからビルドして3.0.9を使用可能としたのですね。

    だから、apacheもソースコードからビルドする必要があるということですね。

    それでしたら、以下が参考になると思います。

  6. @zzz0mbie

    Questioner

    分かりにくい説明で申し訳ありませんでした:sweat_drops:
    教えていただいたページを参考にやってみます。
    ありがとうございます。

Your answer might help someone💌