私は少し前にApache httpdをインストールしましたが、最近SSLをセットアップしていくつかの異なるTomcatサーバーにサービスを提供するために戻ってきました。
現時点では、わずかに異なるバージョン(開発用とデモ用)に対応する2つの完全に独立したTomcatインスタンスを2つの異なるポートに提供しています。 mydomain.com:8081
およびmydomain.com:8082
私は首尾よく(1月に戻って)mod_jkを使用してhttpdを取得し、同じTomcatインスタンスをhttp://www.mydomain.com:8090/dev
およびhttp://www.mydomain.com:8090/dem
oに提供しました(8090 cosこの段階でJettyを介して8080で別のアプリを実行しています) httpd.confで次のコードを使用します。
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
<VirtualHost *:8090>
JkMount /devd* tomcatDev
JkMount /demo* tomcatDemo
</VirtualHost>
私がやろうとしていないことは、SSLを有効にすることです
以下をhttpd.confに追加しました
Listen 443
<VirtualHost _default_:443>
JkMount /dev* tomcatDev
JkMount /demo* tomcatDemo
SSLEngine on
SSLCertificateFile "/opt/httpd/conf/localhost.crt"
SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>
しかし、「apachectl restart」でApacheを再起動しようとすると(私が言及した他のアプリをシャットダウンした後、https接続で動作しません)、エラーが継続的に発生します。
「無効なコマンド「SSLEngine」。スペルが間違っているか、サーバー構成に含まれていないモジュールによって定義されている可能性があります。httpdが実行されていません。開始しようとしています」
私はhttpd/modulesディレクトリを調べましたが、実際にはmod_sslはなく、mod_jk.soとhttpd.expのみがあります。
私はyumを使用してmod_sslをインストールしようとしましたが、すでにインストールされています。実際、mod_ssl.soは/ usr/lib/httpd/modulesにありますが、これは/ opt/httpdであるhttpdをインストールした場所へのパスではなく、実際には/ usr/lib/httpdにはモジュールdirのみが含まれています。
Httpdのインストール場所にmod_sslを適切にインストールする方法を教えてもらえますか?
実際にmod_sslをロードする行は、Apacheの構成にどこかに追加する必要があります。Debian/ Ubuntuでは、Sudo a2enmod ssl
を実行するだけですが、RedHat/Fedora/CentOSに相当するものは知りません。次のような行が必要です。
LoadModule ssl_module /usr/lib/httpd/modules/mod_ssl.so