web-dev-qa-db-ja.com

Apache httpdにmod_sslをインストールする方法は?

Ok

だから、Apache httpdを少し前にインストールし、最近SSLをセットアップしていくつかの異なるTomcatサーバーにサービスを提供するために戻ってきました。

現時点では、わずかに異なるバージョン(開発用とデモ用)に対応する2つの完全に独立したTomcatインスタンスがあり、2つの異なるポートにWebアプリがあります。

  • example.com:8081
  • example.com:8082

私は正常に(1月に戻って)mod_jkを使用してhttpdを取得し、同じTomcatインスタンスをhttp://www.example.com:8090/devhttp://www.example.com:8090/demoに提供しました(8090 cosこの段階で8080でJetty経由で別のアプリを実行しています) 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.sohttpd.expのみがあります。

Yumを使用してmod_sslをインストールしようとしましたが、すでにインストールされていると表示されます。実際、mod_ssl.so/usr/lib/httpd/modulesにありますが、これはhttpdをインストールした場所へのパスではなく、/opt/httpdであり、実際には/usr/lib/httpdにはmodules dirしか含まれていません。

httpdのインストール場所にmod_sslを適切にインストールする方法を教えてもらえるので、このエラーを回避できますか?

64
Nick Foote

/usr/lib/httpd/modulesフォルダー内のモジュールを参照する他のLoadModuleコマンドはありますか?その場合、LoadModule ssl_module /usr/lib/httpd/modules/mod_ssl.soをconfファイルに追加するだけで問題ありません。

それ以外の場合は、mod_ssl.soファイルを、他のモジュールのロード元のディレクトリにコピーして、そこで参照する必要があります。

33
Robert

ApacheでSSLモジュールを有効にする必要があることがわかりました(明らかに、rootとして実行していない場合は、コマンドの前にSudoを付けます)。

a2enmod ssl

次に、Apacheを再起動します。

/etc/init.d/Apache2 restart

Ubuntu/Debian用ApacheのSSLの詳細 here

89
SharpC

次のコマンドを使用して、mod_sslをインストールしてみてください。

yum install mod_ssl

次に、次のコマンドを使用してApacheサーバーをリロードして再起動します。

systemctl reload httpd.service
systemctl restart httpd.service

これはほとんどの場合に機能するはずです。

17
veer7

私が使用した:

Sudo yum install mod24_ssl

それは私のAmazon Linux AMIで機能しました。

1
Oscar David