当前位置: 首页 > 知识库问答 >
问题:

使用通配符子域和ssl设置复杂的htacess

郝永思
2023-03-14

我安装了通配符 SSL 证书,允许我通过 SSL 为任何子域提供页面。

例如:https://www.domain.comhttps://test.domain.comhttps://demo.domain.com

我需要编写一些. htaccess规则来执行以下操作。

>

  • 如果单独请求域,则强制使用WWW和SSL

    例如,将 http://domain.com 或 https://domain.com 重定向到 https://www.domain.com

    对所有没有SSL的请求强制使用SSL

    例如,http://anything.domain.com 重定向到 https://anything.domain.com

    编辑:我知道如果有人请求 https://domain.com(没有子域),则无法防止证书错误

    考虑到这个警告,下面的代码似乎是处理其他重定向的最佳方式吗?

    # WWW
    RewriteCond %{HTTP_HOST} ^mysampledomain\.com$ [NC]
    RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    # SSL
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
  • 共有1个答案

    柴飞星
    2023-03-14

    SSL证书不能单独在域上工作,因此如果有人请求< code > https://mysampledomain . com ,他们会在重定向发生之前收到一个错误。

    除了获得涵盖您的基本域的证书外,您对此无能为力。

    当我的浏览器请求< code > https://mysampledomain . com 时,它要做的第一件事就是处理与您的服务器的连接加密。但是由于你的服务器不能为主机名提供有效的SSL证书,我的浏览器会说,“谢谢,但是不,谢谢——我不能信任你,所以我不会再和你说话了。”

    您甚至不会到达您的服务器可以将我的浏览器重定向到其他任何地方的程度 - 加密发生在HTTP之上的层上,并且由于我们无法就加密达成一致,因此您的服务器甚至无法与我的浏览器“对话HTTP”(这是必要的,以便您可以发出HTTP重定向)。

     类似资料:
    • 我在AWS ECS有以下设置: null

    • Atom支持语言特定的设置。你可以在Markdown文件中软换行,或者在Python中把tab的宽度设置为4。 语言特定的设置只是一些东西的子集,我们把它叫做“作用域设置”。作用域设置可以只作用于一类特定的语法符号。比如你可以仅仅对Ruby的注释,Markdown中的代码段,或者JavaScript函数名称进行设置。 语法符号中的作用域名称 编辑器的每个符号都有一系列的作用域名称。例如,前面提到的

    • 以下是每个部署的潜在工作流: 创建feature-api-deployment.yml 创建feature-api-service.yml 使用新的子域规则更新ingress.yml:指定 但是枚举和维护所有的子域->服务映射将会因为分解部署而变得混乱,并且会创建大量的GCE后端(默认配额是5...)所以不太理想。

    • 我正在开发一个将在Kubernetes运行的SaaS应用程序。我们使用了一个将所有组件部署到集群中的Helm图表(为了简单起见,我们假设它是一个前端服务、一个后端和一个数据库)。应用程序架构是多租户的(我们有每个服务的一个实例,由所有租户共享),我们希望保持这种方式。我目前正在苦苦思索并想征求建议/最佳实践的是,如何为租户自动提供自定义子域? null

    • -=更新=- 我遇到的问题是,证书是有效的,但站点对证书无效。保留默认设置(提供带有证书默认设置的配置文件或使用Capybara中的标准:selenium驱动程序)对我的案例有效。我错误地认为我需要修改Firefox配置文件才能让驱动程序工作,但事实并非如此。 从自定义配置文件中删除证书设置修复了此问题。谢谢Jarib -=原问题=- 我目前正在尝试设置测试浏览器,以便在使用Cucumber和Ca

    • 问题内容: 我不敢相信我以前没有做过,但是我想得到一个明确的答案,所以我已经准备好了。 我有一个Apache的配置文件,看起来像这样: 因此,这可以很好地处理html和php文件。但是我在那里有多个项目,因此想开始使用子域。我想要做的是将文件从用作根目录。 我尝试将以下内容添加到我的apache文件的底部: 但apache抱怨: 我知道我犯了一个基本错误,但是我不确定这是什么。 编辑 现在是我完整