GVKun编程网logo

iframe 为我的 Domino XPages 解决方案提供问题(使用 Nginx 代理)添加 JS 代码以使用 http 重定向(而站点是 https)

11

此处将为大家介绍关于iframe为我的DominoXPages解决方案提供问题的详细内容,并且为您解答有关使用Nginx代理添加JS代码以使用http重定向的相关问题,此外,我们还将为您介绍关于App

此处将为大家介绍关于iframe 为我的 Domino XPages 解决方案提供问题的详细内容,并且为您解答有关使用 Nginx 代理添加 JS 代码以使用 http 重定向的相关问题,此外,我们还将为您介绍关于AppEngine Node.js未将HTTP重定向到HTTPS、html – Chrome iFrame阻止HTTPS重定向、HTTP到https重定向(tomcat / jboss)、HTTP在nginx.conf中重定向到HTTPS的有用信息。

本文目录一览:

iframe 为我的 Domino XPages 解决方案提供问题(使用 Nginx 代理)添加 JS 代码以使用 http 重定向(而站点是 https)

iframe 为我的 Domino XPages 解决方案提供问题(使用 Nginx 代理)添加 JS 代码以使用 http 重定向(而站点是 https)

可以尝试使用sub_filter模块重写内容:

sub_filter_once on;
sub_filter_types text/html;
sub_filter '<script type="text/javascript">if(!navigator.cookieEnabled)window.location.href="http://' '<script type="text/javascript">if(!navigator.cookieEnabled)window.location.href="https://';
,

我遇到了同样的问题。使用反编译器,我在代码中找到了添加的地方。 您可以在 ExternalContextEx 上设置一个属性,以避免添加脚本标记。

我在我的应用程序的自定义 ViewHandler(重载 createView 方法)中执行此操作,但您也可以在 XPage 的 beforePageLoad 事件中执行此操作。

在我的代码中,如果 SessionID-cookie 未设置,我只会覆盖它,以防它做了我不知道的其他事情。到目前为止,没有任何问题。

HttpServletRequest httpServletRequest = (HttpServletRequest) facesContext.getExternalContext().getRequest();
if( !httpServletRequest.isRequestedSessionIdFromCookie() ) {
    ExternalContextEx externalContext = (ExternalContextEx) facesContext.getExternalContext();
    externalContext.setDonotEncodeUrl( false );
}

AppEngine Node.js未将HTTP重定向到HTTPS

AppEngine Node.js未将HTTP重定向到HTTPS

您需要为每个handler that this behavior添加secure: always。请注意,您有两个具有相同- url: /.*的处理程序。该网址的最后一个定义没有secure参数。

html – Chrome iFrame阻止HTTPS重定向

html – Chrome iFrame阻止HTTPS重定向

我有一个父网站:https://a.company.com,其中包含一个带有https内容的iframe(https://b.company.com/foo),到目前为止一切都很愉快.但是,当发生重定向以在同一个域上加载不同的路由时,chrome将其阻止为混合内容错误.
在网络流量中查看请求确认浏览器正在请求https,但chrome仍然取消请求,因为我无法加载混合(http)内容.

到目前为止,所有搜索都让我想到加载混合内容的人,这不是这里的情况.

作为参考,这是铬错误:
混合内容:“https://a.company/foo”页面是通过HTTPS加载的,但是请求了一个不安全的资源“http:/b.company/bar”.此请求已被阻止;内容必须通过HTTPS提供.

实际的帧源是https:/b.company/foo,它可能重定向到https:/b.company/bar.如果页面没有重定向,则不会发生错误.

解决方法

旧问题但仍然相关,所以我会尽力回答这个问题.

如前所述:您不允许在https服务的网站中加载不安全的http内容,因为它会危及安全性.无论如何,如果您尝试这样做,Chrome会阻止它并抛出前面提到的错误.

确保您确实通过https请求的第一步是检查iframe中的URL,该URL应如下所示:

<iframe src="https://foobar.com"></iframe>
                ↑
          this needs to be https

现在获取确切的URL并将其粘贴到任何浏览器中,以查看适用的规则.如果以任何方式重定向,则可能在重定向之后或之间使用不安全的http连接.他们甚至可能有一个直接的https-to-http规则(不太可能).还要检查控制台,因为他们可能会尝试在其https服务页面中加载不安全的内容,这可能会导致您的错误.如果您发现其中一件事但是您无法访问服务器,那么您的旅程将在此结束,除非您想要如此糟糕地提供该内容,以至于您愿意自己使用http.

另一方面,如果您有权访问服务器,则可以删除这些重定向或检查其配置.由于有许多不同的Web服务器,操作系统和配置,我不会尝试提供一般教程,但使用您选择的搜索引擎应该不难找到.

一般来说:如果要加载的内容仅通过https提供,则可以使用.

当浏览器中的所有内容似乎都正常工作(没有可见的重定向)并且您仍然会收到错误时,您可以使用Wireshark或其他工具来记录您的流量.可能是错误配置的https以某种方式混淆了Chrome不喜欢的握手.将这些日志发布到SO或共享您要在iframe中显示的网站,以便我们可以进一步分析它,因为它不太可能存在一般解决方案.

HTTP到https重定向(tomcat / jboss)

HTTP到https重定向(tomcat / jboss)

我们想将所有来自应用程序http URL的流量重定向到https,为此,我们在deploy / jboss-web.deployer /
conf目录的web.xml中设置以下值。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>securedapp</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

这确实将用户成功重定向到https位置,但是他们使用的端口与deploy / jboss-web.deployer路径中server.xml中配置的端口不同

<Connector port="8381" address="${jboss.bind.address}"    
         maxThreads="350" maxHttpHeaderSize="8192"
         emptySessionPath="true" protocol="HTTP/1.1"
         enableLookups="false" redirectPort="8543" acceptCount="100"
         connectionTimeout="20000" disableUploadTimeout="true" compression="on" />

    <!-- Define a SSL HTTP/1.1 Connector on port 8643
         This connector uses the JSSE configuration,when using APR,the 
         connector should be using the OpenSSL style configuration
         described in the APR documentation -->
    <!---->
    <Connector port="8543" protocol="HTTP/1.1" SSLEnabled="true"
            maxThreads="150" scheme="https" secure="true"
            clientAuth="false" sslProtocol="TLS"
            keystoreFile="${jboss.server.home.dir}/conf/localhost.keystore"
        keystorePass="changeit"
    />

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
         emptySessionPath="true" enableLookups="false" redirectPort="8543" />

      <Engine name="jboss.web" defaultHost="localhost" jvmRoute="data1">

我们将https端口设置为8543,然后该端口工作了,但是当用户访问http
URL时,将用户重定向到的https端口为8744(当我们在server.xml中设置8744时,它可以正常工作),但是我们可以找不到8744端口在哪里,有人知道如何配置web.xml中第一个提到的代码重定向到哪个端口

另一个查询是,当我们将此配置投入生产时,https端口将为“ 443”,我们需要知道将“ security-
constraint”条目重定向到何处设置443。访问http://www.data.com会重定向到https://www.data.com然后

问候,米林达

HTTP在nginx.conf中重定向到HTTPS

HTTP在nginx.conf中重定向到HTTPS

我自定义了您的docker-compose-yml。

  1. 您的docker-compose.yml不适用于https,因为某些部分错误或缺失。

  2. 要使用HTTPS,必须使用Openssl创建证书。这些必须位于容器中的/ etc / nginx / certs文件夹中。

  3. 将证书放入文件夹时,必须设置-VIRTUAL_PORT = 8080到443,并将APP_URL从http更改为https

  4. 启动服务并将其分配给网络“ web”时,nginx会自动看到已注册新服务。它会自动映射到映像中指定的端口。这是通过音量命令“ /tmp/docker.sock:ro”发生的。 “:ro”代表只读

  5. 如果您将服务分配给网络“内部”,则无法从外部访问该服务,Nginx将忽略该服务。请参阅“ mysql”服务。

  6. 对于“ depends_on:”,我说所有服务都必须在书架开始之前启动。这个很重要!首先是Nginx,然后是MySql,最后是书库。

  7. 我更喜欢在其自己的本地域上使用VIRTUAL_HOST。您也可以在那里使用localhost,唯一重要的是操作系统中的“主机”文件指向您的外部Docker IP。例如:“ 192.168.5.121 bookstack.local”

  8. 我的小费!我会将服务“ nginx--proxy”存储在单独的docker-compose文件中。然后,您可以轻松地在nginx中注册其他服务。

祝您好运,如果您只想在本地使用Bookstack,那么现在HTTPS可能就不再那么紧迫了。否则,搜索“为Nginx本地创建证书”

在开始创建网络“ web”之前:

docker network create web
version: '2.4'

services:

  mysql:
    image: mysql:5.7.21
    container_name: bookstack-mysql
    restart: unless-stopped
    networks:
      - "internal"
    healthcheck:
      test: "exit 0"
    environment:
      - MYSQL_ROOT_PASSWORD=admin
      - MYSQL_DATABASE=bookstack
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=admin
    volumes:
      - ./docker/data/mysql:/var/lib/mysql

  bookstack:
    image: solidnerd/bookstack:0.29.3
    container_name: bookstack
    restart: unless-stopped
    networks:
      - "web"
      - "internal"
    depends_on:
      nginx--proxy:
        condition: service_started
      mysql:
        condition: service_healthy
    environment:
      - VIRTUAL_HOST=bookstack.local
      - VIRTUAL_PORT=8080
      - DB_HOST=mysql:3306
      - DB_DATABASE=bookstack
      - DB_USERNAME=bookstack
      - DB_PASSWORD=admin
      - APP_URL=http://bookstack.local
    volumes:
      - ./docker/data/uploads:/var/www/bookstack/public/uploads
      - ./docker/data/storage-uploads:/var/www/bookstack/storage/uploads

  nginx--proxy:
    image: jwilder/nginx-proxy:latest
    container_name: nginx--proxy
    restart: always
    environment:
      DEFAULT_HOST: default.vhost
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./docker/data/certs:/etc/nginx/certs
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - "web"
      - "internal"

networks:
  web:
    external: true
  internal:
    external: false
,

该解决方案对我有用:-

在docker-compose.yml中的nginx服务部分添加了networks标签-

    networks:
    - bookstack-bridge

然后在nginx.conf中添加了proxy_pass as-

proxy_pass http://bookstack:8080;

谢谢你们的帮助。

今天关于iframe 为我的 Domino XPages 解决方案提供问题使用 Nginx 代理添加 JS 代码以使用 http 重定向的介绍到此结束,谢谢您的阅读,有关AppEngine Node.js未将HTTP重定向到HTTPS、html – Chrome iFrame阻止HTTPS重定向、HTTP到https重定向(tomcat / jboss)、HTTP在nginx.conf中重定向到HTTPS等更多相关知识的信息可以在本站进行查询。

本文标签: