アプリ版:「スタンプのみでお礼する」機能のリリースについて

環境は
RedHat7.3
httpd-2.0.54.tar.gz
openssl-0.9.7g.tar.tar

sslはsharedで入れたい

主にhttp://solaris.ddo.jp/apache-ssl.htmlを参照

このサイトでmv cacert.pem cacert.pem.orgはcp cacert.pem.org cacert.pemにした

configureは変更(文字数オーバで省略)

そしてstartsslで下記エラーです

./apachectl startssl
Syntax error on line 251 of /usr/local/apachetest/conf/httpd.conf:
Cannot load /usr/local/apachetest/modules/mod_ssl.so into server: /usr/local/apachetest/modules/mod_ssl.so: undefined symbol: X509_free


./apachectl -tはSyntax OK

httpd.confの251行目は
LoadModule ssl_module modules/mod_ssl.so

mod_ssl.soのlddはOKと思います

configureから4回やり直したがだめ

最後のインストール時の:
./configure \
--enable-mods-shared=all \
--enable-so \
--prefix=/usr/local/apachetest \
--with-ssl=/usr/local/ssl

1回目からprefixは変更してません。変更ファイルは残るので鍵の再作成はしていません。

sslでない起動はできてます。

どなたか現象の原因や解決策に心当たりがありましたら投稿願います

A 回答 (4件)

同じエラーに苦しみ、検索したら、


ここにたどり着いた、後の自分のためにメモ。

まず、参照するサイト
http://www.stackasterisk.jp/tech/systemConstruct …
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

ここを参照すれば、ほとんど解決

[簡単にメモ]
opensslのconfigureは -fPIC shared 両方つけてコンパイルしてOK --prefix --openssldir だとかを設定しないと、/usr/lib/ssl/openssl.cnfを見に行くようになることがあるので注意。 
これで、make install。

次に、opensslのライブラリを読み込む必要があるが、

1) ldconfigでsslライブラリを読み込むなら

/etc/ld.so.confに/usr/local/ssl/libと書き込んで、ldconfig実行libssl.so.0.9.7だとか、他のSSL関連LIBがloadingされていればOK

2) LD_LIBRARY_PATHを追加
/usr/local/ssl/libをLD_LIBRARY_PATHに設定してればOK 

apache側は ./configure --with-ssl=/usr/local/ssl --enable-modules="so ssl" とso sslを設定すること。
--enable-mods-sharedでso sslを設定してもOK  
こんなもんで、X509_freeのエラーは無くなる。
 まぁ、いい加減だけど、ここまで書けば、残りのこまかいところは、やれるかな。
    • good
    • 0
この回答へのお礼

goooog_2005様

回答ありがとうございます。
また、お礼が遅くなって、大変失礼致しました。
遅くなった言い訳ですが、
先週末自宅でgoooog_2005様から回答を頂いたことを知り、
ちょうど今週はApache触れる時間が取れるはずだと思っていたので、
試してみてから結果を合わせて返事を書こうと思っていたのです。

しかし、結局触れないまま、1週間たってしまった、
といった状況です。

現状、この作業自体が仕事として必要が無くなり、
あとは個人的なstudyの扱いになってしまい、
ますます時間を作るのが厳しくなってしまいした。

教えてgooからは、今日も締め切ってください
とメールが来てしまいましたが・・・
いつまで締め切らずにいられるのだろう。。

goooog_2005様には大変失礼をしてしましました。
また、回答書いていただいて本当にありがとうございました。

お礼日時:2005/05/27 12:29

OpenSSLをmod_sslに対して静的に組み込むか動的に組み込むかによってやり方が異なります。



A.静的に組み込む場合

1. OpenSSLを以下のオプションでConfigureします。

./config -fPIC no-idea no-rc5

この-fPICというのが非常に重要です。

2. Apache-2.0.54をインストールします。

./configure \
--enable-mods-shared=all \
--with-ssl=/usr/local/ssl

3. 全ての作業が終わればOpenSSLのインストールディレクトリはバッサリと削除してしまって問題ありません。

B.動的に組み込む場合 (正式サポートされていません)

1. OpenSSLを以下のオプションでConfigureします。

./config -shared no-idea no-rc5

2. Apache-2.0.54をインストールします。

./configure \
--enable-mods-shared=all \
--with-ssl=/usr/local/ssl

3. /etc/ld.so.confを編集し、/usr/local/ssl/libを追加します。
    • good
    • 0
この回答へのお礼

entree様

回答ありがとうございます。

OpenSSLは、configオプションを何も指定せずにインストールしていました。

openSSLも動的に組み込まないといけないかどうかは、
会社の資料を参照しないとわからないのですが、
確認後、試してみようと思います。

あ、会社の資料というのは、別で導入テスト
してみないといけないApacheのプラグインがあって、
そもそもmod_sslをsharedでというのは、
そのプラグインの仕様です。

申し上げにくいのですが、本日からGWで、
教えていただいたことを試させて頂くのが、
5月中ごろの予定です。。

試した後、うまくssl起動できるかどうか、
また報告致します。

本当にありがとうございます。

お礼日時:2005/04/29 16:00

mod_sslをshared(DSO)という事でいいんですよね?



1. opensslの共有ライブラリ(shared libraries)を以下の手順で作成し、インストールしてください。

ちなみにINSTALLに「Note on shared libraries」という項目があるので一度参照してください。
それを参照して、共有ライブラリを作成したくない場合、mod_sslはstaticでApacheに組み込んでください。

# ./config shared
# make
# make test
# make install

2. ldconfigコマンドや環境変数LD_LIBRARY_PATH等で、1.でインストールしたライブラリがサーチ出来るようにする。
また、Apacheの起動時も同様にopensslのライブラリがサーチ出来る状態になっている必要があります。

例:ライブラリが/usr/local/ssl/libにある場合

・Borne shell系
# LD_LIBRARY_PATH="/usr/local/ssl/lib:$LD_LIBRARY_PATH"
# export LD_LIBRARY_PATH

・csh系
# setenv LD_LIBRARY_PATH /usr/local/ssl/lib:$LD_LIBRARY_PATH

3. Apacheのインストール

# ./configure --prefix=/usr/local/apachetest \
--with-ssl=/usr/local/ssl \
--enable-so \
--enable-mods-shared="all ssl"

※オプションは必要に応じて変更してください。

上記設定で、DSO(shared)なモジュール。
-------8<-------8<-------8<-------8<-------8<-------
DSO_MODULES=' access auth auth_anon auth_dbm auth_digest ext_filter include log_config log_forensic env mime_magic cern_meta expires headers usertrack unique_id setenvif ssl mime dav status autoindex asis info cgi dav_fs vhost_alias negotiation dir imap actions speling userdir alias rewrite'
-------8<-------8<-------8<-------8<-------8<-------

# make
# make install

4. 念のための設定
システムが再起動してもopensslのライブラリが参照出来る設定(ldconfig等)が行われるならこの作業は不要。

apachectlコマンドと同じ場所にenvvarsというLD_LIBRARY_PATHを設定するapachectlから呼ばれるシェルスクリプトがあるのでそこに1.でインストールしたライブラリがあるディレクトリを追加しておく。

これで、SSL使用でApacheを起動させて起動するか確認してみてください。
    • good
    • 0
この回答へのお礼

Lean様

2度も回答して頂いて本当にありがとうございます。
昨日は早い時間で帰ってしまったので、
お礼が遅くなってごめんなさい。

ほかの方への返信でも申し上げていますが、
教えていただいたことを試させて頂くのが、
5月中頃の予定です。。。

試した後、Apacheがssl起動できるかどうか、
また報告致します。

本当にありがとうございます。

教えてgooには、ダメもとで書いてみたのですが、
まさか、こんなにたくさん回答をもらえるとは
思っていませんでした。
休みの前日になってから投稿したことを、
もう一日でも早く投稿していればと後悔しています。

お礼日時:2005/04/29 16:10

configure実行時、--enable-sslを指定していますか?


指定していないなら、--enable-sslを追加してconfigureを実行してみてください。

% ./configure --help
<途中、省略>
Optional Features:
 --enable-ssl SSL/TLS support (mod_ssl)
<以下、省略>
    • good
    • 0
この回答へのお礼

Lean様

さっそくの回答ありがとうございます。
--enable-ssl=shared
を指定してインストールしていました。

ですが、解決できないので、
http://www.yggdrasil.jp/bbs/smplbbs.rhtml?limit= …
のサイトの通りのオプションでconfigureしたのを最初の質問欄に記載しました。


文字数がオーバーしたので、省略してしまったのですが、1回目と2回目のconfigureは下記の通りです。

一回目のインストール時のconfigure:
./configure \
--prefix=/usr/local/apachetest \
--with-ssl=/usr/local/ssl \
--disable-ipv6 \
--enable-rule=SHARED_CORE \
--enable-module=so \
--enable-module=expires \
--enable-module=headers \
--enable-module=usertrack \
--enable-module=vhost_alias \
--enable-mods-shared=all \
--enable-ssl=shared

一回目のインストール時のconfigure:
./configure \
--prefix=/usr/local/apachetest \
--with-ssl=/usr/local/ssl \
--enable-mods-shared=all \
--enable-ssl=shared \
--enable-so \
--enable-cgi \
--enable-expires \
--enable-headers \
--enable-usertrack \
--enable-vhost-alias

何か、お気づきの点がありましたら、ご教授いただけたらと思います。

回答を書いていただいて、ありがとうございます。

お礼日時:2005/04/28 15:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!