下午,
我在 domainA.com 上发布了一个 API,并且已经做了几个月。*http:/domainA.com/service.svc 带我到资源 (c:\inetput\wwwroot\api) * https://domainA.com/service.svc一夜之间无法连接相同的资源。
连接到 https 时,网站日志文件显示错误 404。浏览到 * https://domainA.com/service.svc声称网页不可用 使用 http 时日志文件显示连接成功,使用 https 时日志文件显示 404。
SSL 证书已安装工作数月,即将到期。
我可以从远程 PC 到 domainA 80 和 domainA 443 没有问题,所以我知道防火墙很好(日志文件显示连接)。
BINDING 显示正在使用的正确端口 80 和 443。
IP 地址 (192.168.10.38) 仅供本网站使用。
几个月前,我在 (192.168.10.38) 上发布了一个测试 URL,用于在部署之前进行测试,但这被停止了,新 URL 已测试,旧 URL(网站)在前一段时间被删除。
已尝试重新启动有问题的站点。
已尝试 IISreset。
我不明白为什么 * https://domainA.com/service.svc一夜之间现在无法连接 IIS BASIC 设置也说它指向的资源。端口 443 已打开并正常工作。
在检查 IP/443 端口是否确实指向与 http 引用相同的资源的过程中,即 192.168.10.38 ...但日志文件确认连接,所以我确定它一定没问题。
感谢您的任何帮助。斯科特
IIS7
ASP.NET
赢得 2008 r2
全部修补
我们最近更新了 Nginx 网络服务器的 Thawte SSL 证书。以前我们一直使用 SHA1 作为签名算法,但这次使用了 SHA256,这导致了一个新的根证书,称为“thawte Primary Root CA - G3”(这可以在他们的网站上找到 - 没有足够的代表发布链接)。
自从推出以来,我们开始接到使用 OS X 的客户的电话,询问在浏览 https 页面时收到错误“此证书由未知机构签名”。
Thawte 的证书检查器对我们安装的证书链非常满意:https : //ssltools.thawte.com/checker/views/certCheck.jsp (我们有我们的证书,以及 pem 文件中的“thawte Extended Validation SHA256 SSL CA”中间件)
经过测试,我们发现在OS X os所有版本的Safari、Opera和Chrome下都会出现错误。Firefox 在 OS X 下还可以(我相信它带有自己的证书信任库)。所有浏览器在 Windows 下似乎都可以。
当我们检查 OS X Access Keychain 时,我们发现 thawte Primary Root CA - G3 WAS 已安装,但不知何故浏览器无法完成链。
这是一个使用相同中间体和根的测试站点(不是我们的),它在 OS X 下表现出完全相同的症状:
任何人都可以解释为什么 OS X 默认安装在 OS X 10.9 的访问钥匙串中时,为什么不能将此站点的根 CA 识别为受信任的?
我在为我的 Jenkins CI 服务器设置 SSL 时遇到问题。我在 nginx 后面使用 Jenkins 作为反向代理。我upstream prematurely closed connection while reading response header from upstream在我的jenkins.error.log文件中收到这些错误。
2014/09/30 13:01:49 [error] 4875#0: *1 upstream prematurely closed connection while reading response header from upstream, client: <MY IP ADDR>, server: jenkins.<SERVER URL>.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8080/favicon.ico", host: "jenkins.<SERVER URL>.com"
2014/09/30 13:01:50 [error] 4875#0: *1 upstream prematurely closed connection while reading response header from upstream, client: <MY IP ADDR>, server: jenkins.<SERVER URL>.com, request: "GET / HTTP/1.1", …Run Code Online (Sandbox Code Playgroud) 我们在 Windows Server 2012 上有这个 Apache:
Server version: Apache/2.4.9 (Win32)
Apache Lounge VC10 Server built: Mar 17 2014 10:48:43
大多数情况下,它运行良好,但有时(随机,每周 cca 3-4 次),它停止在端口 443 上提供 HTTPS,但继续在端口 80 上提供 HTTP。当它停止提供 HTTPS 时,解决问题的唯一方法是重新启动 Apache。
这似乎与这里的问题完全相同:Apache 停止响应 http 请求——https 继续工作,除了在我们的例子中是 HTTPS 停止工作,而 HTTP 是一直工作的那个。
我们启用了 trace6 级别的详细信息,以获取有关正在发生的事情的一些好的信息。但是,日志是空的:
...
[Sat Mar 21 07:51:50.577373 2015] [ssl:debug] [pid 3356:tid 2540] ssl_engine_io.c(999): [client ...:16529] AH02001: Connection closed to child 137 with standard shutdown (server ...:443)
[Sat Mar 21 07:54:21.936742 2015] [ssl:info] [pid 4760:tid 432] AH01914: …Run Code Online (Sandbox Code Playgroud) 使用 ssllabs.com 的扫描告诉我 RC4 正在使用中。我读到 RC4 应该在 Windows 2012 R2 中默认禁用。我正在使用 https.createServer 运行 node.js 服务器而不指定密码(让它默认)
ssllabs.com 说:
This server accepts the RC4 cipher, which is weak
TLS_RSA_WITH_RC4_128_SHA (0x5) WEAK
TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011) WEAK
Run Code Online (Sandbox Code Playgroud)
我已按照以下说明在注册表中禁用了 RC4:http : //windowsitpro.com/windows/disabling-rc4-cipher
我还尝试在节点 createHttpsServer 中指定密码,如下所示:
ciphers:
[ "ECDHE-RSA-AES128-GCM-SHA256",
"ECDHE-ECDSA-AES128-GCM-SHA256",
"ECDHE-RSA-AES256-GCM-SHA384",
"ECDHE-ECDSA-AES256-GCM-SHA384",
"DHE-RSA-AES128-GCM-SHA256",
"ECDHE-RSA-AES128-SHA256",
"DHE-RSA-AES128-SHA256",
"ECDHE-RSA-AES256-SHA384",
"DHE-RSA-AES256-SHA384",
"ECDHE-RSA-AES256-SHA256",
"DHE-RSA-AES256-SHA256",
"HIGH",
"!aNULL",
"!eNULL",
"!EXPORT",
"!DES",
"!RC4",
"!MD5",
"!PSK",
"!SRP",
"!CAMELLIA"
].join(':'),
honorCipherOrder: true
Run Code Online (Sandbox Code Playgroud)
仍然收到相同的消息,说 RC4 正在使用中,我的成绩从 B 降到 C,因此设置 node.js 密码列表确实有影响。
在单击最佳实践选项后使用 IIS Crypto 禁用 RC4 密码导致我的 …
我正在使用以下配置为两个 Tomcat 服务器执行负载平衡。我将 HAProxy 配置为执行 SSL/TLS 桥接/重新加密。
#------------------------------------------------- --------------------
# 可能的 Web 应用程序的示例配置。见
# 在线完整配置选项。
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#------------------------------------------------- --------------------
#------------------------------------------------- --------------------
# 全局设置
#------------------------------------------------- --------------------
全球的
# 要让这些消息最终出现在 /var/log/haproxy.log 中,您将
# 需要:
#
# 1) 配置syslog 以接受网络日志事件。这个做完了
# 通过在 SYSLOGD_OPTIONS 中添加“-r”选项
# /etc/sysconfig/syslog
#
#2) 配置local2事件到/var/log/haproxy.log
# 文件。可以添加如下一行
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
日志 127.0.0.1 local2 调试
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
最大康 4000
用户haproxy
组haproxy
守护进程
# 打开 stats unix 套接字
统计套接字/var/lib/haproxy/stats
ssl-server-verify 无
#------------------------------------------------- -------------------- … 我住在土耳其,是一个计划建立基于 WiFi 的 ISP 来为我的家乡服务的小组的成员,因为我们相信以无线方式连接所有离我们市中心不近的子村庄会更容易。在我们研究该项目所需设备的过程中,我们已经阅读了缓存代理服务器,该服务器存储来自经常访问的网站的数据,以便可以从缓存代理服务器下载内容,而不是通过我们的回程传输到互联网并消费那个带宽。
我们预计我们的用户将大量贩卖流行的社交网站,如 Facebook 和 Twitter,以及数据和视频内容农场、网上银行网站和许多其他使用https. 从我读过的关于这个主题的所有信息来看,我们将无法缓存这些内容,所以我觉得也许我们应该放弃使用缓存代理服务器的搜索。
在我们的例子中,考虑到我们预计大部分流量都会结束,考虑使用缓存代理服务器是否有意义https?使用这项技术,我们能否在回程中节省大量带宽?
在过去的几天里,我们在 nginx 错误日志中看到了一些与此类似的错误:
/var/log/nginx/error.log.2.gz:2017/01/30 16:11:46 [crit] 13114#13114: *139338 SSL_do_handshake() failed (SSL: error:14094459:SSL routines:SSL3_READ_BYTES:tlsv1 bad certificate status response:SSL alert number 113) while SSL handshaking, client: X.X.X.X, server: 0.0.0.0:443
Run Code Online (Sandbox Code Playgroud)
我们正在为此证书使用 Let's Encrypt。我们自己无法重现这个问题,到目前为止,我们还无法从客户端获得有关可能导致此问题的任何信息。
RFC 6066说这与 OSCP 相关:
请求 OCSP 响应并在“CertificateStatus”消息中接收 OCSP 响应的客户端必须检查 OCSP 响应并中止握手,如果响应不符合 bad_certificate_status_response(113) 警报。这种警报总是致命的。
我们在我们的 nginx 配置中有这个:
# OCSP Stapling
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
Run Code Online (Sandbox Code Playgroud)
该域从 SSL Labs 获得 A+,我们自己无法重现。什么可能导致此错误?
编辑:对于过去几天发生的 3 次,只有一次在访问日志中留下了其 IP 地址的条目:
/var/log/nginx/access.log:X.X.X.X - - [01/Feb/2017:12:12:51 …Run Code Online (Sandbox Code Playgroud) 是否有适用于通过 SNI 或 HTTP Host 标头发送错误主机名(或根本没有)的客户端的 HTTP 状态代码?
一个较旧的问题首先解决了此类请求如何以及为何发生,以及如何在 Apache 中从技术上处理它们。然而,它没有解决响应状态代码的选择问题。
过去,我实现了一个 HTTP 代理,它会发送状态代码 502 和一个 html 页面,解释为什么会产生错误消息。我使用 502 的理由是期望我看到它主要是由于配置错误,这意味着代理找不到合适的后端。实际上,仅仅看到完全虚假的主机名的频率要高得多。
是否有另一个状态代码更合适,更清楚地向客户端发出信号,表明此 IP 地址上的服务器无法识别通过 SNI 和/或主机标头发送的值?
出于某种原因,我无法在我的 google 计算实例上打开端口 443。我在实例上启用了 HTTPS 服务器,使用gcloud compute firewall-rules list返回以下规则:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
default-allow-http default INGRESS 1000 tcp:80
default-allow-https default INGRESS 1000 tcp:443
default-allow-icmp default INGRESS 65534 icmp
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp
default-allow-rdp default INGRESS 65534 tcp:3389
default-allow-ssh default INGRESS 65534 tcp:22
Run Code Online (Sandbox Code Playgroud)
然而,当我使用类似nmap它说它已关闭的东西检查端口是否打开时。
PORT STATE SERVICE
22/tcp open ssh
443/tcp closed https
Run Code Online (Sandbox Code Playgroud)
编辑:这是该站点的我的 nginx conf 文件。 https://gist.github.com/cclloyd/e7f1183f3a018dbc32cd7c55e15375cf
https ×10
ssl ×5
http ×2
nginx ×2
apache-2.4 ×1
cache ×1
certificate ×1
gcloud ×1
haproxy ×1
http-headers ×1
iis-7 ×1
isp ×1
jenkins ×1
lets-encrypt ×1
mac-osx ×1
node.js ×1
proxy ×1
security ×1
sni ×1
web-server ×1
wifi ×1