标签: https

Firefox - 有什么方法可以覆盖服务器名称指示以进行故障排除?

我广泛使用 Firefox 来访问无数的 Web 应用程序并对其进行故障排除,其中许多应用程序运行在 apache 虚拟主机环境中。

我一直遇到的一个问题是,在启用 SSL 的服务器上,我无法覆盖主机名来访问正确的虚拟主机。

通过 HTTP,人们可以访问一个 IP 地址,http://1.2.3.4/page.html并伪造host:具有不同值的标头来访问不同的虚拟主机。

例如,这些是等效的:

  • http://my.virtualhost.example.com
  • http://1.2.3.4与标题host: my.virtualhost.example.com

对于 HTTPS,这变得不可能,因为在建立 TLS 连接之前必须知道主机名,因此 apache 无法知道要服务哪个 SSL 虚拟主机。

解决方法是覆盖TLS 请求中的服务器名称指示ClientHello(SNI) 字段。

有什么方法可以使用 Firefox 插件或扩展来覆盖 SNI 值吗?

我在 Windows 7 上使用 Firefox 40。

firefox https ssl firefox-extensions tls

5
推荐指数
1
解决办法
3958
查看次数

为什么我无法通过 https 访问路由器的配置页面?

我有一个 TP-Link 路由器,我尝试通过 https 访问配置页面(192.168.0.1),但无法访问。它只能通过 http 运行。

任何路由器都会出现这种情况还是只是我的(或者可能只是 TP-Link)?

我在谷歌上搜索了很多这个问题,但似乎找不到与该主题相关的任何内容

networking router wireless-networking https

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

关于 HTTPS 代理的困惑

我知道 HTTP 代理的工作原理,但不确定 HTTPS 代理的工作原理。更具体地说,我对加密部分感到困惑。

因此,客户端使用 HTTPS 连接到代理。我明白了。现在假设用户想要通过该代理连接到 Gmail。

  1. 代理是否必须首先建立与 gmail 的 HTTPS 连接?
  2. 客户端/服务器端的问候是如何完成的?客户端是否通过https对客户端hello进行加密,发送给代理,代理解密,用gmail同意的加密方式加密后发送给gmail?
  3. 然后,在执行客户端/服务器问候并商定加密方法之后,客户端不会感到困惑吗?因为如果请求都通过代理,加密方法不应该只有一种吗?或者客户端是否根据请求发送到的主机对其请求进行加密,而不管 IP 地址如何?
  4. 还有一件事; 如果代理应该用自己的地址替换数据包的发送者地址,那么数据包不应该被完全解密吗?因为如果不是,那么如果数据都是乱码,那么代理如何知道在哪里插入它的 IP?或者发送者部分没有加密?

encryption proxy https

5
推荐指数
1
解决办法
7177
查看次数

Android TCP 错误无法从静态库解析主机名

我在 android 上使用 ffmpeg 时遇到了错误,但当我在 Linux 虚拟机上使用该库时,不会发生这种情况。我正在使用 FFmpeg Static Builds,来自这里。我在模拟器和 Linux VM 上使用稳定的 3.1.5 x86_64 版本。

我使用的模拟器是genymotion API 22 nexus 6p,linux vm是ubuntu 16.04。这个问题也出现在我的物理手机上,即运行cyyogenmod 6、API 22的nexus 5。

安卓日志:

ffmpeg version 3.1.5-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.1 (Debian 5.4.1-2) 20160904
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libebur128 --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid …
Run Code Online (Sandbox Code Playgroud)

linux android tcp https ffmpeg

5
推荐指数
0
解决办法
2919
查看次数

通过 DNS 代理强制使用 HTTPS /“智能 DNS”如何与 HTTPS 配合使用?

我想通过在 VPS 上运行的代理强制将 HTTP(S) 流量从我的家庭网络发送到某些网站。

我安装tinyproxy在 VPS 上,在端口 上运行8080。在我的电脑上我正在运行

sudo ssh -i /home/user/.ssh/id_rsa -nNT -L 80:localhost:8080 -L 443:localhost:8080 remoteuser@vps
Run Code Online (Sandbox Code Playgroud)

本地访问代理。当我在 Firefox 设置中配置localhost:80为代理时,一切正常(HTTP 和 HTTPS)。

但由于我不希望所有流量都通过该代理,因此我将其添加到我的电脑中/etc/hosts

127.0.0.1     server.example 
Run Code Online (Sandbox Code Playgroud)

server.example是为 HTTP 和 HTTPS 配置的 Web 服务器的名称。

访问http://server.example正常,但https://server.example在 Firefox 中打开失败并出现错误

SSL_ERROR_RX_RECORD_TOO_LONG
Run Code Online (Sandbox Code Playgroud)

curl通过 HTTPS 访问页面也失败:

curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Run Code Online (Sandbox Code Playgroud)

据我了解,此问题是由 tinyproxy 使用纯 HTTP 响应 HTTPS 请求引起的。

首先,理论上可以实现我想要的吗?那些所谓的“智能 DNS”服务似乎正是这样做的。

这个问题是由我的设置引起的还是tinyproxy无法做到这一点?是否有不同的代理服务器能够做到这一点?

编辑:目前我正在我的 PC 上运行 SSH 隧道,并且 DNS 修改也在本地,但我想稍后将其部署在我的路由器上,以便来自我网络的任何设备的流量都通过此代理。

EDIT2:正如 @SteffenUllrich 在评论中所写,当通过 …

proxy https ssl

5
推荐指数
1
解决办法
2080
查看次数

域上的 HTTPS(letsencrypt)squid 代理?

我想制作一个 HTTPS 鱿鱼代理(这种),任何人都可以使用它来访问任何网站。这不是反向代理,它适用于整个互联网。出于安全原因,不应允许访问我的子网中的 IP。我获得了 LetsEncrypt 证书proxy.mydomain.com,我想知道如何为此正确配置鱿鱼。这是我当前的配置文件:

########### squid.conf ###########
#
## interface, port and proxy type
#http_port 0.0.0.0:80 transparent
https_port 0.0.0.0:443 intercept tls-cert="/etc/letsencrypt/live/proxy.mydomain.com/fullchain.pem"

## timeouts
forward_timeout 30 seconds
connect_timeout 30 seconds
read_timeout 30 seconds
request_timeout 30 seconds
persistent_request_timeout 1 minute
client_lifetime 20 hours

## host definitions
acl all src 0.0.0.0/0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

acl localnet src 0.0.0.1-0.255.255.255  # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8             # RFC 1918 local …
Run Code Online (Sandbox Code Playgroud)

proxy https squid http-proxy

5
推荐指数
1
解决办法
4706
查看次数

代理(或其他解决方案)可以允许老式浏览器(在 HTTPS 时代之前 - 没有或很弱的 SSL/TLS 支持)与 HTTPS 网站连接?

是否有代理(或其他解决方案)可以允许老式浏览器(在 HTTPS 时代之前 - 无 SSL/TLS 支持或较弱的 SSL/TLS 支持)与 HTTPS 网站连接?

换句话说:

旧浏览器 <-- http 连接 --> 客户端(本地)代理 <-- HTTPS 连接 --> 任何互联网网页

(浏览器向本地代理发送http页面请求,本地代理发送HTTPS请求,代理收到HTTPS响应/页面后,以未加密的http将其返回给浏览器)

此类代理的简单示例配置也受到欢迎。

TLS_termination_proxyhttps://serverfault.com/questions/943649/https-http-lightweight-proxy )是我正在寻找的(还是仅适用于服务器)?

我已经开始检查 Windows 的 TLS_termination_proxy 列表(存档列表12)(Nginx、stunnel、Hiawatha、Caddy、Apache 和 Squid)中的代理。Nginx 似乎可以做到这一点。stunnel适用于 64 位(也有 32 位版本)。

windows linux proxy https http

5
推荐指数
1
解决办法
4786
查看次数

在没有 Internet 连接的本地网络上的客户端浏览器中使用 HTTPS

我正在开发一个在服务器上运行的网络应用程序。会有客户端(智能手机浏览器)通过不连接到互联网的 WiFi 通过 HTTPS 连接到服务器。它主要用于为期 1 天的活动。

问题:是否可以在没有互联网的情况下使用 HTTPS?

  • 我们无法将任何证书添加到客户端的信任库中。我们也不能以任何其他方式配置客户端。客户将是随机参观活动的人
  • 客户端无法访问互联网来验证 CRL/OCSP。可能只是没有互联网连接

我有一个使用本地 DNS 的想法:

  • 我拥有密钥和受信任的 SSL 证书 (LetsEncrypt)offline.mydomain.com
  • 离线WiFi网络中有一个DNS服务器,将所有DNS地址指向我的应用程序服务器
  • SSL 证书信任链中的所有证书和 CRLoffline.mydomain.com都会下载到应用程序服务器,并且可以在证书的 CDP 和 AIA 中定义的路径上访问它们
  • 应用程序服务器声称正在运行https://offline.mydomain.com(并且DNS服务器指向offline.mydomain.com应用程序服务器)

整个流程是:

  • 客户: GET https://offline.mydomain.com/app
  • DNS: offline.mydomain.com位于应用程序服务器的IP上
  • 我的应用程序服务器:这是 HTML
  • ...
  • 客户: GET http://crl.ca.com/crls/ca.crl
  • DNS: crl.ca.com位于应用程序服务器的IP上
  • 我的应用程序服务器:这是 CRL
  • ...
  • 客户: GET http://certificate.ca.com/certs/ca.cer
  • DNS: certificate.ca.com位于应用程序服务器的IP上
  • 我的应用程序服务器:这是证书
  • ...

但是,我不太了解网络。DNS部分可以吗?

  • 我可以让客户端使用我的本地 DNS 而无需手动配置吗?
  • 连接回真实互联网后,客户会有多少困惑?
  • 智能手机会连接到未连接互联网的 WiFi 吗?

browser dns wireless-networking https ssl-certificate

5
推荐指数
1
解决办法
7864
查看次数

在 Chrome 中通过 HTTPS 设置 DNS?

尝试在 Windows 10 Pro 上的 Chrome(版本 80)中启用基于 HTTPS 的 DNS。尝试将其打开于

chrome://flags/#dns-over-https

通过 https 启用 DNS

根据FOSSBYTES 文章,但根据https://1.1.1.1/help,它未启用。

另外,根据https://www.zdnet.com/article/how-to-enable-dns-over-https-doh-in-google-chrome/,尝试附加此

--enable-features="dns-over-https<DoHTrial" --force-fieldtrials="DoHTrial/Group1" --force-fieldtrial-params="DoHTrial.Group1:server/https%3A%2F%2F1.1.1.1%2Fdns-query/method/POST

到快捷方式的目标字段,通过编辑其属性字段来启动 Chrome。关闭 Chrome 和 PC,重新启动后重新启动 Chrome,但当我在https://1.1.1.1/help上检查时,它仍然未启用。

未启用

顺便说一句,在 Firefox 和 Brave 中设置它没有任何问题,完全按照FOSSBYTES 说明描述。对于这些浏览器,Cloudflare确认页面将“使用 DNS over HTTPS (DOH)” 显示为“是”。还没有尝试过铬。

如何配置 Google Chrome(以及 Chromium)以通过 HTTPS 使用 DNS?

windows dns google-chrome https

5
推荐指数
0
解决办法
803
查看次数

SSL 证书:EE 证书密钥太弱

$ curl -s https://goolge.ca | wc 
      0       0       0

$ curl -vs https://goolge.ca
. . .
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, bad certificate (554):
* SSL certificate problem: EE certificate key too weak
* Closing connection 0

$ lsb_release -a
No LSB modules are available.
Distributor …
Run Code Online (Sandbox Code Playgroud)

linux debian https certificate ssl

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