设为首页 收藏本站
查看: 729|回复: 0

[经验分享] apache & ssl & tomcat

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-31 10:46:08 | 显示全部楼层 |阅读模式
以下内容摘自:http://www.deer-n-horse.jp/linux/server/apache-ssl-tomcat/index.html
apache & ssl & tomcat
Apache と SSL と Tomcat をまぜたWebアプリケーションサーバの構築記。
ここまで来るとなんだか幕の内弁当みたいな心境だ...なぜだろう。

RPMでインストールしてもいいのだけど今回の案件は /usr/local にぶちこんでくれ、 とのことなのでソースからコンパイル/インストールすることにする。

★用意するもの★

  • apache
    http://www.apache.orgから今回は version 1.3.19 を利用する。
  • OpenSSL
    http://www.openssl.orgから今回は version 0.9.6 を利用する。
  • apache+ssl
    http://www.apache-ssl.orgから 今回は apache_1.3.19+ssl_1.42 を利用する。
  • tomcat
    http://jakarta.apache.orgから version 3.2.1 を利用する。
    ソースからコンパイルするためには XMLパーサ などのライブラリが必要だが コンパイルできなかったためにバイナリもダウンロードする。
    ソースはソースで apache 経由で利用するときに使用するのでダウンロード しておく方が無難。
注意: Java動作環境はすでに整っているものとする。

★調理方法★

手順としては以下の順序で行ってみよう♪

  • Tomcat をインストールして実行できるか確認する。
  • apache+ssl をコンパイル/インストールして動作を確認する。
  • apache+ssl 経由で Tomcat にアクセスできるよう設定し、動作を確認する。
1. Tomcat をインストールして実行できるか確認する。

インストール対象ディレクトリに Tomcat バイナリアーカイブを展開する。

# cd /usr/local/ ; tar xfvz /usr/local/src/jakarta-tomcat-3.2.1.tar.gz

個人的な問題であるが解凍後のディレクトリ名がバージョンを含んでいるので改名するか シンボリックリンクをはる。

# cd /usr/local/jakarta-tomcat-3.2.1 /usr/local/jakarta-tomcat

以上♪。
お近くのブラウザから http://[TargetURL]:8080/ を叩いてTomcatのサンプルページが出る ことを確認すること。

DSC0000.jpg

2. apache+ssl をコンパイル/インストールして動作を確認する。

コンパイルディレクトリを /usr/local/src にするとして、 apache と apache+ssl を解凍する。

# cd /usr/local/src
# tar xfvz /usr/local/src/apache-1.3.19.tar.gz
# cd apache-1.3.19/ ; tar xfvz /usr/local/apache_1.3.19+ssl_1.42.tar.gz

注意:OpenSSL がインストールされていなかったらインストールするように。

SSLなしのapacheを立てる時と区別できるようにディレクトリ名を変更する。

# cd /usr/local/apache-1.3.19 /usr/local/src/apache_1.3.19+ssl_1.42

展開したディレクトリで apache のソースに SSL用パッチを当てる。

# patch -p1 < SSLpatch

apache をコンパイルする。
今回はインストール先を /usr/local/apache+ssl と prefix オプションを configure にあてる。
その他にデフォルト configure では DSO(Dynamic Shared Object)サポートにならないのでそのオプション も当てることにする。

# ./confiure --prefix=/usr/local/apache+ssl --enable-module=all --enable-shared=max

コンパイル/インストールする。

# make ; make install

bin/ ディレクトリに httpsd ができたことを確認する。

そのままでは httpsd は動かないので apache+ssl のソースディレクトリにある SSLconf/conf/httpsd.conf を /usr/local/apache+ssl/conf/ssl.conf にコピーする。

# cp /usr/local/src/apache_1.3.19+ssl_1.42/SSLconf/conf/httpsd.conf /usr/local/apache+ssl/conf/ssl.conf

/usr/local/apache+ssl/conf/httpsd.conf に以下の一行を追加する。

Include conf/ssl.conf

conf/ssl.conf を編集。
/usr/local/apache+ssl/conf/httpd.conf と同じ項目が若干記述されているので変更する。

apacheインスタンスの権限やドキュメントルート、サーバ名そしてロードモジュールなどが本体の httpsd.conf と コンフリクトするのでそれをコメントアウトして、OpenSSLで作成する証明書のパスを記述する。

参考までに...ssl.conf

証明書を作成する。とりあえずダミーな証明書を作る。
スクリプト用意してみた。gendummycerts

できた証明書は ssl.conf に記述してあるパスにしまっておきましょう。

libssl.so を ssl.conf に記述したため、 /usr/local/src/apache_1.3.19+ssl_1.42/modules/ssl/ から /usr/local/apache+ssl/libexec にコピーする。
注意: 本来 apache_ssl.so があればいらない行動なのだが実行時にエラーが出たため apache_ssl.so の 読み込みを httpsd.conf で外した。どっちでもいいだろぅ。

httpsd を動かしてみる。
-c オプションで設定ファイル httpsd.conf を指定すればいいけど SystemV に乗っ取り initスクリプトを つくったのでそれに合わせ、 httpsd.conf から httpd.conf にシンボリックリンクをはる。

httpsd を /usr/sbin にコピーして実行してみる。

# cp /usr/local/apache+ssl/bin/httpsd /usr/sbin/httpsd
# /etc/rc.d/init.d/httpsd start

エラーが出るようでしたら設定を直してください。
多分設定の問題です。LoadModule とかの...

動作確認。
お近くのブラウザで https://[TargetURL] に叩く。

DSC0001.jpg

あ、デフォルトで index.html が htdocs/ にないので適当な index.html.ja.jis でも index.html に シンボリックリンク張ってみてください。

3. apache+ssl 経由で Tomcat にアクセスできるよう設定し、動作を確認する。

Tomcat を apache 経由で叩くには mod_jk.so をapacheに加える必要があります。
/usr/local/src/ に jakarta-tomcat-3.2.1-src.tar.gz を展開してコンパイルします。

# cd /usr/local/src/ ; tar xfvz /usr/local/src/jakarta-tomcat-3.2.1-src.tar.gz

mod_jk.so を作るディレクトリへ移動。

# cd /usr/local/src/jakarta-tomcat-3.2.1-src/src/native/apache1.3/

ここで Makefile.linux というのがあるからこれを Makefile にシンボリックリンクをはり編集する。

修正箇所は APXS= のところ。 APXS=/usr/local/apache+ssl/bin/apxs にして、

# make

で mod_jk.so が作られる。
注意: ここでエラーがかえって来るのは apache をコンパイルするときに DSO サポートが付いていない からだと思われる。apacheのコンパイルからやり直してください。

mod_jk.so を apache が読める所におく。

# cp /usr/local/src/jakarta-tomcat-3.2.1-src/src/native/apache1.3/mod_jk.so /usr/local/apache+ssl/libexec

apache+ssl の設定ファイル httpd.conf の最後に以下の一行を追加する。

Include /usr/local/jakarta-tomcat/conf/mod_jk.conf-auto

mod_jk.conf というファイルもあるがLinuxでは-auto付きファイルを使うほうが楽♪。
mod_jk.conf-auto に mod_jk.so のパスを書くところがあるのでそれが間違っていたら編集すること。

tomcat と apache+ssl を再起動する。

# /usr/local/jakarta-tomcat/bin/tomcat.sh start
# /etc/rc.d/init.d/httpsd restart

お近くのブラウザで https://[TargetURL]/examples/ を打つと認証画面がでてサンプルを見れるようになる。
ちゃんと鍵アイコンがかかっていますねぇ♪。



★参考資料★

  • The Jakarta Project
  • Java Technorogy Web Page
  • Apache-SSL secure by SSL
  • Japache Documentation
  • OpenSSL

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92652-1-1.html 上篇帖子: 让apache支持shtml 下篇帖子: Apache Tomcat6 之连接器学习整理(1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表