比较修订

如何针对安全网站的错误码进行故障排除

修订版本 264017:

由wxie2016于提交的修订 264017

修订版本 278837:

由bingchuanjuzi于提交的修订 278837

关键词:

搜索结果概要:

为什么HTTPS网站会遇到错误码“SEC_ERROR_UNKNOWN_ISSUER”或“MOZILLA_PKIX_ERROR_MITM_DETECTED”以及如何进行故障排除。
为什么HTTPS网站会遇到错误码“SEC_ERROR_UNKNOWN_ISSUER”或“MOZILLA_PKIX_ERROR_MITM_DETECTED”以及如何进行故障排除。

内容:

对于应该安全的网站(以 ''http'''s''':/'' 开始的URL),Firefox必然会验证其证书的有效性。如果证书的有效性无法确认,Firefox将停止连接并提示错误信息 ''警告:有风险'' 页面。点击 {button 高级} 按钮,你可以参看 Firefox 遇到的具体问题。 本文解释为什么会遇到错误码“SEC_ERROR_UNKNOWN_ISSUER”、 "MOZILLA_PKIX_ERROR_MITM_DETECTED" 或“MOZILLA_PKIX_ERROR_MITM_DETECTED”以及如何进行故障排除。 {note}关于带有 "警告:有风险" 错误的其他错误代码页面,请参看[[What does "Your connection is not secure" mean?]]一文。对错误页面 ''安全连接失败'' 或者 ''未连接:有潜在风险'',请参看文章 [[Secure connection failed and Firefox did not connect]]。{/note} __TOC__ = 该错误码是什么意思? = 安全连接时,网站必须提供颁发自 [https://en.wikipedia.org/wiki/Certificate_authority certificate authority] 的证书以保证已连接至目标网站并且连接是加密的。如果在错误提示 "警告:有风险" 页面点击 {button 高级} 按钮后,看到错误码 "SEC_ERROR_UNKNOWN_ISSUER" 或“MOZILLA_PKIX_ERROR_MITM_DETECTED”,这意味着由于证书颁发者未知,所以Firefox默认连接不可信。 [[Image:Fx66WarningSEC_ERROR_UNKNOWN_ISSUER]] = 该错误码发生在多个安全网站 = 如果你在多个不关联的HTTPS网站都遇到这个问题,那么你的系统或网络处理连接和证书的方式受到Firefox的质疑。最常见的原因是安全管理软件对加密连接的扫描或恶意软件监听和替换网络证书。具体来说,错误码 "MOZILLA_PKIX_ERROR_MITM_DETECTED" 表示Firefox能够探测到连接被代理截获。 == 防病毒产品 == 第三方防病毒软件可能会干扰 Firefox 的安全连接。{for winxp,win7 mac,linux}你可以尝试重新安装Firefox,这样可能会让安全软件将其添加到信任区。{/for} {for win8,win10} 我们建议你卸载第三方防病毒软件,转而使用windows内置的防病毒软件: * Windows 8 and Windows 10 - Windows Defender ([https://www.microsoft.com/windows/comprehensive-security built-in]) 如果你不想卸载第三方防病毒软件,那么你可以重新安装该软件——也许该软件会重新把其证书加入 Firefox 信任列表。 {/for} 以下是一些你可以尝试的替代解决方案: === Avast/AVG === 针对Avast或AVG安全产品,你可以通过以下步骤禁止它对安全连接的拦截: # 打开Avast/AVG面板。 # 找到{menu 菜单},然后点击{menu 设置} > {menu 保护} > {menu 核心防护}。 # 下翻到防护设置部分,并点击{menu 网络防护}。 # 取消(不勾选) {pref 打开HTTPS扫描} 设置并点击 {button OK} 确认。 #;{note}在较老的版本上,你应该打开{menu 菜单} > {menu 设置} > {menu 组件}然后点击{menu 网络防护}旁边的{button 定制}。{/note} 请参看Avast/AVG技术支持文章[https://support.avast.com/en-us/article/189/ Managing HTTPS scanning in Web Shield in Avast Antivirus]了解详情。更多详情参看[https://blog.avast.com/2015/05/25/explaining-avasts-https-scanning-feature/ Avast博客]。 === Bitdefender === 针对Bitdefender安全产品,你可以通过以下步骤禁止它对安全连接的拦截: # 打开Bitdefender的应用看板。 # 找到{menu 保护}并在{menu 防止在线威胁}部分,点击{menu 设置}。 # 关闭{pref 加密网络扫描}设置项。 #;{note}在较老的版本上,该设置叫做{pref 扫描SSL},它可以通过{menu 模块} > {menu 网络保护}找到。{/note} 对Bitdefender Antivirus免费版,你无法修改此设置。你可以试着[https://www.bitdefender.com/support/repairing-or-removing-bitdefender-free-edition-1160.html 修复或删除该程序],如果你访问安全网站时遇到问题。 对企业版Bitdefender产品,请参考[http://www.bitdefender.com/support/how-to-enable-ssl-https-scanning-in-cloud-security-for-endpoints-1117.html Bitdefender技术支持中心网页]。 === Bullguard === 针对Bullguard安全产品,你可以禁止它对流行网站如Google,Yahoo和Facebook等的安全连接的拦截: # 打开Bullguard面板。 # 点击{menu 设置}并启用面板右上角的{pref 高级}视图。 # 点击 {menu 防病毒设置} > {menu 安全浏览} 。 # 针对有错误提示信息的网站取消(不勾选) {menu 显示安全结果} 。 === ESET === 针对ESET安全产品,你可以按照 [http://support.eset.com/kb3126/ ESET技术支持文章] 打开和关闭 {pref SSL/TLS协议过滤} 或整体禁止它对安全连接的拦截。 === Kaspersky === 受到影响的Kaspersky用户应该将该安全产品升级到最新版,因为Kaspersky 2019及以上版已经带有对该问题的修正。[https://www.kaspersky.com/downloads Kaspersky 其下载页面]包含了"升级"链接,它会将当前产品免费升级到最新版。 否则,你应该禁用安全连接:O # 打开Kaspersky面板。 # 点击左下 {menu 设置} 。 # 点击 {menu 其它} 然后 {menu 网络}. # 在 {menu 扫描加密连接} 勾选 {pref 不扫描加密连接} 然后确认。< # 最后,重启系统来使设置生效。 {for win8} == Windows账户的家庭安全设置 == 在微软Windows受家庭安全设置保护的账户下,对流行网站,如Google,Facebook和YouTube等的安全连接可能会受到拦截,其证书也会被替换为微软颁布的证书以进行搜索行为的过滤和记录。 请参阅 [http://windows.microsoft.com/en-us/windows/family-features-remove-uninstall-faq Microsoft FAQ page] 来了解如何关闭账户的家庭设置。如果你想手动安装缺失的证书,可以参看 [https://support.microsoft.com/en-us/kb/2965142#bookmark-2 Microsoft技术支持文章]。 {/for} == 来自企业网络的监控/过滤 == 一些企业级网络监控/过滤产品也会用替换证书的方式拦截加密连接,这可能会触发HTTPS网站报错。 如果你怀疑自己遇到此类情况,请联系你的IT部门以确保Firefox设置正确,并能够在此类环境下正常工作,比如必要的证书应该放到Firefox的信任列表中。你可以在Mozilla Wiki页面[https://wiki.mozilla.org/CA:AddRootToFirefox CA:AddRootToFirefox]找到更多关于IT部门应该如何处理该业务的信息。 == 恶意软件 == 有些恶意软件对加密连接的拦截也会导致这个错误信息——参阅 [[Troubleshoot Firefox issues caused by malware]] 来了解如何处理恶意软件。 = 该错误码仅发生在某个特定网站 = 如果这个问题只发生在一个特定的网站上,那么原因通常是网络服务器设置不当。不过,当此问题网站是流行网站,如Google或Facebook,或是金融交易网站时,你应当参看 <!--note for localisers: adapt this link, it should point to the "该错误码发生在多个安全网站" section-->[[#w_the-error-occurs-on-multiple-secure-sites|该错误码发生在多个安全网站]]。 == 证书由Symantec相关方发布 == <!--Delayed? Discontinued? see discussion https://support.mozilla.org/en-US/kb/error-codes-secure-websites/discuss/7516 --> 随着多个由Symantec根证书机构颁发的证书不合规问题的暴露,包括Mozilla在内的浏览器提供商正在逐渐把Symantec相关的产品移出可信证书范围。Firefox 不再信任由 Symantec 可信服务器发布的证书,包括由 GeoTrust、RapidSSL、Thawte 和 Verisign 等品牌发布的证书。<!--作为第一步,Firefox 60不再信任2016-06-01之前来自Symantec根证书颁发机构及其链上的证书(包括所有Symantec品牌相关产品,GeoTrust、RapidSSL、Thawte和VeriSign)。在Firefox 63,该措施将扩展到所有Symantec证书,不论发布日期。-->更多信息,请参看 [https://blog.mozilla.org/security/2018/10/10/delaying-further-symantec-tls-certificate-distrust/ 此 Mozilla 博客]。 MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED是表示此类错误的基本代码,不过对有些服务器,你可能会看到错误代码SEC_ERROR_UNKNOWN_ISSUER。<!--https://bugzilla.mozilla.org/show_bug.cgi?id=1444427#c1 -->无论如何,如果你访问的网站报了这样的错误,请通知其所有者此问题。 Mozilla 强烈建议这些网站运营方立即替换这些证书。更多信息,请参看 [https://www.digicert.com/blog/digicert-helping-customers-replace-symantec-certificates this DigiCert blog post] and [https://www.digicert.com/tools DigiCert Tools]。 == 缺少中间证书 == 在网站缺少中间证书时,在错误页面上点击 {button 高级} 会看到: {note}由于发布者未知,所以证书不可信。<br>服务器可能未发送合适的中间证书。<br>或许需要额外的根证书。{/note} 网站的证书可能不是由可信任的发布者颁发,并且也未提供完整的可信证书链(缺少中间证书)。 <br>你可以把网站地址输入第三方工具,如 [https://www.ssllabs.com/ssltest SSL Labs' test page], 来测试网站设置是否正常。如果结果是“证书链问题:不完整”,那么意味着中间证书缺失。 你应该向该网站的拥有者报告这个问题。 == 自签名证书 == 在网站使用自签名的证书时,点击错误页面上的 {button 高级},你会看到错误代码ERROR_SELF_SIGNED_CERT和如下错误信息: {note}由于证书是自签名,所以不可信。{/note} 缺省状态下,由未知机构颁发的自签名证书不被信任。自签名证书可以保证数据不被监听,但是却未告知数据的接收方是谁。对于不公开的内部网,这不是问题,此时你可以忽略该警告信息。 == 绕过该警告 == {warning}'''警告:''' 绝不要为流行网站或金融交易网站添加证书例外——无效的证书此时意味者连接被第三方破坏。{/warning} 如果网站允许,你可以添加例外以便能够在证书缺省不被信任的情况下访问该网站: # 在警告页,点击 {button 高级}。 # 点击 {button 接受风险并继续}。 = Nginx反向代理报504超时错误 = == 问题原因 == nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。 通常有以下几种情况导致: 1.程序在处理大量数据,导致等待超时。 2.程序中调用外部请求,而外部请求响应超时。 3.连接数据库失败而没有停止,死循环重新连。 出现这种情况,我们可以先优化程序,缩短执行时间。另一方面,可以调大nginx超时限制的参数,使程序可以正常执行。 == 解决办法 == 在Nginx.conf配置文件中添加如下信息: #用于tomcat反向代理,解决nginx 504错误 proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; #用于php反向代理,解决nginx 504错误 #以fastcgi_*配置项是php用的 fastcgi_connect_timeout 1000; fastcgi_send_timeout 1000; fastcgi_read_timeout 1000; fastcgi_buffer_size 64k; fastcgi_buffers 8 128k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_intercept_errors on;
对于应该安全的网站(以 ''http'''s'''://'' 开始的URL),Firefox必然会验证其证书的有效性。如果证书的有效性无法确认,Firefox将停止连接并提示错误信息 ''警告:有风险'' 页面。点击 {button 高级} 按钮,你可以参看 Firefox 遇到的具体问题。 本文解释为什么会遇到错误码“SEC_ERROR_UNKNOWN_ISSUER”、 "MOZILLA_PKIX_ERROR_MITM_DETECTED" 或“MOZILLA_PKIX_ERROR_MITM_DETECTED”以及如何进行故障排除。 {note}关于带有 "警告:有风险" 错误的其他错误代码页面,请参看[[What does "Your connection is not secure" mean?]]一文。对错误页面 ''安全连接失败'' 或者 ''未连接:有潜在风险'',请参看文章 [[Secure connection failed and Firefox did not connect]]。{/note} __TOC__ = 该错误码是什么意思? = 安全连接时,网站必须提供颁发自 [https://en.wikipedia.org/wiki/Certificate_authority certificate authority] 的证书以保证已连接至目标网站并且连接是加密的。如果在错误提示 "警告:有风险" 页面点击 {button 高级} 按钮后,看到错误码 "SEC_ERROR_UNKNOWN_ISSUER" 或“MOZILLA_PKIX_ERROR_MITM_DETECTED”,这意味着由于证书颁发者未知,所以Firefox默认连接不可信。 [[Image:Fx66WarningSEC_ERROR_UNKNOWN_ISSUER]] = 该错误码发生在多个安全网站 = 如果你在多个不关联的HTTPS网站都遇到这个问题,那么你的系统或网络处理连接和证书的方式受到Firefox的质疑。最常见的原因是安全管理软件对加密连接的扫描或恶意软件监听和替换网络证书。具体来说,错误码 "MOZILLA_PKIX_ERROR_MITM_DETECTED" 表示Firefox能够探测到连接被代理截获。 == 防病毒产品 == 第三方防病毒软件可能会干扰 Firefox 的安全连接。{for winxp,win7 mac,linux}你可以尝试重新安装Firefox,这样可能会让安全软件将其添加到信任区。{/for} {for win8,win10} 我们建议你卸载第三方防病毒软件,转而使用windows内置的防病毒软件: * Windows 8 and Windows 10 - Windows Defender ([https://www.microsoft.com/windows/comprehensive-security built-in]) 如果你不想卸载第三方防病毒软件,那么你可以重新安装该软件——也许该软件会重新把其证书加入 Firefox 信任列表。 {/for} 以下是一些你可以尝试的替代解决方案: === Avast/AVG === 针对Avast或AVG安全产品,你可以通过以下步骤禁止它对安全连接的拦截: # 打开Avast/AVG面板。 # 找到{menu 菜单},然后点击{menu 设置} > {menu 保护} > {menu 核心防护}。 # 下翻到防护设置部分,并点击{menu 网络防护}。 # 取消(不勾选) {pref 打开HTTPS扫描} 设置并点击 {button OK} 确认。 #;{note}在较老的版本上,你应该打开{menu 菜单} > {menu 设置} > {menu 组件}然后点击{menu 网络防护}旁边的{button 定制}。{/note} 请参看Avast/AVG技术支持文章[https://support.avast.com/en-us/article/189/ Managing HTTPS scanning in Web Shield in Avast Antivirus]了解详情。更多详情参看[https://blog.avast.com/2015/05/25/explaining-avasts-https-scanning-feature/ Avast博客]。 === Bitdefender === 针对Bitdefender安全产品,你可以通过以下步骤禁止它对安全连接的拦截: # 打开Bitdefender的应用看板。 # 找到{menu 保护}并在{menu 防止在线威胁}部分,点击{menu 设置}。 # 关闭{pref 加密网络扫描}设置项。 #;{note}在较老的版本上,该设置叫做{pref 扫描SSL},它可以通过{menu 模块} > {menu 网络保护}找到。{/note} 对Bitdefender Antivirus免费版,你无法修改此设置。你可以试着[https://www.bitdefender.com/support/repairing-or-removing-bitdefender-free-edition-1160.html 修复或删除该程序],如果你访问安全网站时遇到问题。 对企业版Bitdefender产品,请参考[http://www.bitdefender.com/support/how-to-enable-ssl-https-scanning-in-cloud-security-for-endpoints-1117.html Bitdefender技术支持中心网页]。 === Bullguard === 针对Bullguard安全产品,你可以禁止它对流行网站如Google,Yahoo和Facebook等的安全连接的拦截: # 打开Bullguard面板。 # 点击{menu 设置}并启用面板右上角的{pref 高级}视图。 # 点击 {menu 防病毒设置} > {menu 安全浏览} 。 # 针对有错误提示信息的网站取消(不勾选) {menu 显示安全结果} 。 === ESET === 针对ESET安全产品,你可以按照 [http://support.eset.com/kb3126/ ESET技术支持文章] 打开和关闭 {pref SSL/TLS协议过滤} 或整体禁止它对安全连接的拦截。 === Kaspersky === 受到影响的Kaspersky用户应该将该安全产品升级到最新版,因为Kaspersky 2019及以上版已经带有对该问题的修正。[https://www.kaspersky.com/downloads Kaspersky 其下载页面]包含了"升级"链接,它会将当前产品免费升级到最新版。 否则,你应该禁用安全连接:O # 打开Kaspersky面板。 # 点击左下 {menu 设置} 。 # 点击 {menu 其它} 然后 {menu 网络}. # 在 {menu 扫描加密连接} 勾选 {pref 不扫描加密连接} 然后确认。< # 最后,重启系统来使设置生效。 {for win8} == Windows账户的家庭安全设置 == 在微软Windows受家庭安全设置保护的账户下,对流行网站,如Google,Facebook和YouTube等的安全连接可能会受到拦截,其证书也会被替换为微软颁布的证书以进行搜索行为的过滤和记录。 请参阅 [http://windows.microsoft.com/en-us/windows/family-features-remove-uninstall-faq Microsoft FAQ page] 来了解如何关闭账户的家庭设置。如果你想手动安装缺失的证书,可以参看 [https://support.microsoft.com/en-us/kb/2965142#bookmark-2 Microsoft技术支持文章]。 {/for} == 来自企业网络的监控/过滤 == 一些企业级网络监控/过滤产品也会用替换证书的方式拦截加密连接,这可能会触发HTTPS网站报错。 如果你怀疑自己遇到此类情况,请联系你的IT部门以确保Firefox设置正确,并能够在此类环境下正常工作,比如必要的证书应该放到Firefox的信任列表中。你可以在Mozilla Wiki页面[https://wiki.mozilla.org/CA:AddRootToFirefox CA:AddRootToFirefox]找到更多关于IT部门应该如何处理该业务的信息。 == 恶意软件 == 有些恶意软件对加密连接的拦截也会导致这个错误信息——参阅 [[Troubleshoot Firefox issues caused by malware]] 来了解如何处理恶意软件。 = 该错误码仅发生在某个特定网站 = 如果这个问题只发生在一个特定的网站上,那么原因通常是网络服务器设置不当。不过,当此问题网站是流行网站,如Google或Facebook,或是金融交易网站时,你应当参看 <!--note for localisers: adapt this link, it should point to the "该错误码发生在多个安全网站" section-->[[#w_the-error-occurs-on-multiple-secure-sites|该错误码发生在多个安全网站]]。 == 证书由Symantec相关方发布 == <!--Delayed? Discontinued? see discussion https://support.mozilla.org/en-US/kb/error-codes-secure-websites/discuss/7516 --> 随着多个由Symantec根证书机构颁发的证书不合规问题的暴露,包括Mozilla在内的浏览器提供商正在逐渐把Symantec相关的产品移出可信证书范围。Firefox 不再信任由 Symantec 可信服务器发布的证书,包括由 GeoTrust、RapidSSL、Thawte 和 Verisign 等品牌发布的证书。<!--作为第一步,Firefox 60不再信任2016-06-01之前来自Symantec根证书颁发机构及其链上的证书(包括所有Symantec品牌相关产品,GeoTrust、RapidSSL、Thawte和VeriSign)。在Firefox 63,该措施将扩展到所有Symantec证书,不论发布日期。-->更多信息,请参看 [https://blog.mozilla.org/security/2018/10/10/delaying-further-symantec-tls-certificate-distrust/ 此 Mozilla 博客]。 MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED是表示此类错误的基本代码,不过对有些服务器,你可能会看到错误代码SEC_ERROR_UNKNOWN_ISSUER。<!--https://bugzilla.mozilla.org/show_bug.cgi?id=1444427#c1 -->无论如何,如果你访问的网站报了这样的错误,请通知其所有者此问题。 Mozilla 强烈建议这些网站运营方立即替换这些证书。更多信息,请参看 [https://www.digicert.com/blog/digicert-helping-customers-replace-symantec-certificates this DigiCert blog post] and [https://www.digicert.com/tools DigiCert Tools]。 == 缺少中间证书 == 在网站缺少中间证书时,在错误页面上点击 {button 高级} 会看到: {note}由于发布者未知,所以证书不可信。<br>服务器可能未发送合适的中间证书。<br>或许需要额外的根证书。{/note} 网站的证书可能不是由可信任的发布者颁发,并且也未提供完整的可信证书链(缺少中间证书)。 <br>你可以把网站地址输入第三方工具,如 [https://www.ssllabs.com/ssltest SSL Labs' test page], 来测试网站设置是否正常。如果结果是“证书链问题:不完整”,那么意味着中间证书缺失。 你应该向该网站的拥有者报告这个问题。 == 自签名证书 == 在网站使用自签名的证书时,点击错误页面上的 {button 高级},你会看到错误代码ERROR_SELF_SIGNED_CERT和如下错误信息: {note}由于证书是自签名,所以不可信。{/note} 缺省状态下,由未知机构颁发的自签名证书不被信任。自签名证书可以保证数据不被监听,但是却未告知数据的接收方是谁。对于不公开的内部网,这不是问题,此时你可以忽略该警告信息。 == 绕过该警告 == {warning}'''警告:''' 绝不要为流行网站或金融交易网站添加证书例外——无效的证书此时意味者连接被第三方破坏。{/warning} 如果网站允许,你可以添加例外以便能够在证书缺省不被信任的情况下访问该网站: # 在警告页,点击 {button 高级}。 # 点击 {button 接受风险并继续}。 = Nginx反向代理报504超时错误 = == 问题原因 == nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。 通常有以下几种情况导致: 1.程序在处理大量数据,导致等待超时。 2.程序中调用外部请求,而外部请求响应超时。 3.连接数据库失败而没有停止,死循环重新连。 出现这种情况,我们可以先优化程序,缩短执行时间。另一方面,可以调大nginx超时限制的参数,使程序可以正常执行。 == 解决办法 == 在Nginx.conf配置文件中添加如下信息: #用于tomcat反向代理,解决nginx 504错误 proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; #用于php反向代理,解决nginx 504错误 #以fastcgi_*配置项是php用的 fastcgi_connect_timeout 1000; fastcgi_send_timeout 1000; fastcgi_read_timeout 1000; fastcgi_buffer_size 64k; fastcgi_buffers 8 128k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_intercept_errors on;

返回历史记录