是否可以解决 Web 服务器在 HTTPS 后面提供服务并且必须同时使用www.domain.com和访问的情况www.domain.com.?并注意尾随的点。
一个例子:GitHub
证书当然是 for github.comnot for github.com.。这个问题有办法解决吗?我完全误解了 DNS 架构吗?
情况:
www.<domain>.comHTTP 和端口上的 HTTP<domain>.com以及端口 443 上的 HTTPS问题:每次我<domain>.com在任何浏览器中输入URL 时,我都会被重定向到https://www.<domain>.com[<-- 注意 'S'](不好)。当我进入时www.<domain>.com,它保持原样(好)。
我仔细检查了设置一百次,但找不到这种行为的任何原因。有任何想法吗?
我目前正在https我们的生产环境中实施,但我在这里为一件小事而挠头。
SSL 在负载均衡器中终止,我们堆栈中的流程基本上是这样的:
生产:浏览器 <- https-> 负载均衡器 <- http-> Apache <- http-> 负载均衡器 <- http-> Tomcat
测试:浏览器 <- https-> nginx <- http-> 负载均衡器 <- http-> Tomcat
当我通过 HTTPS 访问我们的登录页面时:
请求头
POST /login/form HTTP/1.1
Host: www.example.org
Connection: keep-alive
Content-Length: 74
Cache-Control: max-age=0
Origin: https://www.example.org
Content-Type: application/x-www-form-urlencoded
Referer: https://www.example.org/login
Accept-Encoding: gzip,deflate,sdch
Accept-Language: nb,en-US;q=0.8,en;q=0.6
Run Code Online (Sandbox Code Playgroud)
响应头
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Fri, 17 Jan 2014 11:16:50 GMT
Content-Length: 0
Connection: keep-alive …Run Code Online (Sandbox Code Playgroud) 我使用 AWS Docs 中的场景 2 设置了一个 VPC:http : //docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
我已将弹性 IP 分配给在公共子网中运行的 EC2 实例。SSH 工作正常,我可以访问在其上运行的网站。但是,我不能发出传出的 HTTP 或 HTTPS 请求(我在尝试运行时注意到了这一点yum update)。
我相信我所有的安全设置都是正确的。我无法通过 Internet 网关发出传出 HTTP/HTTPS 请求吗?我特别要求在创建时不要将公共 IP 分配给此实例,因为我知道我将分配一个让网站 DNS 喜欢的弹性 IP。我在私有子网中为实例设置了 NAT,但我目前只有 RDS 实例在那里运行,所以我没有测试从那里发出的请求。
该 EC2 实例的安全组具有以下出站规则:

该子网的路由表具有以下设置:

网络 ACL 具有以下设置:

默认 DHCP 选项集具有以下设置:
domain-name = ec2.internal
domain-name-servers = AmazonProvidedDNS
Run Code Online (Sandbox Code Playgroud)
默认/etc/resolv.conf设置为:
search ec2.internal
nameserver 10.0.0.2
Run Code Online (Sandbox Code Playgroud)
VPC 和子网的 CIDR 块如下:
VPC: 10.0.0.0/16
Public Subnet: 10.0.0.0/24
Private DB Subnet in US East 1A: 10.0.1.0/24
Private DB Subnet in …Run Code Online (Sandbox Code Playgroud) 我们正在使用 F5 来执行负载平衡。当使用 SSL 桥接而不是终止时,我们通常在前端使用通配符,在 HTTPS 后端使用常规 SSL 证书。
但是,一些同事认为,对于 MS Exchange 等某些应用程序,我们必须在后端和负载均衡器中使用相同的私钥。
我无法理解后端如何检查负载均衡器使用的私钥。我检查了F5 的文档,但找不到任何相关内容。
有人可以帮我理解吗?
更新 1:我开始强烈怀疑这是对实际发生的事情的歪曲,尽管有几个同事的说法。现在,其他人再次证实了这种怀疑。当我找到结论时,我会更新。如果其他人有任何想法,请提交。
更新 2:对于 VMware Horizon,我找到了一篇知识库文章,解释了证书不匹配时收到的错误。我可以由此得出结论,Horizon 正在通过比较其协议中的指纹来实现自己的检查吗?
我希望通过拦截 HTTPS 流量对在各种设备上运行的产品进行漏洞研究,但除了安装自定义 cert 之外,我不想修改设备。
似乎SSLsplit做了我想要的,因为它允许“通过网络地址转换引擎透明地拦截连接并重定向到 SSLsplit ”。据我了解,这些 NAT 规则不必在运行 MITM-ed 应用程序的设备上定义,我可以自定义iptables以在运行Fruity Wifi或OpenWRT的设备上通过SSLsplit重定向路由器流量。
带有修改过的 iptables 规则的SSLsplit是否足够并且是解决此问题的合理方法,或者我是否还必须修改 Linux 网络系统的其他部分?
注意:我正在尝试构建的系统要求设备将证书安装到受信任的根存储中,以“选择加入”此拦截。我并不是要构建一个系统来拦截来自不情愿设备的任意流量。
首先请原谅这个问题是否简单。
我有一台装有 Ubuntu 和 nginx 的服务器。使用时始终有效http,但在添加证书并尝试启用后,https我收到此错误nginx: [emerg] host not found in upstream "api"。
这是我的配置:
upstream api {
least_conn;
server 176.9.91.243:7123;
}
upstream api2 {
least_conn;
server 176.9.32.170:7123;
}
server {
# listen 80;
listen 443;
ssl on;
ssl_certificate /etc/ssl/chain.crt;
ssl_certificate_key /etc/ssl/ssl_key.key;
add_header Strict-Transport-Security "max-age=31536000";
add_header Content-Security-Policy "block-all-mixed-content";
root /var/www/hosting;
index index.html index.htm;
client_max_body_size 15m;
server_name serverName.com;
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
set …Run Code Online (Sandbox Code Playgroud) 我在 Azure 上的负载均衡器后面有 2 个 VM。我使用分配给负载均衡器的域,通过 Let's Encrypt 在其中一台虚拟机上创建了一个新的 SSL 证书。当我通过 IP 直接连接到该 VM 时,我看到已加载证书,但我现在无法将负载均衡器流量路由到 VM,该网站无法加载。
在我在 nginx 中添加证书和规则以将 80 重定向到 HTTPS 之前,一切正常。我在负载均衡器中添加了一条新规则,将数据从 443 路由到后台池 443,并为 443 添加了一个新的健康探测,但这并没有帮助。
我读到可以使用 Azure 应用程序网关直接在负载均衡器上加载证书,但在这种情况下,我需要重新创建我的 VM 以将它们放在同一个虚拟网络中,我想避免这种情况。
是否可以使用经典负载均衡器路由 HTTPS 流量。请注意,我可以将每个 VM 设置为使用相同的证书,以便在每个 VM 中获取 HTTPS 流量。
我有一个在 IIS 上运行的 ISAPI 应用程序,该应用程序旨在支持上传任何大小的文件。在一台服务器上,使用 HTTPS 时,上传似乎随机失败413 Request Entity Too Large或超时,唯一的补救措施似乎是设置uploadReadAheadSize为大于上传文件的值。然而,这会将上传文件的大小限制为 2GB( 的最大值uploadReadAheadSize),这是不可接受的。
uploadReadAheadSize在安装了相同应用程序并且设置为默认值(49152 字节)的任何其他服务器(并且有很多服务器)上都不会出现此问题。可能是什么原因导致这个问题,我应该如何调试这个问题?
(注意:我在 StackOverflow 和此处看到了几个类似的问题,但在这些情况下,要么要使用客户端证书,要么应用程序基于 WCF(我们的不是),或者问题不独立于uploadReadAheadSize或传输层安全)
uploadReadAheadSize另外,什么是了解实际情况以及“幕后”发生的事情的良好来源?微软的官方文档相当稀疏。
现在有一个应用程序允许人们通过公开一个由Atmosphere提供支持的 AngularJS Web 服务器通过 Web 连接到桌面应用程序。桌面应用程序会公开当前人员的 IP 地址,以便拥有该地址的任何人都可以连接。
我试图通过我的服务器(example.com)代理来掩盖这个 IP。我的服务器目前托管一系列应用程序(Ruby on Rails + Elastic Search、Logstash、Kibana - ELK)并由 Nginx 客户端代理。
我已经设法通过节点 HTTP 代理(本地)成功屏蔽了 IP 地址,现在我正在尝试在使用 Nginx 时使其工作。AngularJS 应用程序使用 Websockets,所以我需要代理 HTTP 和 WS 请求。
我非常接近弄清楚一切。我在没有 Nginx 的情况下进行了本地测试,并且 IP 地址被正确屏蔽。我在让 Nginx 通过同一位置重定向 HTTP 和 Websockets 时遇到了挑战(请参阅代码)。
从所有教程和服务器故障帖子中,我看到 Websockets 通常指向不同的位置,而 Nginx 会优雅地升级连接。
我现在面临一个挑战,我试图通过相同的位置 HTTP/2 和 Websockets 协议进行代理。我已经诉诸邪恶的黑客,例如在location块内使用 IF (但它们没有奏效)。
理想情况下,我希望 Websockets 指向与 HTTP 不同的位置,这将解决问题。我目前的问题是我没有 AngularJS 应用程序的源代码,以便我这样做。
Atmosphere 服务器似乎通过查询参数检测到 Websockets 连接(这是它连接到的 URL):
ws://the-user-ip/?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.3.2-javascript&X-Atmosphere-Transport=websocket&Content-Type=application/json&X-atmo-protocol=true.
Run Code Online (Sandbox Code Playgroud)
这是我当前来自 Nginx 的配置的一部分:
upstream ipmask_docker_app {
server …Run Code Online (Sandbox Code Playgroud)