CentOS6.x
Apache2.2
letsencrypt
Lucee
lucee4

LuceeをHTTPS化しようとしたらハマったのでメモ


何がしたかったか

LuceeをSSL化して、ポート80でアクセスできるようにしたい。なお、挑戦者はサーバ初心者です。


どんなことしてたか

Let’s Encryptのインストールが途中で止まってしまうため、httpd.confに以下を追加。

参考:Let’s Encryptのインストールができない。途中で止まる時の対処法


/etc/httpd/conf/httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin root@example.com
DocumentRoot /var/www/html
ServerName example.com
</VirtualHost>


無事に証明書ゲットできたので、ssl.confとかに以下を追加。

参考:Let’s EncryptでHttps Tomcatへの設定メモ


/etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem


/opt/lucee/tomcat/conf/server.xml

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/path/to/MyDSKeyStore.jks" keystorePass="<pass>"
keyAlias="tomcat" keyPass="<pass>"/>

なになに、ApacheとTomcatを連携させる必要がある?以下を追加。

参考:Apache2.4とTomcat8を連携させる


/etc/httpd/conf/extra/httpd-proxy.conf

ProxyPass / ajp://localhost:8008/



うまくいった!と思いきや

URLがスラッシュで終わる場合は表示されるのに、なんか*.cfmだと500エラーになる。ええっ!なんで!?


解決方法

なんか*.cfmとか *.cfmlだけエラーになるなと思い、httpd.confを検索してみたら、それっぽいのがありました。


/etc/httpd/conf/httpd.conf

<IfModule mod_proxy.c>

<Proxy *>
Allow from 127.0.0.1
</Proxy>
ProxyPreserveHost On
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ http://127.0.0.1:8888/$1$2
ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
# optional mappings
#ProxyPassMatch ^/flex2gateway/(.*)$ http://127.0.0.1:8888/flex2gateway/$1
#ProxyPassMatch ^/messagebroker/(.*)$ http://127.0.0.1:8888/messagebroker/$1
#ProxyPassMatch ^/flashservices/gateway(.*)$ http://127.0.0.1:8888/flashservices/gateway$1
#ProxyPassMatch ^/openamf/gateway/(.*)$ http://127.0.0.1:8888/openamf/gateway/$1
#ProxyPassMatch ^/rest/(.*)$ http://127.0.0.1:8888/rest/$1
ProxyPassReverse / http://127.0.0.1:8888/
</IfModule>

LoadModule modcfml_module modules/mod_cfml.so
CFMLHandlers ".cfm .cfc .cfml"
ModCFML_SharedKey "(略)"
LogHeaders false
LogHandlers false
LogAliases false
VDirHeader false


これはLuceeインストール時に追加されたものでしょうか。全て不要そうなのでコメントアウト!そしたらうまく動くようになりました。

tomcatのポート8443の設定もどうやら不要だったみたいなのでコメントアウト。ついでに8888も。ポート80のバーチャルホスト設定も消して大丈夫でした。

本当にこれでよいのか謎ですが、とりあえずうまくいった現段階でメモ。何かあったら追記します。


追記

Lucee5にアップグレードしようとしたらうまくいかず変になってしまったので、アンインスコ→Lucee4再インスコしました。その時、出てきてました。

Install Apache Connector?

This option will install mod_proxy_http so that you can utilize Apache as a web
server in front of your Lucee installation. This option is recommended if you're
using Apache.

Yes, Install Apache Connector [Y/n]:

ここでYesを選ぶと件の設定が書き込まれるんですね。今回はNoを選択しましたので、問題ありませんでした。