• ベストアンサー

openssl versionのバージョンとtelnetで取得される情報が異なる

脆弱性対策のため、openssl-0.9.8bからopenssl-0.9.8kのバージョンアップを下記のように行いました # cd openssl-0.9.8k # ./config # make # make install openssl version  OpenSSL 0.9.8k しかし、telnetで確認したところ、OpenSSL/0.9.8bのままでした 実際にapacheから利用しているopensslについても同様に0.9.8kを反映したいのですが、opensslのバージョンアップ時やapacheに何か手を加えることが必要なのでしょうか? よろしくお願いします 参考) OS:Solaris 9 apache:httpd-2.2.3

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.4

/usr/local/ssl の下に libcrypto.so.0.9.8 や libssl.so.0.9.8 というファイルはありますか。 おそらくないと思いますが、これらのファイルが なく libcrypto.a や libssl.a があるなら、 静的リンクされています。 その場合は、残念ながら再インストール ( configure ~ make, make install, Apache 再起動 ) するしかありません。 ごそっと入れ替わってしまうのが心配であれば mkdir -p /tmp/usr/local/apache2 make install DESTDIR=/tmp のようにすれば、/tmp/usr/local/apache2 にインストール されるので、そこから bin と modules を本来の場所に コピーしてもよいと思います。 問題が起こったときのために必ずバックアップをとってから 行うようにしてください。

woixu
質問者

お礼

opensslのバージョンアップ(静的)を行いapache2の再コンパイルをしたところ、telnetで取得される情報に反映することが出来ました アドバイス、大変ありがとうございました

woixu
質問者

補足

回答ありがとうございます libssl.so*やlibcrypto.so*は存在しなく、/usr/local/ssl/lib/*.aがあるので、やはり静的なのかと思います >その場合は、残念ながら再インストール >( configure ~ make, make install, Apache 再起動 ) >するしかありません。 >ごそっと入れ替わってしまうのが心配であれば >mkdir -p /tmp/usr/local/apache2 >make install DESTDIR=/tmp >のようにすれば、/tmp/usr/local/apache2 にインストール >されるので、そこから bin と modules を本来の場所に >コピーしてもよいと思います。 再インストールの必要があるのですね、、 別の場所にインストールする案、ありがとうございます 今回0.9.8bにならい0.9.8kをconfigしたのですが、apacheの再インストールの必要がなかったり現在の環境やssl認証に問題がなければ、動的にすることも考えています

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.3

> # cd openssl-0.9.8k > # ./config > # make ./config shared としないと動的リンクに使用する 共有ライブラリは作られないようです。 なので ./config で作成した OpenSSL を使う場合は Apache を再コンパイルする必要があります。 OpenSSL の共有ライブラリを作った場合は、Apache が 共有ライブラリを使用するようコンパイルされているか、 使用する共有ライブラリのファイルがコンパイル した OpenSSL のライブラリと同じになっているか確認 してください。 Apache が使用している共有ライブラリは、wildcat-yp さんが 書かれている ldd (Solaris にもありますか ?) で調べます。

woixu
質問者

補足

apacheの再コンパイルでは、config→make→make install→apache再起動までを指すのでしょうか? httpd.confやhttpd-ssl.confなど認証局の関係でインストール後に変更しているものがあるので、できれば影響が少ない方がいいと思い再インストールは避けたいのです ※インストール済みのapacheのコンパイル方法 ./configure --enable-so --enable-shared --enable-ssl --with-ssl=/usr/local/ssl --enable-mime-magic

すると、全ての回答が全文表示されます。
回答No.2

opensslは動的リンクですか? mod_sslかhttpdをlddコマンドで確認してみて、opensslが動的にリンクされているかどうか確認できます。 ところでtelnetで確認というのは、telnetで80ポートにアクセスした際のApacheのサーバーステータスを確認したということですよね? もし普通にTelnetでログインした時の環境が古いままということであれば単なるパスの設定やLD_LIBRARY_PATHの設定がおかしいのだと思います。

woixu
質問者

補足

lddコマンドで確認した内容になります # ldd /usr/local/apache2/bin/httpd libm.so.1 => /usr/lib/libm.so.1 libaprutil-1.so.0 => /usr/local/apache2/lib/libaprutil-1.so.0 libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0 libiconv.so.2 => /usr/local/lib/libiconv.so.2 libapr-1.so.0 => /usr/local/apache2/lib/libapr-1.so.0 libuuid.so.1 => /usr/lib/libuuid.so.1 libsendfile.so.1 => /usr/lib/libsendfile.so.1 librt.so.1 => /usr/lib/librt.so.1 libsocket.so.1 => /usr/lib/libsocket.so.1 libnsl.so.1 => /usr/lib/libnsl.so.1 libpthread.so.1 => /usr/lib/libpthread.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libc.so.1 => /usr/lib/libc.so.1 libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libaio.so.1 => /usr/lib/libaio.so.1 libmd5.so.1 => /usr/lib/libmd5.so.1 libmp.so.2 => /usr/lib/libmp.so.2 libthread.so.1 => /usr/lib/libthread.so.1 /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1 /usr/platform/SUNW,Sun-Fire-V240/lib/libmd5_psr.so.1 静的リンクかと思うのですが、どうでしょうか? (0.9.8bのインストール時も同様にconfigオプションはつけていません) telnetの確認方法は、「telnet localhost 80」という風に80ポートにアクセスしました 結果は「Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.8b」になります ここでバージョンアップした0.9.8kが表示されないということは、うまく反映していないことになりますよね? よろしくお願いします

すると、全ての回答が全文表示されます。
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

OpenSSL の更新後、Apache を再起動しましたか。

woixu
質問者

お礼

早速の回答ありがとうございます はい、バージョンアップ後に再起動したのですが、反映されませんでした よろしくお願いします

すると、全ての回答が全文表示されます。

関連するQ&A