我正在使用MikroTik路由器型号RB750,我需要为我的一些客户端使用HTTPS 代理方法。代理服务器 (VPS) 在另一个国家/地区,我有 IP 地址和端口号以及用于连接的用户名和密码,在代理服务器中我有一个CCPROXY程序。我在路由器中有一个 VPN,但我需要以相同的方式设置 HTTPS 代理,以便为某些客户端启用它并为某些客户端禁用它。
谁能告诉我在Winbox软件中怎么做?
我试图生成自签名证书,以确保这两个example.com和*.example.com。看看这个和这个问题的答案,似乎有同样数量的人同意和不同意这是否可以做到。但是,来自认证机构的网站似乎表明可以这样做。
目前,这些是添加到我的 openssl 配置文件中的更改:
[req]
req_extensions = v3_req
[req_distinguished_name]
commonName = example.com
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
DNS.2 = *.example.com
Run Code Online (Sandbox Code Playgroud)
我尝试了上述配置并生成了证书。导航到 时https://example.com,它会产生通常的警告,表明证书是“自签名”的。接受后,我导航到https://abc.example.com并产生一个额外的警告,说该证书仅对example.com.
证书详细信息仅example.com在证书层次结构中列出,不存在任何通配符子域的迹象。
我不确定这是由于配置错误还是通用名称应该有通配符或无法做到这一点。
进一步更新:
这是我通过使用 openssl 查看证书请求得到的结果:
# openssl req -text -noout -in eg.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=xx, L=Location, O=Example Pte Ltd, CN=example.com/emailAddress=admin@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit) …Run Code Online (Sandbox Code Playgroud) 我正在针对远程 https Web 服务开发应用程序。在开发时,我需要将来自本地开发服务器(在 ubuntu 上运行 nginx)的请求代理到远程 https Web 服务器。这是相关的 nginx 配置:
server {
server_name project.dev;
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_pass https://remote.server.com;
proxy_set_header Host remote.server.com;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是远程 HTTPS 服务器只能接受通过 SSLv3 的连接,从以下openssl调用可以看出。
不工作:
$ openssl s_client -connect remote.server.com:443
CONNECTED(00000003)
139849073899168:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 226 bytes
---
New, (NONE), …Run Code Online (Sandbox Code Playgroud) 我在使用 Media Temples Dedicated Virtual 4.0 托管的域上安装了通配符 SSL 证书。这是我尝试通过 SSL 提供的一个简单示例页面:https : //ssltest.bblhosted.com/
现在,我问过的其他人(大约 4 或 5 个)说该站点在他们的计算机上运行良好,在各种浏览器中都没有安全警告。但是,我在我的计算机上得到了不一致的结果。
这是我的结果。我正在运行最新的 OSX,通过 Parallels 运行 Windows 7,以及所有浏览器的最新版本:
OSX / Firefox:挂锁显示,没问题。 Windows 7 / Firefox:警告 - “此连接不受信任”
OSX / Chrome:警告 - “此站点的安全性不受信任!” Windows 7 / Chrome:绿色挂锁 - 'RappidSSL CA 验证身份'。
OSX / Opera:警告 - '此服务器的证书链不完整,签名者未注册。接受?' Windows 7 / Opera:挂锁显示“安全连接,干净的安全记录”。
OSX / Safari:警告 - “Safari 无法验证网站的身份”
Windows 7 / IE:挂锁显示“此与服务器的连接已加密”。
我的问题是,任何人都可以提供有关可能导致此问题的原因的任何见解,或者如何解决它?难道这只是我电脑的问题,如果是,那是什么?特别奇怪的是,对于相同的浏览器,我在 OSX 和 Windows 7 上得到了相反的结果。 …
在我的负载平衡器上,我终止了与 Nginx 的 HTTPS 连接,然后将请求代理到同样由 Nginx 支持的 Web 服务器之一。
在 fastcgi_params 中的负载均衡器上,我有:
fastcgi_param HTTPS $https;
Run Code Online (Sandbox Code Playgroud)
在 Web 服务器上有一个只能通过 HTTPS 访问的站点。如何检测是否设置了 HTTPS 参数以及是否重定向到站点的安全版本?
我正在尝试在运行 Debian Squeeze 和 Apache 2 的 VirtualBox 来宾实例上设置 https 服务。
当尝试从我的 Win7 主机的浏览器中加载我的虚拟主机的测试页面时,我收到错误“ ssl_error_rx_record_too_long ”。同时,Apache 错误日志显示“请求\x16\x03\x01 中的方法无效”对于此请求。这个问题可能与我在 VirtualBox 来宾中运行 Apache 的事实无关,但想为您描绘整个画面。
真正有趣的部分是,我已经到了站点可以正确加载的地步,但仅限于来自 localhost(即来自 VirtualBox Debian Guest 内部)的请求。我已经用 lynx 和 wget 验证了这一点,它们按预期工作:
wget https://ssltest.intra/ssl.html
--2013-09-13 07:26:49-- https://ssltest.intra/ssl.html
Resolving ssltest.intra (ssltest.intra)... 127.0.0.1
Connecting to ssltest.intra (ssltest.intra)|127.0.0.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 122 [text/html]
Saving to: `ssl.html.1'
100%[======================================>] 122 --.-K/s in 0s
2013-09-13 07:26:49 (1.94 MB/s) - `ssl.html.1' saved [122/122]
Run Code Online (Sandbox Code Playgroud)
保存文件的内容与预期完全一致。此外,如果我尝试通过纯文本 HTTP 与服务器通信,它理所当然地将我发送到更好的地方:
telnet ssltest.intra 443 …Run Code Online (Sandbox Code Playgroud) 这是我第一次使用 nginx 设置,我用它来代理 nodejs。HTTP 在端口 3000 上,HTTPS 在端口 3001 上。
如果我访问http://test.domain.com,它会加载常规的不安全页面。如果我访问https://test.domain.com,它会加载安全页面。但我希望它从非 https 重定向到 https。
我的配置有什么问题?这是我正在使用的整个 domain.conf 文件。
server {
listen 80;
server_name test.domain.com
return 301 https://test.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name test.domain.com;
ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass https://127.0.0.1:3001;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经多次重启nginx。
谢谢!
我的网站在任何地方都强制使用 HTTPS,平均首次加载时间为 3-5 秒。由于缓存,重复加载时间为 0.8 秒。
SSL 协商在我的服务器上需要 150-300 毫秒,因此我希望尽可能频繁地保持每个连接处于活动状态以防止延迟。
SSLSessionCache 设置为默认的 300 秒。
Apache KeepAlive 超时最近从 5 秒降低到 2 秒。
此更改导致服务器平均负载显着降低(平均 5% 而不是平均 10%),但我想知道如果首次加载时间为 3-5 秒,它是否也可能导致首次加载时间变慢?这是否意味着它必须在每次超过 2 秒超时时再次执行 SSL 协商?
使用更少的 SSL 协商(但更多睡眠 httpd 任务)获得略高的平均负载,还是使用更多 SSL 协商获得更低的平均负载更好?
我们肯定有足够的 CPU 和内存资源可供使用。所以最终的问题是,什么会为我们的观众带来最佳表现?将 KeepAlive 超时提高到 3-5,还是保持在 2?
谢谢!
是否可以在 nginx 上发送 Strict-Transport-Security 标头,即使是在需要 WWW-Authentication 的页面上?
当我同时拥有auth_basicand 时add_header Strict-Transport-Security "max-age=2592000";,不会发送 HSTS 标头:
$ curl -Ik https://****************
HTTP/1.1 401 Unauthorized
Server: nginx/1.4.6 (Ubuntu)
Date: Sun, 14 Sep 2014 17:56:08 GMT
Content-Type: text/html
Content-Length: 203
Connection: keep-alive
WWW-Authenticate: Basic realm="*********"
Run Code Online (Sandbox Code Playgroud)
这是一个不同的页面,不需要身份验证的传送,所以add_header指令是有效果-只是没有当它需要验证。
我已经在这个问题上浪费了几天时间,希望它能激发某人的想法。
我正在使用 Powershell 脚本将多个系统集成在一起。我连接到的两个服务之一(托管 JIRA)可以从我的本地系统正常访问,但是从我的一个 VM 运行时脚本会失败。我偶然发现,如果我打开/刷新服务器上的浏览器以获取该主机的 HTTPS URL,那么脚本将能够在此后大约 20-30 秒内通过 HTTPS 访问 API。
当我远程访问服务器并从 powershell 控制台尝试此操作时,我收到超时错误。然后我验证了 cUrl 发生了相同的行为(下面包含详细输出)。使用该域刷新浏览器后,两者都可以在短时间内访问 HTTPS URL。在 SSL 协商之前的初始连接似乎超时。
代表 PoSH 命令:
Invoke-RestMethod -Method Get -Uri " https://MYDOMAIN.atlassian.net/rest/api/2/issue/PLPT-1?fields=key,id,status " -Headers @{"Authorization" = "Basic " + [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('USERNAME:PASSWORD'))}
代表 cUrl 命令:
curl.exe " https://MYDOMAIN.atlassian.net/rest/api/2/issue/PLPT-1?fields=key,id,status " -u "USERNAME:PASSWORD" -v -X GET
我在这方面做了很多挖掘,我很难过。我确实尝试使用 Wireshark 进行更深入的挖掘,但是我已经好几年没有使用数据包嗅探器了,而且我已经生疏了,不得不学习 UI。
以下是我在尝试隔离问题时能想到的问题/答案:
https://google.com/ 没有超时工作正常https://localhost/... 没有超时工作正常https ×10
nginx ×4
ssl ×3
proxy ×2
apache-2.2 ×1
apache-2.4 ×1
curl ×1
debian ×1
jira ×1
keepalive ×1
mikrotik ×1
node.js ×1
openssl ×1
optimization ×1
powershell ×1
redirect ×1
router ×1
security ×1
virtualhost ×1