【问题标题】:Moving ssl handling from Tomcat to Apache?将 ssl 处理从 Tomcat 转移到 Apache?
【发布时间】:2015-04-30 14:05:50
【问题描述】:

在我工作的组织中,我们无法将 Tomcat 用于 SSL,因为他们的策略是通过托管 Apache 实例进行所有身份验证。在这种情况下,根据http://httpd.apache.org/docs/trunk/mod/mod_ssl.html,将 mod_ssl 与 mod_jk 结合使用,并将“REMOTE_USER”设置为“SSL_CLIENT_S_DN_CN”。

我正在处理的 Web 应用程序 (Alfresco) 是根据 Tomcat 容器上 SSL 的预期设计的,角色映射发生在 Tomcat 中,但我不确定如何使用 mod_ssl 使其工作。

来自web.xml,我正在处理的设置是:

   <security-constraint>
      <web-resource-collection>
         <web-resource-name>SOLR</web-resource-name>
         <url-pattern>/wcs/api/solr/*</url-pattern>
      </web-resource-collection>

      <auth-constraint>
         <role-name>repoclient</role-name>
      </auth-constraint>

      <user-data-constraint>
         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
   </security-constraint>

   <login-config>
      <auth-method>CLIENT-CERT</auth-method>
      <realm-name>Repository</realm-name>
   </login-config>

   <security-role>
     <role-name>repoclient</role-name>
   </security-role>

任何建议将不胜感激。我环顾四周,看看是否有任何关于如何处理这个问题的提示,但我运气不佳。

【问题讨论】:

  • 如果我正确理解了您的场景,您仍然可以在您的 tomcat 容器中激活 SSL。用户将通过 SSL 连接到 Apache。然后 Apache 通过 localhost 与 tomcat 的新 SSL 连接代理请求。当然,您需要额外建立一个 SSL 连接。
  • @fishi 在这种情况下完全没有意义。应用程序需要客户端证书,而不是 Apache HTTPD 的证书。
  • @Andre M. 它会起作用的。就试一试吧。 Apache 将通过请求标头向 Tomcat 提供客户端证书,而 Tomcat 将通过请求属性以正常方式将其提供给 webapp。
  • 您可以配置 mod_jk 通过请求属性传递客户端证书信息。但是 afaik 你不能在请求标头中传递信息。

标签: java apache tomcat ssl alfresco


【解决方案1】:

使用带有 mod_jk 或 mod_proxy_ajp 的 apache 作为终止 SSL 端点没有问题。 Alfresco 的 tomcat 已配置 SSL 以保护 alfresco 存储库和 Solr 搜索引擎之间的通信,因此您不应触摸 8080 或 8443 的 tomcat 配置,以免破坏 Solr 的通信(ssl 证书用于身份验证 - 所以不要'只要您知道自己在做什么,就不要碰它)。

在 tomcat 的 server.xml 中添加或在 ajp 连接器中添加注释。例如

    <!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" address="1.2.3.4" protocol="AJP/1.3" redirectPort="8443" scheme="https" proxyPort="443" secure="true" URIEncoding="UTF-8" maxThreads="500" maxSavePostSize="-1" />

此外,最佳做法是为 8080 和 8443 连接器添加参数 address="localhost" 以隐藏服务器外部的端口。

在这里您可以找到如何配置 apache 代理:https://serverfault.com/questions/472491/how-to-set-up-alfresco-share-behind-apache-reverse-proxy

【讨论】:

    猜你喜欢
    • 2011-04-13
    • 2014-02-18
    • 2011-04-21
    • 2019-04-19
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多