目标:配置服务器通过 acme-protocol 执行自动 SLL 证书续订(使用 dehydratedhttps://github.com/lukas2511/dehydrated)使用 apache 2.2 / tomcat
为 virt eth0(绑定到唯一 IP)实现自动证书更新的功能
需要能够允许http://example.com/.well-known/acme-challenge/执行域名挑战,同时将其他所有操作转交给 AJP/Tomcat
iptables
在搜索中查看了以下资源 - 似乎多个代理密码可能是可行的方法,但我不确定。
使用多个 ProxyPass 配置 Apache https://stackoverflow.com/questions/45914235/configure-apache-with-multiple-proxypass
这个问题似乎与我正在做的事情类似,但没有引起关注。
如何配置 Apache 2.2 将除根域之外的所有子域转发到 Tomcat https://stackoverflow.com/questions/25081145/how-to-configure-apache-2-2-to-forward-all-subdomains-to-tomcat-except-the-root
========================= 现有的 apache2 配置 服务器名称 myserver.example.com/ RedirectMatch ^/$ /应用程序 #ProxyRequests 关闭 #ProxyPreserveHost 开启 ProxyPass ajp://127.0.0.1:8009 keepalive=On ProxyPassReverse http://Application/example.com/ #ProxyPassReverse / ajp://localhost:8009/ 错误日志 /var/log/apache2/Application-error.log CustomLog /var/log/apache2/Application-access.log 合并 ========================= 我认为一个好的配置应该是这样的(不确定与 proxypass 实际使用的值) 服务器名称 myserver.example.com/ RedirectMatch ^/$ /应用程序 代理通行证 反向代理密码 代理通行证 ProxyPassReverse http://Application/example.com/ #ProxyPassReverse / ajp://localhost:8009/ 错误日志 /var/log/apache2/openkm-error.log CustomLog /var/log/apache2/openkm-access.log 合并 =========================
答案1
你可以添加这样的一行
ProxyPass /.well-known/acme-challenge !
ProxyPass / ajp://127.0.0.1:8009 keepalive=On
这将阻止 acme-challenge 请求传递给 Tomcat。
当然,您需要正确配置 DocumentRoot 以指向包含您的 acme 挑战的任何文件夹。