- PR -

qmailにてpop over ssl, smtp over sslの設定

投稿者投稿内容
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-02-08 23:36
あれ?何か違う…

Makefile の INCS=-I/usr/local/include と
tcpserver.c の #include <openssl/ssl.h> が
合わさってファイルパスが出来上がります。
上記の場合は、
/usr/local/include/openssl/ssl.h
になる訳です。

なので、/usr/local/ssl/include/openssl/ssl.h が
ファイルパスでないと上記の書き換えではダメな気がします。

Solaris のライブラリ関連の扱いがよくわかっていないので、
単純に通常のパッチあて作業後に tcpserver.c を編集して、
#include <openssl/ssl.h>

#include </usr/local/ssl/include/ssl.h>
としてはどうでしょうか?

それとライブラリ関係の取り扱いは自分も人に説明出来るほど詳しくはないので、
他の識者の方にお任せします。すみません。。。
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-02-08 23:47
引用:

そこで、先ほどの、Makefileにある、LIBS=-lcrypto -lsslを編集しました。



あ、ちなみに -l オプションはライブラリパスではなく、ライブラリ指定なので、パス記述しちゃダメです。
パスを通す場合は、-L オプションです。

用語がごちゃ混ぜで申し訳無かったです。

自分が今まで言っていたのは、インクルードファイルへのパスのお話でした。
混乱させて申し訳なかったです。
パンダ
ベテラン
会議室デビュー日: 2005/07/04
投稿数: 54
投稿日時: 2006-02-08 23:58
あるかなさん、遅くまですみません...。 ちなみに、tcpserver.cを編集して、make
した結果は、やはり、エラーです。ログは、下記のとおりです。
う〜ん、もう完全にお手上げですね。 Linuxだとすんなりいくんですか?
いろいろとありがとうございます。
-----------------------------------------------------------------------------
./compile -DWITH_SSL tcpserver.c
In file included from tcpserver.c:4:
/usr/local/ssl/include/openssl/ssl.h:168:27: openssl/e_os2.h: No such file or directory
/usr/local/ssl/include/openssl/ssl.h:171:26: openssl/comp.h: No such file or directory
/usr/local/ssl/include/openssl/ssl.h:174:25: openssl/bio.h: No such file or directory
/usr/local/ssl/include/openssl/ssl.h:177:26: openssl/x509.h: No such file or directory
/usr/local/ssl/include/openssl/ssl.h:179:26: openssl/kssl.h: No such file or directory
/usr/local/ssl/include/openssl/ssl.h:180:31: openssl/safestack.h: No such file or director
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-02-09 00:09
スンナリ解決出来ずに申し訳無いです。

多分、パスを正確に通すだけで上手くいくと思います。
> /usr/local/ssl/include/openssl/ssl.h:168:27: openssl/e_os2.h: No such file or directory
などは /usr/local/ssl/include/ までやはり辿れていない為なので。

ちなみに /usr/include/ 以下には openssl ディレクトリはありますか?
無い場合は、
$ cd /usr/include/
$ ln -s /usr/local/ssl/include/openssl ./
として、パッチあて作業後に普通に make してみてどうでしょうか?

それでダメなら他の識者の方の助言待ちでお願いします。

パスの追加通しの方法がよくわかってないので、直ファイル編集か、
既存パスにリンク貼る方法でいつもごまかしていたもので。。。

時間だけ取らせてごめんなさい。
パンダ
ベテラン
会議室デビュー日: 2005/07/04
投稿数: 54
投稿日時: 2006-02-09 00:50
あるかなさん、本当に、有難うございます! うまくいきました!
LD_LIBRARY_PATHで、/usr/local/ssl/libもとおしてみたら、-lsslとかのエラーもなくなりました。 やっと寝れます

明日は、その後の設定をやってみます。 また何かありましたら何卒よろしくお願いいたします。 *恐らく、何もないと思いますが...。 

NeXT
大ベテラン
会議室デビュー日: 2004/04/06
投稿数: 215
お住まい・勤務地: 江戸
投稿日時: 2006-02-09 01:29
Solaris2.X 以降の場合は
LIBS=-L/usr/local/lib -R/usr/local/lib -lcrypto -lssl
というように LD_LIBRARY_PATH, LD_RUN_PATH を指定する必要があります。
多分 Solaris10 も同じかと思います。

-lssl というのは,シェアードライブラリ libssl.so.XXX をリンクすると
いう意味です。
-lcrypto は libcrypto.so.0.9.7 です。

上記のとおり Makefile を変更してコンパイルすると
$ /usr/bin/ldd ./tcpserver
libcrypto.so.0.9.7 => /usr/local/lib/libcrypto.so.0.9.7
libssl.so.0.9.7 => /usr/local/lib/libssl.so.0.9.7
...略

私のところでは /usr/local/lib に openssl のライブラリをインストール
したのでこのような表示になります。

せさみさんの場合ですと openssl の ライブラリのインストール先は
/usr/local/ssl/lib になるのでしょうか。ライブラリが存在するかどうか
確認してみては如何でしょうか。

ちなみに
http://www.openssl.org/source/
によると ver0.9.7i が出ていますね。
パンダ
ベテラン
会議室デビュー日: 2005/07/04
投稿数: 54
投稿日時: 2006-02-09 09:22
NeXTさん、お返事有難うございます! 詳細な説明に大変感謝しております。
Solarisは、構築するまで大変ですが、一度運用すると、かなり安定しているので、愛用?!しています。 Sparcだと、ハードウエアが弱いのが難点ですけど。
x86だとハードウエアもしっかりしていて信頼度十分です。

また何かありましたら、よろしくお願いいたします。
パンダ
ベテラン
会議室デビュー日: 2005/07/04
投稿数: 54
投稿日時: 2006-02-09 11:52
NeXTさん、あるかなさん、皆様、すみません、また質問させて下さい。
何とか、cert.pemも作成でき、早速起動スクリプトを編集して、qmailを起動しました。
動いていると思い、outlook2003で、SMTPを465に変え、送信テストをしたところ、
証明書が不明なんとかというメッセージが出たいので、証明書を作成し、クライアントにインポートしました。 もう一度、送信テスト(外部、内部)をしたのですが、
outlookがエラーでおちてしまいます。 そこで、起動スクリプト、プロセスのログを添付しますので、一度チェックしていただけますでしょうか。
------------起動スクリプト----------------------------------------------------
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0

case "$1" in
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
#For SMTP
/command/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-chdir \
/usr/local/bin/tcpserver -v -u 403 -g 402 0 smtp \
/usr/local/bin/relay-ctrl-check /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtp
d 3 &

#For SMTPS
/command/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-chdir \
/usr/local/bin/tcpserver -qvs -u 403 -g 402 -n /var/qmail/cert.pem 0 465 -x /etc/tcp.sm
tp.cdb \
/usr/local/bin/relay-ctrl-check /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtp
s 3 &
-------------------------------------------------------------------------------
---------------プロセス--------------------------------------------------------
qmailq 16761 16744 0 10:40:38 pts/6 0:00 qmail-clean
qmails 16744 1 0 10:40:38 pts/6 0:00 qmail-send
root 16746 16744 0 10:40:38 pts/6 0:00 qmail-lspawn ./Maildir/
qmaild 16945 16943 0 11:04:54 pts/7 0:00 /usr/local/bin/tcpserver -qvs -u 403 -g
402 -n /var/qmail/cert.pem 0 465 -x /et
root 16943 1 0 11:04:54 pts/7 0:00 /var/qmail/bin/splogger smtps 3
qmaild 16942 16941 0 11:04:54 pts/7 0:00 /usr/local/bin/tcpserver -v -u 403 -g 4
02 0 smtp /usr/local/bin/relay-ctrl-chec
root 16948 16946 0 11:04:55 pts/7 0:00 /usr/local/bin/tcpserver -v 0 pop3 /var
/qmail/bin/qmail-popup associe.co.jp /bi
root 16946 1 0 11:04:55 pts/7 0:00 /var/qmail/bin/splogger pop3d 3
claris# ps -ef | grep smtp
root 16943 1 0 11:04:54 pts/7 0:00 /var/qmail/bin/splogger smtps 3
root 16941 1 0 11:04:54 pts/7 0:00 /var/qmail/bin/splogger smtpd 3
qmaild 16942 16941 0 11:04:54 pts/7 0:00 /usr/local/bin/tcpserver -v -u 403 -g 4
02 0 smtp /usr/local/bin/relay-ctrl-chec
-------------------------------------------------------------------------------
プロセスを見ると、smtpはOKなのですが、smtpsが疑問です。

お忙しいところ恐れ入ります。 何卒よろしくお願いいたします。

スキルアップ/キャリアアップ(JOB@IT)