• 微信
    咨询
    微信在线咨询 服务时间:9:00-18:00
    纵横数据官方微信 使用微信扫一扫
    马上在线沟通
  • 业务
    咨询

    QQ在线咨询 服务时间:9:00-18:00

    选择下列产品马上在线沟通

    纵横售前-老古
    QQ:519082853 售前电话:18950029581
    纵横售前-江夏
    QQ:576791973 售前电话:19906048602
    纵横售前-小李
    QQ:3494196421 售前电话:19906048601
    纵横售前-小智
    QQ:2732502176 售前电话:17750597339
    纵横售前-燕子
    QQ:609863413 售前电话:17750597993
    纵横值班售后
    QQ:407474592 售后电话:18950029502
    纵横财务
    QQ:568149701 售后电话:18965139141

    售前咨询热线:

    400-188-6560

    业务姚经理:18950029581

  • 关注

    关于纵横数据 更多优惠活动等您来拿!
    纵横数据官方微信 扫一扫关注官方微信
  • 关闭
  • 顶部
  • 您所在的位置 : 首页 > 新闻公告 > 云主机HTTPS证书错误如何解决?

    云主机HTTPS证书错误如何解决?

    前几天一个做二手书交易平台的朋友小戴联系我,语气特别着急。他说他们平台从昨天开始,很多用户反映打开网站的时候浏览器会弹出一个红色警告页面,提示“连接不安全”。有些用户不懂这是什么意思,直接关掉了浏览器,有些用户胆子大一点点了继续访问,但页面上的图片和样式全乱了,看起来就像九十年代的网页。小戴说他自己用手机试了一下,确实如此,但奇怪的是他自己用公司电脑访问又是正常的。他问我是不是服务器被黑了,还是说有人中间搞鬼。

    我跟他说你先别往坏处想,这大概率是HTTPS证书出了状况。小戴一脸懵,说什么是HTTPS证书,我当初买云主机的时候没听说过还要弄这个啊。我这才明白,他的网站一直用的是普通的HTTP协议,没有配置过任何证书。那他之前为什么能正常访问呢,是因为他平时在公司上网,公司的网络环境可能默认自动把HTTP升级成了HTTPS,或者浏览器的某些设置帮他掩盖了问题。但绝大多数普通用户的浏览器是严格的,一旦发现网站没有有效的HTTPS证书,就会毫不客气地亮出大红叉。

    小戴这个案例其实挺典型的。现在越来越多的浏览器把没有HTTPS证书的网站标记为不安全,用户看到那个红色警告,信任感一下子就崩塌了。退一步说,就算你已经有证书了,也不代表万事大吉,证书过期、证书域名不匹配、证书链不完整、证书被吊销,随便哪个问题都能让你的网站打开的时候弹出各种各样的报错。今天我就把HTTPS证书错误的常见类型和解决办法掰开揉碎了讲一讲,希望对正在被这个问题困扰的朋友有些帮助。

    首先我想先简单说一下HTTPS证书到底是干什么的,这样后面的错误类型大家理解起来更容易。你可以把证书想象成一个网站的网络身份证,它向浏览器证明两件事,第一是这个网站确实是你要访问的那个网站,而不是别人伪装的假冒网站,第二是你和网站之间传输的数据是经过加密的,中间没有人能偷看或者篡改。证书里面包含了网站的域名信息、颁发证书的机构名称、证书的有效期,还有一个很重要的东西就是公钥,用来加密通信内容。浏览器拿到证书之后会做一系列的校验,任何一个环节没通过,就会弹出那个让人头疼的错误页面。

    了解这个基本原理之后,我们来看看最常见的几种证书错误以及对应的解决方法。

    第一种,证书过期。这是最最普遍的问题,我处理过的证书错误案例里,至少有一半是因为过期导致的。证书不像云主机那样按年付费就行,它有明确的时间限制,一般有效期是一年,有些免费的证书只有三个月。很多人买了证书或者申请了免费证书之后,就把它忘在了脑后,直到有一天突然网站打不开了,才发现证书已经过期好几天了。过期的证书浏览器是不认的,浏览器会认为时间对不上,安全性无法保证,所以直接拒绝连接。解决办法说简单也简单,就是去证书颁发机构重新申请一个新的证书,然后把旧的替换掉。但是这里面有一个小坑,很多人申请了新证书之后,只是下载到了本地,忘了上传到云主机上,或者上传了但忘了重新加载Web服务的配置,导致新证书根本没生效。还有一种情况是申请的时候没有选择自动续期,尤其是使用某些免费证书的用户,需要每隔一段时间手动去执行一个续期脚本,脚本要是忘了运行,证书照样过期。我个人的习惯是在手机日历上设置一个提醒,比证书过期时间提前一个月就提醒我去检查和更新,这样就不会临时抱佛脚了。

    第二种,证书域名不匹配。这个错误的表现是,浏览器会提示证书中的域名与您访问的域名不一致。什么意思呢,你拿到的证书上写的是某个特定的域名,比如你申请证书的时候填的是不带www的版本,但用户访问的时候输入了带www的版本,浏览器一比对,发现不一样,就不干了。还有一种情况是你有多台云主机或者多个子域名,用了泛域名证书,但泛域名的通配符规则有一定的限制,比如可以匹配任意二级域名,但不能匹配三级域名,如果你的网站用到了三级域名,普通的泛域名证书就覆盖不到。解决这类问题很简单,就是在申请证书的时候把你所有会用到的域名都加上,包括带www和不带www的版本,包括所有子域名,确保证书上的域名列表跟用户实际访问的域名完全匹配。如果已经申请好了发现漏了某个域名,那就重新申请一张,一般证书颁发机构允许你在有效期内重新签发,不需要重新付费。

    说个真实案例。我有个做房产信息平台的客户,他们搞了一个活动页面,放在二级域名下面,为了图省事,直接用了主域名的证书。结果活动上线第一天,用户反馈就炸了,全是证书错误。他们当时手忙脚乱地重新申请了一张泛域名证书,但泛域名证书签发需要验证域名所有权,最快也要几个小时。那几个小时里,活动的转化率掉了将近百分之七十。事后他们复盘,把域名规划和证书管理写进了项目上线前的强制检查清单里,再也没出过类似的问题。

    第三种,证书链不完整。这个问题稍微技术化一点,但理解起来也不难。证书不是单独一张纸就能生效的,它有一条信任链条,最顶端是浏览器内置信任的根证书,中间有一个或多个中级证书,最下面是你的网站证书。浏览器在验证的时候,不仅看你网站的证书,还会顺着链条往上找,一直找到它认识的根证书才算通过。如果你的服务器配置的时候只放了网站证书,没放中级证书,浏览器走到一半发现链条断了,就会报错。这个错误的表现比较有迷惑性,因为有些浏览器比较聪明,会自己去网上下载缺失的中级证书,所以你可能在自己电脑上测试的时候发现是正常的,但换了一个没有网络或者网络受限的环境,浏览器下载不到中级证书,就会报错。解决办法是去你的证书颁发机构网站上下载完整的证书链文件,通常会提供给你一个包含根证书和中级证书的捆绑包,然后在你的Web服务配置里把这个捆绑包和你的网站证书一起配上去。配置完成之后可以用在线的证书检测工具测试一下,这些工具会模拟浏览器的验证过程,告诉你证书链是否完整,有没有任何警告。

    第四种,证书被吊销。这种情况比较少见,但一旦遇到就非常麻烦。证书被吊销的原因有好几种,可能是你的私钥泄露了,可能是证书颁发机构发现自己在签发证书的时候出了问题需要召回,也可能是你的域名涉及违规使用被举报了。被吊销的证书会进入一个叫证书吊销列表的黑名单里,浏览器在验证的时候会去查这个列表,如果发现你的证书在黑名单上,就直接拒绝。解决这个问题只有一个办法,就是去申请一张全新的证书,原来的那张哪怕还没到期也不能继续用了。顺便说一句,如果你发现证书被吊销了但自己并没有做过任何违规的事情,一定要及时联系你的证书颁发机构,问清楚具体原因,防止是别人冒用了你的身份或者你的账户被盗了。

    第五种,服务器时间不正确。这个问题我前面在讲DNS解析的时候也提到过,在HTTPS证书这里同样重要。证书验证过程中会用到系统时间来比对证书的有效期,如果你的云主机系统时间跟真实时间相差太大,比如差了几天、几个月甚至几年,那么浏览器会认为证书要么还没到生效时间,要么已经过期很久了,反正就是认为它无效。这种情况在云主机上其实不太常见,因为云主机一般都会自动同步网络时间,但也不是绝对,有些配置不当或者被篡改过的系统可能时间服务被关闭了。解决办法是用时间同步服务校准系统时间,然后重启一下Web服务,问题通常就能解决。

    第六种,混合内容错误。这个错误不是证书本身的问题,但很多人都把它归类到证书错误里,因为表现形式确实很像。混合内容的意思是,你的网站整体是通过HTTPS访问的,但页面里有一部分资源,比如图片、脚本、样式表,是通过HTTP加载的。浏览器会觉得这样不安全,因为你虽然主页面是加密的,但加载的那些不加密的资源可能在传输过程中被篡改,篡改者可以通过这些资源来攻击你的整个页面。对于现代浏览器来说,遇到混合内容通常会直接阻止加载那些不安全的资源,导致页面显示不全、功能失效。解决办法是把所有资源的链接都改成HTTPS,可以从代码层面改,也可以用一些自动替换的工具,还有一种方法是启用内容安全策略,告诉浏览器自动升级不安全的请求。小戴那个案例里,他后来配置了免费的HTTPS证书之后,页面样式全乱了,其实就是因为他网站里的CSS文件和JS文件写的都是绝对路径,浏览器加载的时候被混合内容策略阻止了。我帮他把所有资源链接改成了相对路径,问题就解决了。

    第七种,自签名证书错误。有一些开发者为了方便,在测试环境中自己给自己签发证书,这种证书叫自签名证书。自签名证书没有经过任何权威机构的验证,浏览器不认识它,所以访问的时候会弹出极其强烈的警告。有些人图省事,直接把自签名证书用到了生产环境,这就出大问题了。对于生产环境,一定要使用由受信任的证书颁发机构签发的证书。现在获取正规证书的渠道很多,很多云服务商甚至提供免费的基础证书,完全不需要自己去搞自签名。

    我还想提一下证书部署完成之后的一个常见问题,就是有些用户反馈证书错误,但你自己访问是正常的。这种情况通常是因为用户使用了某些网络代理软件,或者公司内部网络部署了自己的根证书来做流量审计。这些情况下,用户的浏览器看到的证书不是你部署的那个,而是代理软件临时生成的一个证书,自然就会报错了。这类问题你这边解决不了,需要用户自己检查他的网络环境。但作为网站运营者,你可以做的是尽量使用现代浏览器推荐的安全配置,比如开启证书透明度监控、使用更安全的加密套件,这样可以减少中间人攻击的可能性。

    小戴最后花了半天时间,申请了免费证书,修复了混合内容的问题,还给网站做了全站HTTPS的跳转,就是说用户即使输入了HTTP的地址,也会自动跳转到HTTPS版本。他说改完之后除了安心,还有一个意外的收获,就是网站的搜索排名比以前好了一些,因为搜索引擎确实更偏好安全的网站。

    总结一下,云主机HTTPS证书错误的问题,按这个思路来排查和解决基本不会漏掉什么。先检查证书是否过期,这个最直观也最容易忽略。再检查证书上的域名是否跟你实际访问的域名完全一致,注意带不带www的情况。然后确认证书链是否完整配置了,不要只放一张网站证书。如果以上都正常,去查一下证书有没有被吊销。确认云主机的系统时间准确无误。检查页面里有没有混合内容,把所有HTTP资源改成HTTPS。生产环境不要使用自签名证书,去正规渠道申请。最后,如果只有部分用户报错,考虑是不是用户的网络环境中有代理或者审计设备干扰了证书验证。

    HTTPS已经不是可选项了,而是每个网站的标配。证书错误不仅影响用户体验,更直接损害用户对你网站的信任。花点时间把证书这件事搞透彻,把自动续期、监控告警这些都配置好,你会发现省下来的时间和避免的麻烦远比投入的那点精力多得多。



    最新推荐


    微信公众帐号
    关注我们的微信