1

シンプルなopensslエンジンの開発を始めたばかりです。この過程で、私はこのすばらしいウェブサイトhttp://sinodun.com/2009/02/developing-an-engine-for-openssl/を参照しました。

openssl 1.0.0c をダウンロードし、次のように自分のフォルダーにコンパイルしました。

./config --prefix=/home/workingDir/openssl --openssldir=/home/workingDir/openssl
make
make install

次に、この simple_engine.c ファイルをコピーして simple_engine.o にコンパイルし、共有ライブラリ simple_engine.so をビルドしました。

これらは「workingDir」にあります

これらの手順の後、openssl/apps および openssl1.0.0c/ メイン フォルダーの下にある 2 つの openssl.cnf ファイルを次のように変更しました。

openssl_conf            = openssl_def

[openssl_def]
engines = engines_section

[engines_section]
simple = simple_section

[simple_section]
engine_id = simple
dynamic_path = /home/workingDir/simple_engine.so
MODULE_PATH =  /home/workingDir/simple_engine.so
init = 0

[req]
distinguished_name = req_distinguished_name

[req_distinguished_name]

この後、LD_LIBRARY_PATH を /home/workingDir を指すように設定しました

それから私がしたとき:

./openssl engine

次のエラーが表示されます。

Error configuring OpenSSL
3076019848:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(/home/workingDir/simple_engine.so): /home/workingDir/simple_engine.so: undefined symbol: ENGINE_get_static_state
3076019848:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
3076019848:error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:450:
3076019848:error:260BC066:engine routines:INT_ENGINE_CONFIGURE:engine configuration error:eng_cnf.c:204:section=simple_section, name=dynamic_path, value=/home/workingDir/simple_engine.so
3076019848:error:0E07606D:configuration file routines:MODULE_RUN:module initialization error:conf_mod.c:235:module=engines, value=engines_section, retcode=-1

何が問題ですか?助けてください。続行できず、ドキュメントが見つかりません。

ありがとう

4

1 に答える 1

0

問題は、openssl.cnf の MODULE_PATH でした。私がそれを削除したとき、opensslを共有ライブラリで再コンパイルした後に動作します!

于 2013-09-19T13:54:48.323 に答える