我网站的 SSL 证书https://www.snipsalonsoftware.com/在 Android 上不起作用。在解决此问题时,我已将我的网站插入 Qualys SSL Labs 测试工具:
https://www.ssllabs.com/ssltest/analyze.html?d=www.snipsalonsoftware.com&s=50.57.181.104
这份报告似乎告诉我,我有“连锁问题”。有些东西是“不完整的”。但我无法准确理解什么是不完整的。
在下一部分中,在“认证路径”下,我看到橙色(我猜橙色的意思是“有点糟糕”)“额外下载”。我不知道这意味着什么或如何解决它。我找到了这个线程,但我不知道如何将他们所说的转化为适合我的解决方案。
我该怎么办?
我正在尝试针对涉及在我的 Web 服务器上禁用 SSLv3的贵宾犬漏洞测试补丁。为了首先在非生产环境中进行测试,我在 VirtualHost 上为不同的测试服务器设置 SSLProtocol。我的配置看起来像这样:
<VirtualHost *:443>
SSLEngine On
SSLProtocol All -SSLv2 -SSLv3
ServerName test.mysite.com
# bunch of other stuff omitted
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
然而,即使在重新启动 apache 之后,我的测试站点仍然声称易受攻击。这是预期的工作吗?我想知道我是否必须在全局 ssl 配置中设置它,或者是否有其他微妙的东西导致设置不采用和/或工作。
对于域 example.com 上的 SSL 证书,一些测试告诉我该链不完整,并且由于 Firefox 保留自己的证书存储,因此它可能会在 Mozilla ( 1 , 2 , 3 )上失败。其他人告诉我它很好,Firefox 36 也是如此,它告诉我证书链很好。
更新:我在 Windows XP 和 MacOS X Snow Leopard 上对 Opera、Safari、Chrome 和 IE 进行了测试,它们都运行良好。它仅在两个操作系统上的 Firefox < 36 上失败。我无法在 Linux 上进行测试,但是对于这个网站,它的访问者不到 1%,而且大多数可能是机器人。因此,这回答了最初的问题“此设置是否在 Mozilla Firefox 中显示警告”和“此 SSL 证书链是否已损坏?”。
因此,问题是我如何找出我需要将哪些证书放入 ssl.ca 文件中,以便 Apache 可以提供这些证书以防止 Firefox < 36 窒息?
PS:作为旁注,我用来测试证书的 Firefox 36 是全新安装的。它不可能不抱怨,因为它在上次访问使用相同链的站点期间下载了中间证书。
我尝试按照以下网站获取有关如何为我的 Web 服务器生成 CSR 的说明:
http://www.entrust.net/knowledge-base/technote.cfm?tn=8649
Run Code Online (Sandbox Code Playgroud)
但是,它仅生成 CSR。私钥在哪里?有人告诉我,密钥是在 CSR 生成时生成的。
我使用的是 Windows 10。我计划使用 node.js Express。我们是否可以使用替代工具在 Windows 10 上生成 CSR?
我们目前有一个网站设置为重定向到一个新地址(我们的客户端更改了域名,但希望旧域将人们发送到新站点)在 IIS 8.5 中使用站点的“HTTP 重定向”功能中找到的永久重定向。
SSL 证书已为旧域名续订,我们的技术部门有一个未决问题,即是否需要续订。
在 IIS 中设置了 HTTP 重定向后,站点是否需要 SSL 证书?或者在检查这些事情之前会重定向访问者吗?
我正在运行Let's Encrypt 的SSL 证书。我已经在运行 Apache 的 Ubuntu 机器上安装了它们。设置工作正常,我可以启动网站,看到绿色挂锁,甚至在 SSL Labs 上获得了 A+。
问题是,当我执行apachectl configtest 时,服务器会返回一个找不到文件的错误:
SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
Run Code Online (Sandbox Code Playgroud)
但sudo service apache2 restart工作得很好。
我在Let's Encrypt Community遇到了这个问题,但问题尚未解决。
sudo cat /etc/letsencrypt/live/www.example.com/fullchain.pem 有效,返回有效的证书详细信息。
sudo x509 -text -noout -in /etc/letsencrypt/live/www.example.com/fullchain.pem
Run Code Online (Sandbox Code Playgroud)
不起作用并返回以下错误:
Error opening Certificate /etc/letsencrypt/live/www.example.com/fullchain.pem
139774254929568:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem.','r')
139774254929568:error:2007402:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
ubable to load certificate
Run Code Online (Sandbox Code Playgroud)
关于为什么我在apachectl configtest和openssl上遇到错误的任何想法?
谢谢你们!
是否可以在来自 S3 源的 Amazon CloudFront 分配上设置 HSTS 标头?
我们正在使用客户端证书来验证我们的一位客户。
我们的设置是这样的:我们在 Django 应用程序前面有 nginx。在我们的nginx的配置,我们拥有所需的参数,以获得实际的客户端证书验证工作(ssl_client_certificate,ssl_verify_client等)和
uwsgi_param X-Client-Verify $ssl_client_verify;
uwsgi_param X-Client-DN $ssl_client_s_dn;
uwsgi_param X-SSL-Issuer $ssl_client_i_dn;
Run Code Online (Sandbox Code Playgroud)
这意味着我们将这些变量的值输入到我们的 Django 应用程序中。Django 应用程序然后使用此信息来识别哪个用户正在连接并授权他们。
我们已经成功地使用了几个月没有任何问题,突然我们开始收到有关人们无法使用证书登录的报告。结果发现$ssl_client_s_dn和$ssl_client_i_dn值的格式发生了变化,从斜杠分隔的格式:
/C=SE/O=Some organziation/CN=Some CA
Run Code Online (Sandbox Code Playgroud)
以逗号分隔的格式:
CN=Some CA,O=Some organization,C=SE
Run Code Online (Sandbox Code Playgroud)
解决这个问题很容易,但我不明白为什么。所以我的问题是:
$ssl_client_s_dn从何而来?是nginx设置的吗?客户端?如果我有多个 AWS EC2 和 azure 实例在不同的区域运行。我正在使用rabbitmq 在它们之间交换消息。我是否应该担心添加 TLS 并加密这些连接?
换句话说,如果服务器 A 位于 AWS us-east 上,服务器 B 位于 azure 上,如果它们在未加密的情况下交换信息,情况会有多糟糕?只有互联网服务提供商和亚马逊/微软才能看到未加密的数据是否正确?
显然我会对与客户打交道的任何内容进行加密。我只是好奇两台后端服务器相互通信。
谢谢你们的帮助。我知道如何加密连接以及如何设置 VPN。抱歉,我错误地表达了这个问题。
我只是想知道谁能够看到这些服务器之间的流量。为什么会有风险呢?我知道这会有风险,我相信你,哈哈。我只是想知道为什么。另外,生成我自己的 ssl 证书并在每台服务器上信任它会有多糟糕。
ssl ×10
apache-2.4 ×2
https ×2
nginx ×2
301-redirect ×1
apache-2.2 ×1
certificate ×1
csr ×1
hsts ×1
iis-8.5 ×1
lets-encrypt ×1
node.js ×1
openssl ×1
redirect ×1
security ×1
tls ×1
virtualhost ×1