WSO2 - 禁用HTTPS

时间:2017-03-18 23:28:21

标签: wso2 wso2-am wso2carbon

如何为WSO2 Api Manager(admin / gw /其他组件)禁用HTTPS? 我们希望在我们的前端负载平衡器上进行SSL终止 - 而不是终端WSO2产品。如果我访问端口9763,我将被重定向到9443。 我们使用docker-images运行2.1.0。

3 个答案:

答案 0 :(得分:2)

您必须执行以下操作,

  1. 转到$ WSO2_HOME / repository / conf并打开carbon.xml,然后 取消注释

    <EnableHTTPAdminConsole>true</EnableHTTPAdminConsole> 
    
  2. 禁用安全cookie参数 $ WSO2_HOME / repository / conf / tomcat / carbon / WEB-INF / web.xml文件为 好。

    <session-config> 
     <cookie-config> 
      <secure>false</secure> 
     </cookie-config> 
    </session-config>
    

答案 1 :(得分:1)

假设David的系统配置不会引入以下安全问题。 (如果负载均衡器和WSO2产品在同一个专用网络或VPC中,则不应存在其他安全问题)

注意:以下方法仅使用单租户(超级租户)方案进行测试。

  1. 对于碳控制台,Abimaran建议的方法应该有效。
  2. 对于商店组件,需要进行一些更改。
  3. 使用以下内容替换repository / deployment / server / jaggeryapps / store / site / themes / wso2 / templates / user / login / redirector.jag中的内容。

    <%
    include("/jagg/jagg.jag");
    var site = require("/site/conf/site.json");
    
    var tenant = jagg.getTenantDomain();
    var queryString = "";
    
    session.put("showLogin", "true");
    session.put("redirectToHTTPS", jagg.getHttpsUrl("/site/pages/login.jag")+queryString);
    response.sendRedirect(jagg.getHttpsUrl("/site/pages/login.jag") + queryString);
    %>
    

    替换repository / deployment / server / jaggeryapps / store / jagg / jagg.jag中的getHttpsUrl函数定义

    var getHttpsUrl = function(path, parameters){
        var hostname = "";
        var requestSegments = getRequestSegments();
        var protocol = "https://";
        mod = jagg.module("manager");
        var requestUrl = request.getRequestURL();
    
        if(requestUrl.indexOf("https://") != -1 ){
            hostname = mod.getHTTPsURL();
            hostname = hostname.replace("https://","");
        } else if (requestUrl.indexOf("http://") != -1 ) {
            hostname = mod.getHTTPURL();
            hostname = hostname.replace("http://","");
            protocol = "http://";
        }
    
        // if the site is fronted by a proxy server
        if(isReverseProxyEnabled()){
             hostname = site.reverseProxy.host ;
             //if a custom https port is used
             if(site.reverseProxy.hosts_port){
                hostname = hostname + ":" + site.reverseProxy.hosts_port;
             }
        }        
    
        return protocol + hostname + url(path, parameters);
    }
    
    1. 对于发布商组件,应进行以下更改。
    2. 库/部署/服务器/ jaggeryapps /发行商/网站/主题/ WSO2 /模板/用户/登录/ template.jag

      更换零件

      <%      if(request.isSecure()){
      
              if(jagg.getUser() != null){
                  response.sendRedirect('index.jag');
              }
      %>
      

      <%      if(true){
      
              if(jagg.getUser() != null){
                  response.sendRedirect('index.jag');
              }
      %>
      

      注意:安全性完全取决于系统架构。另外,上述配置是独立的。如果您需要让https访问所有组件,那么请执行所有操作。对于特定的配置,单独的配置应该有效。

      希望它有所帮助。

答案 2 :(得分:0)

对于5.10.0和Windows 10版本,

#1打开“ C:\ Program Files \ WSO2 \ Identity Server \ 5.10.0 \ repository \ resources \ conf \ default.json”

#2更改三个字段

来自

 "transport.https.properties.scheme": "https",  
 "transport.https.properties.secure": "true",  
 "transport.https.properties.SSLEnabled": "true",

  "transport.https.properties.scheme": "http",
  "transport.https.properties.secure": "false",
  "transport.https.properties.SSLEnabled": "false",

#3启动服务器批处理wso2server.bat

#4打开浏览器http:// localhost:9443 /