标签: https

如何通过单个端口处理加密和未加密的 http 连接

请看下图。

替代文字

这应该如何工作?

  • 当远程请求 http://myhost.com:8080/* 时,请求应该转发到监听环回接口 8008 端口的 http 服务器。这是简单的部分。

  • 当远程用户请求 http://myhost.com:8080/specialurl ...

    • 充当应用程序级网关的程序应该能够将连接升级为加密会话(无需更改端口

    • 与远程浏览器建立加密会话后,应将请求转发给监听环回接口8000端口的C程序

我的问题是

  1. 您是否曾经在生产环境中部署过这样的解决方案?如果你有...
  2. 您使用什么产品作为应用程序网关?
  3. 你能提供一个配置示例吗?

硬限制

  • 无法控制防火墙,唯一可以让外部流量进入内部服务器的端口是 8080。端口号无关紧要,问题是在防火墙级别只有一个端口打开以转发传入到内部服务器的流量。
  • 内部服务器必须运行 Linux(目前它运行的是 Debian Lenny)
  • 远程用户只需要当前的 Web 浏览器和 Internet 连接即可访问此服务器。这意味着通过 SSH 进行反向端口转发在这里不是一个选项。
  • 我需要一个已经在生产中经过测试并且可以轻松部署的产品。我不打算开发自己的应用程序网关(如果是这样,我想我会在 Stack Overflow 上问这个问题,而不是在 Server Fault 上问这个问题)。

软限制

  • 我想避免将 Apache 作为应用程序网关(尽管如果这是唯一可能的选择,我愿意这样做)
  • 如果可能,应用网关应该是成熟的开源软件产品。

迄今为止尝试过的应用程序网关产品(未成功)

  • nginx
  • 轻量级

相关 RFC

  • RFC2817 ( ...解释了如何使用 HTTP/1.1 中的升级机制通过现有的 TCP 连接启动传输层安全 (TLS)。这允许不安全和安全的 HTTP 流量共享同一个众所周知的端口...)
  • RFC2818 ( ...描述了如何使用 TLS 来保护 Internet 上的 …

linux http nginx https lighttpd

10
推荐指数
1
解决办法
1938
查看次数

通过 http 发送密码的攻击媒介是什么?

我试图说服客户为需要登录的网站支付 SSL 费用。我想确保我正确理解了有人可以看到正在发送的密码的主要场景。

我的理解是,在沿途的任何跃点都可以使用数据包分析器来查看正在发送的内容。 这似乎要求任何黑客(或他们的恶意软件/僵尸网络)与数据包到达目的地所需的任何跃点位于同一子网上。那正确吗?

假设这个子网要求的某种风格成立,我需要担心所有的跃点还是只需要担心第一个?第一个我显然可以担心它们是否在公共 Wifi 网络上,因为任何人都可能在监听。我是否应该担心数据包将在此之外传输的 子网中发生了什么? 我对网络流量一无所知,但我认为它流经主要运营商的数据中心,并且那里没有很多多汁的攻击媒介,但如果我错了,请纠正我。

除了使用数据包分析器收听的人之外,还有其他需要担心的向量吗?

我是一个网络和安全新手,所以如果我在其中使用了错误的术语,请随时纠正我。

security ssl hacking https packet-sniffer

10
推荐指数
1
解决办法
865
查看次数

haproxy + stunnel + 保持活动状态?

我想在 haproxy 1.4 前面放置 stunnel 来处理 HTTPS 流量。我还需要 stunnel 添加X-Forwarded-For标头。这可以通过 haproxy 网站上的“stunnel-4.xx-xforwarded-for.diff”补丁来实现。

但是,描述中提到:

请注意,此补丁不适用于 keep-alive,...

我的问题是:这对我来说在实践中意味着什么?我不确定,

  1. 如果这是关于保持活动之间的
    • 客户端和 stunnel
    • stunnel 和 haproxy
    • 或haproxy 和后端服务器?
  2. 这对性能意味着什么:如果我在网页上有 100 个图标,浏览器是否必须协商 100 个完整的 SSL 连接,或者它可以重新使用 SSL 连接,只是创建新的 TCP 连接?

ssl https tcp haproxy stunnel

10
推荐指数
2
解决办法
8713
查看次数

需要帮助解决 Https 网络服务器错误 - SSL 握手失败

我遵循了本指南:http : //hints.macworld.com/article.php?story=20041129143420344

这是我的虚拟主机定义

<VirtualHost *:443>
    SSLEngine on
    SSLProxyEngine On
    RequestHeader set Front-End-Https "On"
    CacheDisable *
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    DocumentRoot "/Users/me/projects/myproject/public"
    ServerName ssl.mydomain.com
    ServerAlias *.ssl.mydomain.com
    SSLCertificateKeyFile "/private/etc/apache2/certs/webserver.nopass.key"
    SSLCertificateFile "/private/etc/apache2/certs/newcert.pem"
    SSLCACertificateFile "/private/etc/apache2/certs/demoCA/cacert.pem"
    SSLCARevocationPath "/private/etc/apache2/certs/demoCA/crl"
    ErrorLog "/Users/me/Desktop/ssl.log"

    ProxyPass / https://localhost:3002/
    ProxyPassReverse / https://localhost:3002
    ProxyPreserveHost on    
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我尝试连接到 Web 浏览器的 sevre viov 时,出现此错误:

[Thu Feb 02 16:50:40 2012] [error] (502)Unknown error: 502: proxy: pass request body failed to 127.0.0.1:3002 (localhost)
[Thu Feb 02 16:50:40 2012] [error] [client 96.11.81.39] proxy: Error during SSL Handshake …
Run Code Online (Sandbox Code Playgroud)

ssl https virtualhost apache-2.2

10
推荐指数
2
解决办法
3万
查看次数

在不发出警报的情况下重定向 SSL

客户端仅具有域的 www.site.com 版本的 SSL 证书,而不是 site.com。

通过 mod_rewrite 重定向常规 HTTP 不是问题。

但是,对于 HTTPS,这种方法对我们来说似乎失败了。

我们想将https://site.com请求重定向到https://www.site.com

这是否可以在不在浏览器中引发无效证书警告或获取通配符证书的情况下完成?

mod-rewrite ssl https apache-2.2

10
推荐指数
1
解决办法
2万
查看次数

为 localhost OS X 10.6 分配多个 IP 地址

我试图在启用 HTTPS 的情况下在本地托管多个网站,但为了做到这一点,我需要将本地机器配置为对 localhost 使用多个 IP 地址(我相信)。有没有办法让多个 IP 地址同时在本地解析?

我使用的是 OS X 10.6(标准版 - 不是服务器)和 MAMP 服务器设置。

谢谢!

ip https mac-osx localhost

10
推荐指数
2
解决办法
1万
查看次数

如何在服务器错误之前从 HTTPS 重定向到 HTTP?

我曾经用SSL证书运营过一个网站,但已经停止使用SSL证书。问题是网站的大部分外部链接都使用 https:// 前缀。

我在 .htaccess 文件中尝试了 https:// 到 http:// 重定向:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)

但是,正如其他地方指出的那样,服务器似乎在激活重定向之前尝试检索证书。因此,在完成重定向之前会显示错误。该错误要么是证书已过期的警告,要么是我删除了证书签名请求,然后是 SSL 收到超过最大允许长度的记录的错误。

有什么办法可以让传入的链接正确重定向?

http https web-server .htaccess apache-2.2

10
推荐指数
2
解决办法
4万
查看次数

将apache ssl端口与具有相同openssl端口443的不同端口绑定

我有一个服务器(linux 基础),我在其中安装了 dotcms,它在端口 80 上运行,openssl 在端口 443 上。两者都在运行过程中启动。最近我在我的服务器上安装了 apache。当我启动 apache 时,它​​卡住了,因为 apache 上的默认 ssl 端口是 443,而 apache 是 80,它们都已经在运行。只是为了我的任务,我只在端口 90 上启动了没有 ssl 的 apache。是否可以使用相同的 openssl 绑定 apache ssl?

我在运行过程中需要我的默认 dotcms 我在任何情况下都无法停止它,如果需要 apache 启动,我只能重新启动我的 dotcms 服务。但我需要 dotcms 和 apache 来并行运行。

在该链接上查看图片(由于声誉较低,我无法上传图片) http://developers89.byethost14.com/images/ssl.png

linux ssl https apache-2.2

9
推荐指数
1
解决办法
6万
查看次数

nginx 响应未知主机名?

我有两个域指向同一台服务器,一个我们将调用home,另一个我们将调用web

我在端口 80 上为 HTTP 和 443 为 HTTPS 运行 nginx。在我的服务器定义中,我定义了两个服务器:

server {
    listen 80;
    server_name web;
    # ...
}

server {
    listen 443;
    server_name web;
    # ...
}
Run Code Online (Sandbox Code Playgroud)

在实践中,它工作得很好。但是,当我尝试访问home指向与 相同的 IP 地址的 时web,我会得到服务,web而不是得到 404 或类似信息。

如何将 nginx 配置为与服务器名称不匹配的 404 请求?我是否需要定义一个默认服务器,它只会将事情退回到 404 秒?

http nginx https

9
推荐指数
3
解决办法
1万
查看次数

HTTPS 开销与 HTTP 相比

HTTPS 是 HTTP 的加密版本,如今加密所有 Web 流量(不仅仅是敏感流量)已成为一种普遍做法。

除了需要购买昂贵的证书和依赖第三方证书颁发机构之外,HTTPS 的缺点是增加了 CPU 负载(用于实际加密)和带宽消耗(用于附加协议协商)。

这种开销不仅是服务器端的问题,也是客户端感知到的更高延迟。

在 CPU 负载、带宽和延迟方面的实际开销是多少?

减少这种开销的最新技术(软件、硬件和最佳实践)是什么?

performance https

9
推荐指数
1
解决办法
2万
查看次数