我有一个在 RHEL4 上运行 Apache 2.0 的 Web 服务器。此服务器最近未能通过 PCI 扫描。
原因:SSLv3.0/TLSv1.0 协议弱 CBC 模式漏洞 解决方案:此攻击在 2004 年和 TLS 协议的后续修订版中发现,其中包含对此的修复。如果可能,请升级到 TLSv1.1 或 TLSv1.2。如果无法升级到 TLSv1.1 或 TLSv1.2,则禁用 CBC 模式密码将消除该漏洞。在 Apache 中使用以下 SSL 配置可缓解此漏洞: SSLCipherSuite RC4-SHA:HIGH:!ADH 上的 SSLHonorCipherOrder
简单的修复,我想。我将这些行添加到 Apache 配置中,但它不起作用。显然,
“SSLHonorCipherOrder On”仅适用于 Apache 2.2 及更高版本。我尝试升级 Apache,很快就遇到了依赖关系,看来我必须升级整个操作系统才能升级到 Apache 2.2。我们将在几个月后停用此服务器,因此不值得。
解决方案说“如果无法升级到 TLSv1.1 或 TLSv1.2,则禁用 CBC 模式密码将消除该漏洞。”
我将如何在 Apache 2.0 上执行此操作?这甚至可能吗?如果没有,还有其他解决方法吗?
有没有办法在使用 mod_ssl 时在 Apache 2.2.x 中禁用 SSL/TLS 压缩?
如果不是,人们正在做些什么来减轻旧浏览器中 CRIME/BEAST 的影响?
相关链接:
我正在尝试在我的一台服务器上测试 SSL 连接。服务器位于 LB 后面,因此它正在侦听端口 8090 上的 SSL 连接。
--resolve在与侦听端口 443 的 LB 通话时,我使用该选项进行测试。
curl --resolve 'myservice.com:443:1.1.1.1' 'https://myservice.com'
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
curl --resolve 'myservice.com:8090:2.2.2.2' 'https://myservice.com:8090'
Run Code Online (Sandbox Code Playgroud)
curl 只是忽略端口并使用 443。当然,这会导致 DNS 缓存丢失,我最终使用公共 DNS IP ...
* Added myservice.com:8090:2.2.2.2 to DNS cache
* About to connect() to myservice.com port 443 (#0)
* Trying 3.3.3.3...
* Connected to myservice.com (3.3.3.3) port 443 (#0)
Run Code Online (Sandbox Code Playgroud)
如何强制 curl 使用端口 8090 进行 SSL 连接?
谢谢。
到目前为止,我还没有将 SNI 与 nginx 一起使用。但是由于 IP 地址池已被填满并且商业 XP 支持即将停止(最终)我正在考虑将一些站点转换为 SNI。
我知道 SNI 可能带来的一般限制和陷阱(XP 问题,非常旧的浏览器)。但除此之外还有什么我应该注意的吗?
像 - 使用 SNI 时与 nginx 相关的陷阱 - 最近(值得注意!)浏览器的问题/错误
ssl_session_cache当我使用 https 时,在 nginx.conf 中设置有什么好处?见这里。
我们已经在 Ubuntu Trusty 上运行了 nginx。它通过 https 为多个网站提供服务,运行在一个 IP 地址上。
随机地,虽然它似乎与工作负载略有关系,但有时单个请求会出现在错误的虚拟主机上。这导致请求lustrum.thalia.nu被服务,thalia.nu反之亦然。当用户突然进入不同的网站时,这会产生令人讨厌的错误页面。当您按下 时F5,用户将再次到达原始目标。
它似乎与浏览器或操作系统无关。已确认在 Firefox(Linux、Windows、Mac)、Edge(Windows)和 Chrome(Linux、Windows、Android)和 Safari(iOS)上发生。
当系统处于负载状态时,该问题似乎更频繁地发生,这表明存在某种竞争条件。
server {
server_name lustrum.thalia.nu;
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt;
ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key;
add_header Strict-Transport-Security "max-age=63072000; preload";
root /var/www/thalia-lustrum/public_html;
location / {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Pass all .php files onto a php-fpm/php-fcgi server.
location ~ [^/]\.php(/|$) {
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)$; …Run Code Online (Sandbox Code Playgroud) 由于我想在我的 SSL 证书中设置“必须装订”属性,我正在做一些研究,以确定我的所有服务是否都支持 OCSP 装订。到目前为止,我发现 Apache 可以使用 SSLLabs.com 进行确认。
但除此之外,我无法确认我的其他两个服务(SMTP 和 IMAP)是否也支持 OCSP 装订。现在我的问题是,Postfix 和 Dovecot 是否也支持它?
PS:我知道证书在邮件传输方面似乎并不重要,但我想避免任何可能的问题,如果我添加属性并且客户端可能因此拒绝工作,而其他人可能从中受益。
我有以下证书:
# certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Found the following certs:
Certificate Name: domain.example
Domains: domain.example imap.domain.example mail.domain.example pop.domain.example smtp.domain.example www.domain.example
Expiry Date: 2019-09-09 03:34:20+00:00 (VALID: 62 days)
Certificate Path: /etc/letsencrypt/live/domain.example/fullchain.pem
Private Key Path: /etc/letsencrypt/live/domain.example/privkey.pem
Run Code Online (Sandbox Code Playgroud)
现在我想做的是从证书中删除domain.example和,因为 Web 服务器已移动到另一个实例。www.domain.example事实上,DNS 条目已更改意味着,如果domain.example和www.domain.example仍然是证书的一部分,则续订过程将会失败,因为 DNS 条目现在指向另一个 IP。
如何从 Let's Encrypt 证书中删除某些主机名,而不删除证书并创建新证书?
我有运行多个虚拟主机的 Web 服务器,我想让窃听者不知道客户端正在访问哪个虚拟主机。已经有一个 TLS 扩展可以解决这个问题:加密 SNI。我看到 Cloudflare 在其服务器上支持它,并且 Firefox 有一个设置可以在客户端上启用它。但是,我找不到有关如何在我自己的服务器上启用此功能的任何文档。我该怎么做呢?(我不依赖于任何特定的服务器堆栈,除了“将其置于 Cloudflare 之后”之外,我将接受任何工作设置/架构。)
我在DigitalOcean上配置我的服务器,虽然我从 ssllabs 获得了 A+ 评级,
https://www.ssllabs.com/ssltest/analyze.html?d=zandu.biz
当我连接到我的网站https://www.zandu.biz或https://zandu.biz 时,我在 Chrome 中收到不安全通知。
我该如何解决这个问题?
ssl ×10
nginx ×3
tls ×3
apache-2.2 ×2
lets-encrypt ×2
virtualhost ×2
apache-2.4 ×1
curl ×1
dovecot ×1
mod-ssl ×1
ocsp ×1
php-fpm ×1
port ×1
postfix ×1
security ×1
sni ×1