• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OpenSSLのバージョンアップがうまくいかない)

OpenSSLのバージョンアップでエラーが発生し対策が必要か

このQ&Aのポイント
  • OpenSSLのバージョンアップがうまくいかないため、対策が必要か
  • makeの際にエラーが発生し、sh: cc: 見つかりません。というメッセージが表示されたため、パスを通して再度実施したが/usr/ucb/cc: language optional software package not installedというメッセージが表示された
  • openssl-0.9.8kのMakefileにおいて、openssl-0.9.8bとは異なり、CCの値がccではなくgccとなっていることが判明した

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

  • ベストアンサー
noname#227025
noname#227025
回答No.5

> 0.9.8bにならい今回のバージョンアップを行なったのですが、現在の環境(apacheの設定やssl認証)に影響がなければ、sharedをつけてconfigしなおすことも考えています OpenSSL のライブラリのリンク方法(静的 or 動的)だけの問題ですので、基本的に apache の設定や ssl 認証には影響しないはずです。 > 共有ライブラリを使用するようにコンパイルするには、--enable-modulesのオプションに生成されたファイルを設定するのでしょうか? 認識違いをされていると思いますが、--enable-modules オプションは apache 自体のモジュールに対するものですので、apache 以外のモジュールである OpenSSL のリンク方法の設定には関係ありません。 共有ライブラリと静的ライブラリの両方が存在する場合、基本的に共有ライブラリの方がリンクされます。 なお、OpenSSL の config において shared オプションを指定すると、共有および静的ライブラリの両方が生成されますが、上記のとおり共有ライブラリの方が使用されます。 また、apache のバイナリが静的か動的どちらでリンクされているのかの確認は ldd コマンドで可能です。 > そのあとmakeして(make installはせず)再起動すればよいのでしょうか? 一度だけですが OpenSSL のライブラリを動的にリンクするようにした apache のバイナリをインストールすることが必要です。 つまり make install あるいは手作業で、静的にリンクしたものから動的にリンクしたものへバイナリを入れ替える必要があります。 一度動的にリンクしたバイナリをインストールしておけば、その後再度 OpenSSL のライブラリを入れ替えても apache のリコンパイルが必要なくなるということです。 (正確に言うと apache のリコンパイルではなく、OpenSSL のライブラリのリンクのしなおしです。動的にリンクするようにしておけばライブラリを入れ替えると自動的に入れ替えたライブラリがリンクされる。) もちろん OpenSSL のライブラリを動的にリンクした場合も、それを反映させるために apache の再起動は必要です。

woixu
質問者

お礼

記述場所がわからなかったのでこちらで失礼します リンク方法は現状の設定と同じく静的とし、opensslのバージョンアップを行いapache2を再コンパイルしたところ、アドバイスいただいたように、設定ファイルなどに影響なく反映することが出来ました 丁寧に教えていただきまして大変助かりました ありがとうございました

woixu
質問者

補足

回答ありがとうございます >OpenSSL のライブラリのリンク方法(静的 or 動的)だけの問題ですので、基本的に apache の設定や ssl 認証には影響しないはずです。 ありがとうございます、安心しました アドバイスから、やはり動的にするのがよさそうですね >認識違いをされていると思いますが、--enable-modules オプションは apache 自体のモジュールに対するものですので、apache 以外のモジュールである OpenSSL のリンク方法の設定には関係ありません。 すみません、、 httpd.confのLoadModuleでしょうか >また、apache のバイナリが静的か動的どちらでリンクされているのかの確認は ldd コマンドで可能です。 opensslをやり直してみたのですが # ./config shared # make この時点でエラーが出てしまいました、、 以下エラー抜粋です making all in crypto... making all in crypto/objects... making all in crypto/md2... ・・・ ld: 重大なエラー: 割り当て可能ですが、書き込めないセクションに対して再配置が残っています。 collect2: ld returned 1 exit status *** Error code 1 make: Fatal error: Command failed for target `link_a.solaris' ・・・ 以下現状確認した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 # ldd /usr/local/ssl/bin/openssl libsocket.so.1 => /usr/lib/libsocket.so.1 libnsl.so.1 => /usr/lib/libnsl.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libc.so.1 => /usr/lib/libc.so.1 libmp.so.2 => /usr/lib/libmp.so.2 /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1 パスなどの問題でしょうか? アドバイスいただけたら幸いです よろしくお願いします >一度だけですが OpenSSL のライブラリを動的にリンクするようにした apache のバイナリをインストールすることが必要です。 >つまり make install あるいは手作業で、静的にリンクしたものから動的にリンクしたものへバイナリを入れ替える必要があります。 やはり必要なのですか… しかし一度うまく行けば…確かにそうですね たび重なる質問ですが、よろしくお願いします

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

その他の回答 (5)

noname#227025
noname#227025
回答No.6

> opensslをやり直してみたのですが > # ./config shared > # make > この時点でエラーが出てしまいました、、 ./config shared する前に make clean してますか?

woixu
質問者

お礼

回答への補足に追加したい思いますのでこちらで失礼させていただきます 宜しくお願い致します httpd.confやhttpd-ssl.confなどの設定ファイル以外にも /usr/local/apache2/の下やhtdocsの下などに新規フォルダやファイルを作成しています apacheを再コンパイルするとそれらにも影響があるのでしょうか? アンインストールするわけではないので現状のまま影響がないように思うのですが… >リコンパイルですので make は必要ですが、 >入れ替えが必要なのは OpenSSL のライブラリ(libcrypto, libssl)を >リンクしているバイナリだけですので、 >必ずしも make install する必要はありません。 >手作業で必要なバイナリのみ入れ替えればよいのです。 インストール後に変更した設定ファイルや新規作成したものなどの影響を心配もあり、 xinuさんのおっしゃるように、make installはせずに必要なバイナリのみを入れ替える方法も調べてみたのですがちょっとわからない状況です すみませんが宜しくお願い致します

woixu
質問者

補足

ご返事いただいたのに、追記が遅くなってしまい大変申し訳ございません しばらく立て込んでおりまして、こちらの作業が中断している状態でした (まだ、make cleanをしていない状態であります) xinuさまもおっしゃるように 静的リンク、動的リンク(共有ライブラリ)、どちらにしてもapacheの再コンパイルが必要なようなので 今回は応急処置として静的リンクのまま反映するようにしたいと思います 動的をテストしてからとも思ったのですが >共有ライブラリと静的ライブラリの両方が存在する場合、基本的に共有ライブラリの方がリンクされます。 ということでしたので、現状makeで失敗している=静的リンクのまま >そのため、新たなスタティックなライブラリをリンクしなおすため、apache のリコンパイルが必要になります。 こちらを検討したいと思います >リコンパイルですので make は必要ですが、入れ替えが必要なのは OpenSSL のライブラリ(libcrypto, libssl)をリンクしているバイナリだけですので、 >必ずしも make install する必要はありません。手作業で必要なバイナリのみ入れ替えればよいのです。 >(make 時のログを script コマンドなどで残しておけば、入れ替えが必要なバイナリはわかりますよね。) 手作業で必要なバイナリのみ入れ替える方法に自信がないので、make installの方が逆にいいのではないかと悩んでいます >上記のように必要最低限のバイナリのみ手作業で入れ替えれば、設定情報には影響ありません。 apacheのサイトにもアップグレードの場合は設定ファイルなど上書きしないとあったのですが 今回バージョンアップは考えておらず、httpd-2.2.3をそのまま再コンパイルするならば、 前にインストールした後に変更したものなど、全て上書きになってしまうのでしょうか? >また、make install する前に必要な設定ファイルなどをバックアップしておき、make install 後にバックアップしておいたものに戻すという方法もあります。 やはりこちらの方法になりますでしょうか それとも最新のバージョン(2.2.14?)にした方が、設定ファイルに影響がなくいいのでしょうか? バージョンの違いによる影響も不安でしたので、apacheについては極力手をかけないと思ってはいるのですが、、、 勉強不足で大変申し訳ないのですが ご教授宜しくお願い致します

全文を見る
すると、全ての回答が全文表示されます。
noname#227025
noname#227025
回答No.4

> リコンパイルは、makeやmake installまでも指しますよね? リコンパイルですので make は必要ですが、入れ替えが必要なのは OpenSSL のライブラリ(libcrypto, libssl)をリンクしているバイナリだけですので、必ずしも make install する必要はありません。 手作業で必要なバイナリのみ入れ替えればよいのです。 (make 時のログを script コマンドなどで残しておけば、入れ替えが必要なバイナリはわかりますよね。) > httpd.confやhttpd-ssl.confなど認証局の関係でインストール後に変更しているものがあるので、できれば再インストールは避けたいと思っています > そのあたりに影響が出ない方法があればと思っています 上記のように必要最低限のバイナリのみ手作業で入れ替えれば、設定情報には影響ありません。 また、make install する前に必要な設定ファイルなどをバックアップしておき、make install 後にバックアップしておいたものに戻すという方法もあります。 あと蛇足ですが、スタティックなライブラリを使用していると、再度 OpenSSL の入れ替えが発生した場合、今回のように apache も再度コンパイルしなければなりません。 OpenSSL の config で shared オプションをつけてビルドすれば、共有ライブラリが生成されますので、今回 apache も共有ライブラリを使用するようにリコンパイルすれば、その後は OpenSSL の共有ライブラリだけ入れ替えれば済む(apache をリコンパイルしなくてもよい)ようになります。

woixu
質問者

補足

回答ありがとうございます >上記のように必要最低限のバイナリのみ手作業で入れ替えれば、設定情報には影響ありません。 >また、make install する前に必要な設定ファイルなどをバックアップしておき、make install 後にバックアップしておいたものに戻すという方法もあります。 静的リンクの場合はどちらかで行なう必要があるのですね 影響がない方法をありがとうございます >あと蛇足ですが、スタティックなライブラリを使用していると、再度 OpenSSL の入れ替えが発生した場合、今回のように apache も再度コンパイルしなければなりません。 >OpenSSL の config で shared オプションをつけてビルドすれば、共有ライブラリが生成されますので、今回 apache も共有ライブラリを使用するようにリコンパイルすれば、その後は OpenSSL の共有ライブラリだけ入れ替えれば済む(apache をリコンパイルしなくてもよい)ようになります。 そうですよね 0.9.8bにならい今回のバージョンアップを行なったのですが、現在の環境(apacheの設定やssl認証)に影響がなければ、sharedをつけてconfigしなおすことも考えています 現状以下のコンパイル方法でapacheがインストールされています ./configure --enable-so --enable-shared --enable-ssl --with-ssl=/usr/local/ssl --enable-mime-magic 共有ライブラリを使用するようにコンパイルするには、--enable-modulesのオプションに生成されたファイルを設定するのでしょうか? そのあとmakeして(make installはせず)再起動すればよいのでしょうか? よろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
noname#227025
noname#227025
回答No.3

> 0.9.8bのインストール時もconfigオプションはつけていなく apache はコンパイルしなおしましたか? config に何もオプションを指定しないと、共有ライブラリは生成されず、スタティックなライブラリしか生成されません。 そのため、新たなスタティックなライブラリをリンクしなおすため、apache のリコンパイルが必要になります。

woixu
質問者

補足

回答ありがとうございます apacheのリコンパイルはしていません リコンパイルは、makeやmake installまでも指しますよね? httpd.confやhttpd-ssl.confなど認証局の関係でインストール後に変更しているものがあるので、できれば再インストールは避けたいと思っています そのあたりに影響が出ない方法があればと思っています よろしくお願いします ※インストール済みのapacheのコンパイル方法 ./configure --enable-so --enable-shared --enable-ssl --with-ssl=/usr/local/ssl --enable-mime-magic

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

確認なのですが、openssl-0.9.8b と openssl-0.9.8k をインストールした場所は一致していますか? もし違うなら、一致するように config のオプション --prefix, --openssldir で指定する必要があります。

woixu
質問者

お礼

回答ありがとうございます はい、インストール場所は一致しています /usr/local/ssl 0.9.8bのインストール時もconfigオプションはつけていなく 今回も同様にデフォルトの場所にインストールしたいのでつけませんでした openssl versionで0.9.8kと結果がでるのでインストールされていると思うのですが... 何かパスとかの関係なのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
noname#227025
noname#227025
回答No.1

/usr/ucb/cc はただのラッパスクリプトで Solaris9 ではコンパイラとして使用できませんので、/usr/ucb はパスから外さなければなりません。 また、config ファイルの中を確認すると分かりますが、gcc にパスを通しておかなければなりません。

woixu
質問者

お礼

回答ありがとうございます 補足)質問の記述が一部間違っていたので訂正します openssl-0.9.8k  (誤)PLATFORM=solaris-sparcv9-gcc  (正)PLATFORM=solaris-sparcv9-cc /usr/ucbをパスからはずし、代わりにgccにパスを通してconfigから実施したところ、うまくインストールができました ありがとうございます openssl version  OpenSSL 0.9.8k しかし、telnetで確認したところ、OpenSSL/0.9.8bのままでした 実際にapacheから利用しているopensslについても同様に0.9.8kを反映したいのですが、apacheに何か手を加えることが必要なのでしょうか? よろしくお願いします

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

関連するQ&A

  • 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

  • OpenSSLのバージョンアップについて

    OpenSSLのバージョンアップに伴い、質問させていただきます 宜しくお願いします 現在「openssl-0.9.8b」を利用していますが、 脆弱性があることからopenssl-0.9.8c以上へのバージョンアップを考えています そこでどのバージョンをインストールしようかと検討中なのですが やはり最新の「openssl-0.9.8k」がインストールした方がよいのでしょうか? また、バージョンアップした場合、不具合や設定等、何か影響することがあるのでしょうか? どなたかご教授ください 宜しく御願いします (参考) OS:Solaris 9 apache:httpd-2.2.3

  • solaris9にインストールできるフリーのコンパイラ

    Solaris9にフリーのコンパイラをインストールしたいのですが、なかなかありません。 gccをインストールしようとしたのですが、下記のエラーが出てしまいます。 /usr/ucb/cc: language optional software package not installed Solaris9にインストールできるフリーのコンパイラをご存知の方、もしくは 上記エラーの解決策をご存知の方はおしえてください。 よろしくお願いします。

  • Solaris10でdelegateをインストール

    OS:Solaris10(SPARC)を使っています。 delegateのインストールをしようとしているのですが 解凍したあとmakeコマンドを入れると # cd work/delegate8.95 # /usr/ccs/bin/make すると、以下のメッセージがでます。 cc -DMKMKMK -DDEFCC=\"cc\" -I../include -L../lib mkmkmk.c -o mkmkmk.exe /usr/ucb/cc:language optional software package not installed **Error Code 1 make:Fatal error :Command failed for target 'mkmake.exe' # /usr/ccs/bin/make CC=gcc と入れても sh:gcc 見つかりません とエラーがでます。 コンパイラがインストールできていないのでしょうか?それともパスの設定がまずいのでしょうか? どこから手をつけてよいかわからない状態です。アドバイスをよろしくお願い致します。

  • opensslインストールできない

    はじめまして。 初心者で勉強中なんでが、Googleで調べてもよくわりません。 教えていただけたら幸いです。 現状は、Solaris10で、OpenSSLのインストールをしているんですが エラーになり困っています。 Configure make は、エラーがなしで行きました。 make testでエラーになります。 OpenSSL openssl-0.9.8l ./Configure solaris-x86-gcc shared -fPIC  make make test making all in apps... make[3]: ディレクトリ `/usr/local/src/openssl-0.9.8l/apps' に入ります make[3]: `all' に対して行うべき事はありません. make[3]: ディレクトリ `/usr/local/src/openssl-0.9.8l/apps' から出ます make[2]: ディレクトリ `/usr/local/src/openssl-0.9.8l' から出ます ../util/shlib_wrap.sh ./destest make[1]: *** [test_des] セグメント例外 (コアダンプしました) make[1]: ディレクトリ `/usr/local/src/openssl-0.9.8l/test' から出ます make: *** [tests] エラー 2 よろしくお願いします。

  • make時にエラーが表示されてしまいます

    現在、ss10を使ってsolarisの勉強をしているのですが、どうしてもmakeを実行した際にエラーが 表示されてしまいます。エラー内容は 『make[2]: cc: Command not found』 『make[2]: *** [raw.o] Error 127』 といったものです。 (それ以外にも『make[2]: Leaving directory』、『make[1]: *** [all] Error 1』といった感じで 表示されますが大したエラーではないかなと勝手に思っております) MakefileやMakefile.confを見てみたり、サイトで検索して『CC=gcc』行を コメントアウトしたりしてみたのですが状況は変わりません。どなたかご教授願えませんでしょうか? こちらの環境は OS:Solaris8(sparc) ハード:ss10 gcc:2.95.3(容量の問題で最新を入れてません) gmake:3.80 他にも足りない情報があれば指摘してください。 よろしくお願いします。

  • ccが動かない on Solaris

    こんばんは。 最近Solaris 8 for Intel(10/00)に挑戦しているものです。 コンパイルの時に必要となるcc(C++コンパイラ?)のことで質問があります。 ccを実行しようとすると、こんなエラーがでます。 $ cc /usr/ucb/cc: language optional software package not installed 原因を探るために/usr/ucb/ccを見たところ、 /usr/ccs/bin/ucbccがないとのことです。 さらに調べていくうちに、/opt/SUNWspro/bin/ccへのシンボリックリンクを /usr/ucb/ccとして置けばいいということがわかりました。 しかし、/opt/SUNWspro/というフォルダがないのです。 できるかぎり無駄は省きたいので、最小構成でインストールし、 CompanionからはGCCしかインストールしていません。 何か/opt/SUNWspro/以下にインストールするパッケージがあるのでしょうか。 SOFTWARE 2 of 2やCompanionには そういう雰囲気を漂わせているパッケージはありませんでしたが・・・。 どうすればよいのでしょうか。 /opt/SUNWspro/以下にインストールするパッケージは何でしょうか。 コンパイルができないとほとんどなにもできません(^^; どなたか、どんなことでもよいので情報があったら教えてくださいませm(_ _)m

  • mrtgの設定について

    お世話になります。(勉強中の初心者です。) バーチャルPCにてSolaris10を入れてmrtgを設定しているのですが うまくいかない所がありますのでご教授をお願いします。 (環境はバーチャルPCなので制限等があると思いますがご教授をお願いします。) ・net-snmp-5.0.11:コンパイル、make、make installはできました ・zlib-1.2.3:コンパイル、make、make installはできました ・libpng-1.2.29:コンパイル(できました)make(失敗)  →libpng-1.2.29のmakeコマンドにて下記のようにエラーメッセージ  が出て困っています。 # make cc -I../zlib -O -c png.c /usr/ucb/cc: language optional software package not installed *** Error code 1 make: Fatal error: Command failed for target `png.o' よろしくお願いします。

  • apache OpenSSLの格納場所は?

    当方、windows7 32bitでwwwサーバを組んでいる超初心者です。 apacheは2.2.25、Active Perlは5.16.3.1で OpenSSLは1_0_1です。、 c/apache softoware Foundation c/perl c/openssl 以上の場所にインストールしています。 http://tako.jugem.cc/?eid=719 これの通りやって openssl versionとコマンド入力しても問題は発生しませんでした。 ここまでは順調でした。 しかし 私のダウンロードしたOpenSSLをインストールしても、 openssl.confがなかったので http://www.gadgety.net/shin/tips/win/apache2.html のソースをコピーペーストして、 openssl.confとしてc/apache softoware Foundation/apache2.2/conf/sslフォルダに 入れました。 openssl req -config openssl.cfg -new -out ./ssl.key/server.csrというコマンドを DOS窓に打ち込んでも指定されたパスが見つかりません。とメッセージが出ます。 私の頭で考えられるのはopenssl.confファイルの場所が違う、或いは拡張子の問題か? と考えていますが、お手上げ状態です。 なにか、これを見てお分かりになった方、教えてくださいませんか? 何が間違っているのでしょうか?

  • DBI Make error

    はじめまして。 Solaris 10 環境で DBI を使用したいのですが、make が上手くできません。 # perl Makefile.PL cc=gcc (中略) Writing Makefile for DBI # make gcc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO -xO3 -xspace -xildoff -DVERSION=\"1.52\" -DXS_VERSI ON=\"1.52\" -KPIC "-I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE" -DDBI_NO_THREADS Perl.c gcc: unrecognized option `-KPIC' gcc: language ildoff not recognized gcc: Perl.c: linker input file unused because linking not done /usr/bin/perl /usr/perl5/5.8.4/lib/ExtUtils/xsubpp -typemap /usr/perl5/5.8.4/lib/ExtUtils/typemap -typemap typemap DBI .xs > DBI.xsc && mv DBI.xsc DBI.c gcc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO -xO3 -xspace -xildoff -DVERSION=\"1.52\" -DXS_VERSI ON=\"1.52\" -KPIC "-I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE" -DDBI_NO_THREADS DBI.c gcc: unrecognized option `-KPIC' gcc: language ildoff not recognized gcc: DBI.c: linker input file unused because linking not done Running Mkbootstrap for DBI () chmod 644 DBI.bs rm -f blib/arch/auto/DBI/DBI.so LD_RUN_PATH="" cc -G DBI.o -o blib/arch/auto/DBI/DBI.so sh: cc: 見つかりません。 *** Error code 1 make: Fatal error: Command failed for target `blib/arch/auto/DBI/DBI.so' perl Makefile.PL で、cc=gcc と指定しているのに、 make で "sh: cc: 見つかりません。" と言われてしまい ました。 どのように指定すればよろしいのでしょうか? ご存知の方がいらっしゃったら、よろしくお願いします。

    • ベストアンサー
    • Perl
このQ&Aのポイント
  • DCP-J926Nというコピー機がオフラインになり、携帯から印刷ができなくなりました。
  • インストールしていたにも関わらず、コピーはできるものの印刷ができずに困っています。
  • スマートフォンから無線LAN経由で接続していますが、問題が発生しました。
回答を見る