标签: https

  • WordPress网站免费SSL证书申请及配置教程

    SSL证书申请及配置教程

    在WordPress网站上安装SSL证书,既是顺应互联网发展之要求,也是网站信息加密之所需。

    网站拥有SSL证书将启用HTTPS,这可确保不会以纯文本形式传递任何信息。我们建议所有站点都使用HTTPS,因为它具有除安全性之外的许多其他好处,如SEO、信任、避免浏览器警告等。

    如何安装SSL证书

    对于WordPress网站安装SSL(TLS)证书,小编仅针对最为常见的三种安装方式进行讲解。

    选项1 –宝塔安装免费SSL证书

    如果您的VPS服务器安装部署了宝塔控制面板,那安装免费SSL证书是一件非常简单的事情。

    第1步

    登录到宝塔控制面板后台,然后进入“网站”管理列表,找到你需要安装SSL证书的网站,点击操作“设置”。

    宝塔网站设置

    在宝塔控制面板中选择一个站点

    第2步

    使用宝塔面板安装SSL证书,主要推荐两种方式:宝塔SSL(1年免费TrustAsia DV SSL CA证书,期满可续订)或者Let’s Encrypt免费证书(3个月免费,可续订)。

    (1)Let’s Encrypt证书安装

    在网站设置弹窗窗口,点击左侧菜单“SSL”,然后切换至Let’s Encrypt标签项,选择验证方式为“文件验证”及勾选你需要安装SSL证书的“域名”,最后点击“申请”。

    Let's Encrypt证书申请

    申请后,稍等片刻,系统将会自动为您创建SSL证书并完成部署。

    Let's Encrypt证书部署

    注:

    • 申请之前,请确保域名已解析,如未解析会导致审核失败
    • Let’s Encrypt免费证书,有效期3个月,支持多域名。默认会自动续签
    • 若您的站点使用了CDN或301重定向会导致续签失败
    • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
    • 如开启后无法使用HTTPS访问,请检查安全组是否正确放行443端口

    (2)宝塔SSL证书安装

    如果你嫌上面的Let’s Encrypt免费证书有效期过短(实际上可以续订),那也可以申请宝塔的SSL正式(该证书实际上是TrustAsia DV SSL CA – G5证书)。

    首先你必须完成宝塔账号实名认证,否则无法由宝塔提供的1年免费的TrustAsia DV SSL CA – G5证书。

    注:宝塔实名认证,可以是个人或者企业实名认证,其中个人实名认证务必保证手机号码、姓名和身份证三个信息准确,且手机号码不能为电信号码、携号转网号码(官方说的)。

    同在网站设置弹窗窗口,点击左侧菜单“SSL”,然后切换至宝塔SSL标签项,选择你需要申请宝塔SSL的域名,点击“申请”。

    TrustAsia DV SSL CA - G5证书申请

    成功申请后,点击“部署”操作即可。(部署完成,同样会跳转至Let’s Encrypt标签页,这有点不太合理的交互)。

    TrustAsia DV SSL CA - G5证书部署

    注:TrustAsia DV SSL CA – G5证书1年有效期结束后不能够续签,需重新申请。

    第3步

    完成宝塔控制面板的SSL申请及部署后,建议启用强制HTTPS,以保证所有域名访问通过https。

    宝塔强制HTTPS启用

    选项2 –手动部署安装免费SSL证书

    第一步 –申请免费的SSL证书

    你可以通过Free SSL申请注册免费SSL证书。首先你得注册一个Free SSL的账号,然后登录Free SSL网站。在首页,输入你要申请免费SSL证书的域名,点击Create certificate

    FreeSSL官网

    在下一个步骤,无需理会任何选项,直接点“Next Step”

    FreeSSL免费证书申请

    然后,你可以选择90天或者1年的SSL证书,注意,这里千万不要选择第二个选项“1-Yeaar Certificate”,应该选择第一个“90-Day Certificate”

    90天免费SSL证书

    选择生成证书信息的方式,根据自己的实际情况选择,建议选择第三个“Fill in the information”:

    • EmailAddress-电子邮件地址
    • Organization-组织
    • Department-部门
    • City-城市/地区
    • State-省份
    • Country-国家

    免费SSL证书信息填写

    点击提交,浏览器将会下载自动生成一个私钥文件private key,将其保存到浏览器任意位置(后面最终步骤也会在下载的压缩包包含此文件)。

    然后,选择第一个“Free”套餐(注:其他套餐都是付费套餐),点击“Next”,进入下一个步骤。

    FreeSSL套餐选择

    在下个页面,Free SSL还需要对域名进行验证,可以使用邮箱认证、DNS认证和上传文件认证,这里选择最为便捷的文件上传认证作为演示。

    选择“HTTP File upload”,点击“Next”

    FreeSSL域名验证

    根据提示的信息创建一个txt文本,其中Auth value对应的值作为txt文本的内容,Auth path对应的值作为txt文件名,最后将创建好的txt文件上传至服务器网站根目录下的.well-known/pki-validation

    FreeSSL域名验证-文件上传验证

    然后点击“Verify Domain”,可能需要一小会的时间。

    注:验证域名的时候,如失败,检查下Auth Path的URL是否能够正常访问。必须支持http访问才可以成功验证,如果启用了强制https,应临时取消。

    验证成功后,点击Certificate列表对应域名右侧的操作项“Operation”下的“Download”,将会下载一个zip压缩包(包括一个key文件合一个pem文件)。

    FreeSSL证书文件下载

    第二步 –部署SSL证书

    (1)宝塔面板部署Free SSL证书

    如果你安装的是宝塔面板,则部署刚才在Free SSL申请的免费证书是一件非常简单的事情。

    登录你的网站服务器的宝塔控制面板后台,点击(1)“网站”菜单,在网站列表中找到需要配置SSL的域名,点击(2)“设置”操作,然后在弹出窗口中(3)选择“其他证书”选项卡。

    宝塔面板其他证书部署

    然后将前面下载的压缩包文件解压得到两个文件:.key和.pem。使用记事本打开,将.key的文本内容复制粘贴到(4)key密钥,及将.pem的文本内容复制粘贴到(5)PEM格式证书,最后点击“保存”即可为网站配置SSL证书。

    (2)自主部署Free SSL证书

    如果服务器安装的是Nginx,则参考以下步骤进行SSL证书部署。

    找到网站的Nginx的网站配置文件,可能存放在/usr/local/nginx/conf/vhost这样的目录下的域名.conf,不同服务器可能不尽相同。在网站的Nginx配置文件添加下列注释的行(相关信息替换成自己网站的):

     

    server
    {
    #在80端口监听行下方增加443端口监听
    listen 443 ssl http2;
    #如果需要http跳转https,在域名指向目录下方增加下面规则,注意将域名更换为自己的域名
    if ($http_host !~ “^bt.wbolt.com$”) {
    rewrite ^(.*) https://bt.wbolt.com$1 permanent;
    }
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #填写.pem证书的存放路径,注意将证书保存路径改为自己服务器的路径
    ssl_certificate /usr/local/nginx/conf/ssl/bt.wbolt.com/bt.wbolt.com.pem;
    #填写私钥的存放路径,注意将证书保存路径改为自己服务器的路径
    ssl_certificate_key /usr/local/nginx/conf/ssl/bt.wbolt.com/bt.wbolt.com.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    }
    server
    {
    #在80端口监听行下方增加443端口监听
    listen 443 ssl http2;
    #如果需要http跳转https,在域名指向目录下方增加下面规则,注意将域名更换为自己的域名
    if ($http_host !~ “^bt.wbolt.com$”) {
    rewrite ^(.*) https://bt.wbolt.com$1 permanent;
    }

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #填写.pem证书的存放路径,注意将证书保存路径改为自己服务器的路径
    ssl_certificate /usr/local/nginx/conf/ssl/bt.wbolt.com/bt.wbolt.com.pem;
    #填写私钥的存放路径,注意将证书保存路径改为自己服务器的路径
    ssl_certificate_key /usr/local/nginx/conf/ssl/bt.wbolt.com/bt.wbolt.com.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    }

    server
    {   
        #在80端口监听行下方增加443端口监听 
        listen 443 ssl http2;
        #如果需要http跳转https,在域名指向目录下方增加下面规则,注意将域名更换为自己的域名
        if ($http_host !~ "^bt.wbolt.com$") {
            rewrite  ^(.*)    https://bt.wbolt.com$1 permanent;
            } 
        
        #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
        #error_page 404/404.html;
        #填写.pem证书的存放路径,注意将证书保存路径改为自己服务器的路径 
        ssl_certificate    /usr/local/nginx/conf/ssl/bt.wbolt.com/bt.wbolt.com.pem;
        #填写私钥的存放路径,注意将证书保存路径改为自己服务器的路径 
        ssl_certificate_key    /usr/local/nginx/conf/ssl/bt.wbolt.com/bt.wbolt.com.key;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
    }

    如果服务器安装的是Apache,则参照以下步骤进行SSL证书部署。

    找到网站的Apache的网站配置文件,可能存放在/usr/local/apache2.4/conf/httpd.conf,不同服务器可能不尽相同。在网站的Apache配置文件添加下列行(相关信息需替换自己的):

    <VirtualHost *:443>
    #网站路径、域名地址及Log路径均要替换成自己的
    ServerAdmin webmaster@example.com
    DocumentRoot “/www/wwwroot/bt.wbolt.com/”
    ServerName SSL.bt.wbolt.com
    ServerAlias bt.wbolt.com
    #errorDocument 404 /404.html
    ErrorLog “/www/wwwlogs/bt.wbolt.com-error_log”
    CustomLog “/www/wwwlogs/bt.wbolt.com-access_log” combined
    #SSL 以下是配置SSL证书的信息,切记将证书文件路径及文件换成自己的
    SSLEngine On
    SSLCertificateFile /usr/local/apache/conf/ssl/bt.wbolt.com/bt.wbolt.com.pem
    SSLCertificateKeyFile /usr/local/apache/conf/ssl/bt.wbolt.com/bt.wbolt.com.key
    SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1
    SSLHonorCipherOrder On
    #PHP
    <FilesMatch .php$>
    SetHandler “proxy:unix:/tmp/php-cgi-56.sock|fcgi://localhost”
    </FilesMatch>
    #DENY FILES
    <Files ~ (.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md)$>
    Order allow,deny
    Deny from all
    </Files>
    #PATH 网站路径需替换成自己网站的路径
    <Directory “/www/wwwroot/bt.wbolt.com/”>
    SetOutputFilter DEFLATE
    Options FollowSymLinks
    AllowOverride

  • 如何实现WordPress网站HTTP重定向到HTTPS

    如何实现WordPress网站HTTP重定向到HTTPS

    HTTPS是一种用于通过计算机网络进行安全通信的协议,在Internet上广泛使用。越来越多的WordPress所有者正在从HTTP迁移到HTTPS,主要是由于以下5个原因:

    1. 谷歌宣布使用HTTPS的网站将在谷歌搜索中获得一定的排名因素
    2. 由于浏览器支持,您可以使用新的HTTP/2协议实现更快的性能,该协议需要HTTPS。
    3. HTTPS更安全,访问者的数据完全加密。
    4. HTTPS可以通过在访问者的Web浏览器地址栏中启用绿色挂锁来建立信任。
    5. 如果有人从HTTPS访问网站并转到HTTP网站,则引荐数据将在Google Analytics中丢失。它通常最终与“直接流量”混为一谈。如果有人从一个HTTPS网站转到另一个HTTPS网站,推荐数据仍然会被传递。因此,通过从HTTP迁移到 HTTPS,您实际上可以获得更准确的推荐数据。

    在WordPress中选择将HTTP重定向到HTTPS时,您有几个不同的选择。

    如果您是宝塔面板用户,最简单的方法是使用宝塔的强制HTTPS工具(推荐)。另一种方法是在服务器级别执行此操作,或者您甚至可以使用免费的WordPress插件来执行此操作。注意:我们的示例都包含301重定向指令,这是在SEO方面实现它的正确方法。使用不同类型的重定向可能会损害您的排名。

    在宝塔面板上将HTTP重定向到HTTPS

    无需安装插件,您可以轻松地将所有HTTP流量重定向到HTTPS。只需登录你的宝塔控制面板,点击左侧菜单“网站”,选择对应网站的“设置”。

    宝塔网站设置

    宝塔网站设置

    然后在弹出窗口,选择SSL,点击右上角的强制“HTTPS”。注:前提你必须已经为你的站点配置了SSL证书。

    强制HTTPS选项

    强制HTTPS选项

    请注意,如果您使用第 3 方代理,或者您设置了自定义 HTTPS 规则来强制使用 HTTPS,则可能会导致一些错误。如果您发现任何问题,只需禁用 HTTPS 强制并联系支持人员即可。

    在Nginx中将HTTP重定向到HTTPS

    根据W3Techs的数据,Nginx是增长最快的Web服务器,截至2017年拥有30%以上的市场份额。平均而言,每分钟前1000万个网站中就有一个开始使用Nginx。

    Nginx Logo

    如果您的Web 服务器正在运行Nginx,您可以通过将以下代码添加到Nginx配置文件中,轻松地将所有HTTP流量重定向到HTTPS。

    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri; }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri; }
    server { 
    listen 80; 
    server_name domain.com www.domain.com; 
    return 301 https://domain.com$request_uri; }

    在Apache中将HTTP重定向到HTTPS

    Apache Logo

    如果您的Web服务器正在运行Apache,您可以通过将以下代码添加到您的.htaccess 文件中,轻松地将所有HTTP流量重定向到HTTPS 。

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    使用Really Simple SSL插件将HTTP重定向到HTTPS

    您必须从HTTP重定向到HTTPS的最后一个选项是使用免费的Really Simple SSL插件。

    我们不建议将此方法作为永久解决方案,因为3rd方插件总是会引入另一层问题和兼容性问题。此外,对于HTTPS迁移,您应该更新数据库中的HTTP URL,而不是依赖插件。但这可以是一个很好的临时解决方案。

    Really Simple SSL插件

    Really Simple SSL插件

    该插件有超过20万的活跃安装,并由开发人员Rogier Lankhorst更新。您可以从WordPress插件库下载Really Simple SSL,也可以在WordPress仪表盘中的“安装插件”下搜索它。以下是插件功能的列表:

    • 所有传入的HTTPS请求都从HTTP重定向到HTTPS。如果可能,使用.htaccess,否则使用JavaScript。
    • WordPress站点URL和主页URL更改为HTTPS。
    • 通过将所有HTTP://地址替换为HTTPS://地址来修复您的不安全内容,但指向其他外部域的链接除外。一切都是动态完成的。除了WordPress站点URL和主页URL之外,没有进行其他数据库更改。

    使用此插件实际上没有任何步骤,您只需安装并单击“Go ahead, activate SSL”就可以了。

  • 如何修复WordPress混合内容错误Mixed Content Error

    错误类型:
    浏览器错误
    错误名称:
    混合内容错误
    英文名称:
    Mixed Content Error
    错误描述:
    从本质上讲,混合内容错误是指您的WordPress站点通过HTTPS安全地提供一些资源,又通过HTTP不安全地提供一些资源。有时,这些混合内容的一部分甚至不会显示出来,从而导致网站以多种方式出现故障。

    000-mixed-content-error

    如今大部分网站的连接都是通过SSL证书完成的,如果你的站点还没配置https,建议也参照“WordPress网站免费SSL证书申请及配置教程”配置一个。

    大多数网络主机提供免费的Let’s Encrypt证书和更新,只需点击几下即可安装。但是,在设置SSL时,混合内容是一个常见问题,虽然不是什么大问题,但我们也需要尽快修复WordPress中的混合内容错误以保证网站完全安全。

    什么是WordPress混合内容错误?

    从本质上讲,混合内容错误是指您的WordPress站点通过HTTPS安全地提供一些资源,又通过HTTP不安全地提供一些资源。有时,这些混合内容的一部分甚至不会显示出来,从而导致网站以多种方式出现故障。并且存在多个不利的影响:

    首先是搜索引擎惩罚它认为不安全的任何站点,并且会在用户点击进入站点时发出警告,提醒访客“您与此网站之间建立的连接不安全”。试想想,有多少个访客愿意冒险继续访问此网站。

    其次是谷歌和其他搜索引擎会在排名中惩罚你的网站,因为你的网站不安全,可能包含恶意软件,而且用户体验很差,内容根本没有加载。

    加上WordPress网站上的混合内容错误会严重影响加载时间,这就使得网站的用户体验变得糟糕。

    那么您如何防止这种情况发生并使您的网站成为搜索引擎和访客都不受欢迎的一员呢?

    如何使用插件修复WordPress中的混合内容错误

    修复WordPress混合内容错误实际上相对简单。由于平台的定制化和灵活性,插件开发人员基本上已经解决了您可能遇到的任何问题。你只需要知道在哪里搜索。对于大多数站点来说,能够快速安装和配置插件是最好的解决方案。

    001-Insecure-Content

    推荐WebAware开发的SSL Insecure Content Fixer插件。只需安装和启用插件就可以修复WordPress网站上显示的任何混合内容错误。正如WordPress.org插件描述所说,“使用简单修复级别对您的网站进行一些基本修复。” 如果您需要更多,该插件提供更高级的设置页面,您可以在其中调整需要保护的内容。

    您可以在WP管理面板菜单中的设置 – SSL Insecure Content下找到设置 。请注意, 已启用简单选择。

    002-Insecure-Content

    大多数时候,这是有效的。为了确保它正常工作,我们强烈建议在GT MetrixPingdom上运行页面速度测试(或此前推荐的15个网站速度测试工具的任意一个)。虽然这些测试本身非常棒,可以帮助识别您网站上的错误,但它们都报告不安全/混合内容。因此,如果您确实有任何问题,其中一位会告诉您。

    使用这个插件修复了除Capture All之外的所有错误 。根据经验,自动修复的AJAX调用往往会破坏站点功能。但是,其他每个选项都修复了GT Metrix或Pingdom发现的任何问题。

    使用SSL Insecure Content Fixer等插件的最大问题是,如果您停用该插件,则混合内容修复程序也有可能停用。如果这对您来说是一个潜在的问题,我们也有解决方案。

    如何手动修复WordPress混合内容错误

    与任何其他主要网络应用程序一样,WordPress 实际上只是服务器上的一个数据库。如果该数据库中的资源仍被标记为 HTTP 并且浏览器正在调用 HTTPS……这是一个混合内容错误。幸运的是,您也可以手动执行一些非常简单的修复。

    在您的WP数据库中查找和替换

    虽然这也涉及插件,但它仅用于实际功能,之后可以禁用。在WP.org插件市场上找到Better Search Replace插件。

    004-Insecure-Content

    005-Insecure-Content

    在 工具 – Better Search Replace 下(1),您将搜索域名的不安全实例并将其替换为 HTTPS 版本。在Search for输入 HTTP://yourdomain.com 和Replace with输入HTTPS://yourdomain.com

    然后,选择要包括在搜索中的数据库表。一般来说,这将是所有这些。因此,单击顶部,滚动到底部,然后按住 Shift 键并单击最后一个。这将突出显示列表(3)中的所有表。

    我们建议启用 Run as Dry Run 选项。这样做将使插件执行所有操作,但实际上不会保存更改。它会报告它发现的任何东西。

    006-Insecure-Content

    如果发现一切都OK,取消选中试运行框运行搜索并替换。但是,在此之前,我们强烈建议备份您的站点和数据库。任何时候你需要对数据库进行修改操作,务必先做备份工作。损坏或处理不当的数据库是所有WordPress中最难修复的事情之一。

    您也可以通过托管仪表板中的phpMyAdmin执行相同的过程,但它没有试运行功能,并且需要更多的技术知识来实施。对于大部分站长来说,我们更建议使用插件方法。

    更改 .htaccess 文件

    您网站的 .htaccess文件负责引导流量并允许访问您网站的元素。您可以通过使用 FileZilla(或其他 FTP 客户端)或从主机的仪表盘文件管理器中向.htaccess文件添加几行来强制对站点资源使用HTTPS  。

    基本上,您将使用 .htaccess进行重定向,因此您现有的内容不会继续通过 HTTP 加载。

    为此,请导航到/public_html 或 根 目录并在其中查找 .htaccess 文件。右键单击它并选择允许您编辑文件的选项,如果您使用的是 FTP,它将使用您的默认文本编辑器或集成编辑器(如果您使用主机的仪表板)打开文件。

    007-Insecure-Content

    复制粘贴以下代码行至</IfModule>标记和#END WordPress行之间

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    </IfModule>
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    </IfModule>
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{SERVER_PORT} !^443$
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
        RewriteBase /
        RewriteRule ^index.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
    </IfModule>

    008-Insecure-Content

    注:同样地,建议先对.htaccess文件备份, 再执行相关操作,以防这些更改出错。

    如果一切正常,您应该不会再看到混合内容错误。但是,如果您使用缓存插件,您可能仍会遇到错误。如果是这种情况,请确保清除网站的缓存并再次尝试加载您的网站。

    小结

    如果在WordPress中遇到混合内容错误,这并不像听起来那么可怕。事实上,它是比较容易修复的WordPress错误消息之一。无论您更喜欢插件修复还是深入研究WordPress核心文件,摆脱网站上的混合内容错误都是快速和容易的。

  • 如何修复NET::ERR_CERT_COMMON_NAME_INVALID错误

    错误类型:
    浏览器错误
    错误名称:
    证书通用名称无效
    英文名称:
    NET::ERR_CERT_COMMON_NAME_INVALID
    错误描述:
    正如错误消息所述,NET::ERR_CERT_COMMON_NAME_INVALID背后的根本问题是您的SSL证书上的通用名称由于某种原因无效。
    错误变体:
    Your connection is not private
    This site is not secure
    Your connection is not secure
    更多信息

    如何修复NET::ERR_CERT_COMMON_NAME_INVALID错误-1

    通过安全超文本传输​​协议 (HTTPS)加载您的网站是一项关键的网络安全最佳实践。但是,如果您没有正确安装安全套接字层 (SSL) 证书,您可能会遇到许多错误,例如NET::ERR_CERT_COMMON_NAME_INVALID。

    诚然,解决此错误可能有点棘手,因为它可能出现在您的浏览器中的原因有很多。如果您可以缩小原因,解决此 SSL 问题根本不需要很长时间。

    在本文中,我们将解释NET::ERR_CERT_COMMON_NAME_INVALID错误的含义,并向您展示它在各种浏览器中的外观示例。然后我们将分享您可以用来修复它的几种方法。

    1. 了解导致NET::ERR_CERT_COMMON_NAME_INVALID错误的原因
    2. NET::ERR_CERT_COMMON_NAME_INVALID错误的变体
    3. 如何修复NET::ERR_CERT_COMMON_NAME_INVALID错误

    了解导致NET::ERR_CERT_COMMON_NAME_INVALID错误的原因

    在我们深入研究导致NET::ERR_CERT_COMMON_NAME_INVALID错误的原因之前,让我们分解相关术语。在“common name”这个错误的引用是在域上的SSL证书已安装。

    例如,如果您的网站位于mydomain.com,则您的SSL证书上的通用名称将是mydomain.com。因此,正如错误消息所述,NET::ERR_CERT_COMMON_NAME_INVALID背后的根本问题是您的SSL证书上的通用名称由于某种原因无效。

    通常,这意味着您的证书上的名称与其安装的域不匹配。但是,还有其他情况可能会导致此消息出现在您的浏览器中,包括:

    如您所见,许多不同的因素都可能导致NET::ERR_CERT_COMMON_NAME_INVALID错误。这可能会使确定正确的解决方案变得困难,但一点耐心将有助于您解决问题。

    NET::ERR_CERT_COMMON_NAME_INVALID错误的变体

    我们将很快深入研究NET::ERR_CERT_COMMON_NAME_INVALID错误的解决方案。但是,首先,您需要能够在浏览器中识别它。

    下面是这个问题在网络上最流行的客户端中的样子。

    Chrome浏览器

    像许多其他与HTTPS相关的错误一样,谷歌浏览器通过显示“Your connection is not private”警告来表示存在常见的名称不匹配:

    Google Chrome中的NET::ERR_CERT_COMMON_NAME_INVALID错误

    Google Chrome中的NET::ERR_CERT_COMMON_NAME_INVALID错误

    您将看到主要消息下方列出的特定问题 (NET::ERR_CERT_COMMON_NAME_INVALID)。看到此屏幕的用户可以选择使用HTTP继续访问您的站点。

    此消息有可能吓跑许多潜在访客。

    Firefox浏览器

    Firefox 提供了一个稍微不同的通用名称不匹配错误的变体。在“Your connection is not secure”标题下,它会告诉您您尝试访问的网站配置不正确,并建议您不要访问它。

    您可能还会看到一条消息,内容为“Warning: Potential Security Risk Ahead(警告:潜在的安全风险)”:

    Mozilla Firefox中的安全风险警告

    Mozilla Firefox中的安全风险警告

    它也可能在下面显示更具体的错误消息,指出安全证书无效并且仅配置为使用列出的域名。

    您还将看到“SSL_ERROR_BAD_CERT_DOMAIN”代码。

    Safari浏览器

    在Safari中,相应的错误消息显示为“Safari can’t verify the identity of the website(Safari无法验证网站的身份)”或“Safari can’t open the page(Safari无法打开页面)”,然后是您尝试访问的域。

    它还可能声明站点的SSL证书无效或无法建立安全连接:

    Safari浏览器出错

    Safari浏览器出错

    与其他浏览器相比,Safari的常见名称不匹配错误消息有些含糊。

    如果您看到此错误窗口,则其背后可能还有其他与SSL相关的问题,因此请务必寻求各种解决方案。

    IE浏览器

    Internet Explorer切入正题,并通知您“此站点不安全(This site is not secure)”。并表示SSL证书的可信度存在问题。此消息后可能会跟随一些不同的规范:

    Internet Explorer中的安全证书警告

    Internet Explorer中的安全证书警告

    与Chrome中的NET::ERR_CERT_COMMON_NAME_INVALID错误相当的问题的问题通常是:“该网站提供的安全证书是针对不同网站的地址颁发的。”

    它还将为访问者提供一些潜在的解决方案,例如在他们输入的URL中添加或删除“www”。

    但是,此类修复只是暂时的。持续存在的错误仍可能会损害您网站的可信度并阻止您增加流量,因此最好找到问题的根源并迅速解决。

    如何修复NET::ERR_CERT_COMMON_NAME_INVALID错误

    正如您现在所知,NET::ERR_CERT_COMMON_NAME_INVALID错误有很多可能的原因。因此,它也有很多潜在的修复方法。您可以尝试在您的网站上解决此问题的九种方法。

    1. 验证您的SSL证书是否正确

    NET::ERR_CERT_COMMON_NAME_INVALID错误的最基本原因是您站点的域与您的SSL证书上列出的通用名称不匹配。因此,您要尝试的第一个修复是查看您的证书以确定它是否配置错误。

    在整篇文章中,我们将展示在Google Chrome中解决此错误的示例。但是,其他浏览器应该使您能够通过类似的步骤完成相同的结果。

    首先,单击URL栏中的“不安全(Not Secure)”警告。在打开的菜单中,选择Certificate证书 (Invalid无效)

    在Google Chrome中打开证书检查器

    在Google Chrome中打开证书检查器

    这将打开一个小窗口,显示您的SSL证书的详细信息:

    在Google Chrome中检查网站的SSL证书

    在Google Chrome中检查网站的SSL证书

    此处列出的域应与您尝试访问的域相匹配。如果没有,您就会知道您的证书配置错误。

    最好的解决方案是从您的站点中删除证书并安装一个新证书。

    验证通配符SSL证书

    当涉及通配符SSL证书时,NET::ERR_CERT_COMMON_NAME_INVALID错误会变得稍微复杂一些 。这种类型的证书旨在加密多个子域的数据。

    因此,不是在证书上列出一个通用名称,而是 使用诸如*.example.com 之类的子域级别。如果您安装了通配符证书并且看到NET::ERR_CERT_COMMON_NAME_INVALID错误,则可能意味着您的证书不涵盖您尝试访问的子域。

    在浏览器中验证SSL证书时请记住这一点。另请注意,通配符SSL证书仅保护一个子域级别。例如,您需要为*.example.com 和*.subdomain.example.com 提供单独的证书。

    验证主题备用名称 (SAN) 证书

    主题备用名称 (SAN) 证书可以加密指向同一站点的多个域的数据。这可能包括www和非www变体、子域和顶级域 (TLD)变体。

    如果您尝试访问的站点使用SAN证书,则在您的浏览器中验证 SSL 证书时,您可能需要做一些进一步的挖掘。

    在Chrome中,单击证书窗口中的详细信息

    Google Chrome中证书检查器窗口的“详细信息”选项卡

    Google Chrome中证书检查器窗口的“详细信息”选项卡

    向下滚动,直到找到标有Extension Subject Alternative Name的部分。在它下方,您应该会看到证书保护的所有域的列表。

    2. 检查错误配置的重定向

    如果您将站点从一个域重定向到另一个域, 并且没有在第一个域上安装SSL证书,则可能会导致错误。例如,许多SSL证书不会自动说明您网站的www和非www版本。

    假设您将www.example.com设置为重定向到example.com。如果您在example.com上而不是在www.example.com上安装 SSL 证书,您可能会看到NET::ERR_CERT_COMMON_NAME_INVALID错误。

    如果您不确定您的网站是否以这种方式重定向访问者,您可以使用Redirect mapper进行检查:

    重定向映射器工具

    重定向映射器工具

    此工具仅检查 您网站的HTTP和HTTPS版本之间以及www和非www版本之间的重定向。

    如果您发现重定向干扰了您的SSL证书,您可以尝试几种解决方案。一种是将证书上的通用名称更改为正确版本的域。

    您还可以为要重定向的域获取另一个证书,或者获取涵盖两个域的SAN证书。对于通配符域,您需要列出要加密的每个子域,而不是在它们之间重定向。

    3. 确保您的WordPress地址和站点地址匹配

    在没有安装SSL证书的情况下,意外地将您的站点地址切换到HTTPS是相当容易的,尤其是在WordPress中。无论您认为自己是在实施安全最佳实践,还是只是在网站设置中闲逛,您都可能无意中导致了NET::ERR_CERT_COMMON_NAME_INVALID错误。

    解决这个问题相当简单。

    在您的WordPress仪表板中,导航到设置>常规。在那里,确保您的WordPress地址站点地址匹配:

    检查WordPress地址和站点地址设置

    检查WordPress地址和站点地址设置

    此外,如果这些URL使用HTTPS而您没有安装SSL证书,请将它们更改为HTTP。请记住保存您所做的任何编辑。

    如果进行此切换后错误仍然存​​在,您可能还需要通过 hpMyAdmin更改数据库中的地址。

    您可以通过您的主机帐户访问此程序。通过单击左侧边栏中的名称打开您站点的数据库,然后访问wp_options表:

    检查phpMyAdmin中的siteurl和home行

    检查phpMyAdmin中的siteurl和home行

    查找siteurl home行。根据需要编辑地址,然后检查您是否可以访问您的站点。

    4. 确定您的站点是否使用自签名SSL证书

    当您通过Let’s Encrypt或其他信誉良好的来源获得SSL证书时,它由公认的证书颁发机构 (CA) 签署。自签名证书不受CA支持,而是由用户创建。

    自签名证书不如CA认可的证书安全。一些用户发现它们很有吸引力,因为它们是免费的,但Let’s Encrypt也免费提供授权的SSL证书。除了为内部服务器目的或localhost use设置一个之外,真的没有理由使用自签名证书。

    由于它们不提供授权证书所提供的全面保护,浏览器通常将使用自签名证书的站点标记为“不安全”。在某些情况下,这可能会导致NET::ERR_CERT_COMMON_NAME_INVALID错误。

    您可以使用我们在本文前面描述的第一种方法检查证书的CA。此数据将列在证书信息弹出窗口中:

    在Google Chrome中检查CA的SSL证书

    在Google Chrome中检查CA的SSL证书

    如果您认为您的站点使用自签名证书并且您不是开发人员,那么最好的做法是联系为您构建站点的人员并要求他们将其删除。这样,您可以用授权的替换它。

    如果您有意安装了自签名证书,则可以使用浏览器对其进行身份验证以克服错误。此过程因您的浏览器和操作系统而异,通常比简单地安装Let’s Encrypt证书更困难。

    5. 清除您的SSL状态和浏览器缓存

    如果您的证书配置中的所有内容看起来都正确,但您仍然看到NET::ERR_CERT_COMMON_NAME_INVALID错误,则您可能需要清除SSL状态。浏览器可能会缓存SSL证书以加快加载时间。如果您刚刚安装了新证书,即使一切正常,您仍可能会看到错误消息。

    同样,此过程因您的浏览器和操作系统而异。在本示例中,我们将重点介绍Chrome,但会向您展示如何在Windows和macOS上清除SSL状态。

    对于Windows,打开开始菜单并输入Internet选项。选择出现的相同选项,然后转到Internet选项窗口中的内容选项卡。现在单击清除SSL状态按钮:

    在Windows中清除SSL状态

    在Windows中清除SSL状态

    在macOS上,您需要使用钥匙串管理器来清除SSL状态。您可以通过转到设置 > 隐私和安全 > 管理证书在Chrome中访问它:

    在macOS上的Chrome中打开管理证书设置

    在macOS上的Chrome中打开管理证书设置

    查找为您尝试访问的域列出的证书。右键单击它并选择删除

    使用macOS钥匙串管理器删除证书数据。

    使用macOS钥匙串管理器删除证书数据。

    系统可能会提示您提供用户密码。

    在此处删除证书应该会清除您的SSL状态并解析NET::ERR_CERT_COMMON_NAME_INVALID(如果缓存损坏是原因)。

    清除浏览器缓存也是明智之举 。在Chrome中,这就像打开设置菜单并选择更多工具 > 清除浏览器数据一样简单:

    清除浏览器缓存

    清除浏览数据

    您还可以导航到您的隐私和安全设置以指定要清除的数据。只需确保 从选项列表中选择缓存的图像和文件

    6. 检查您的代理设置

    代理服务器,用于路由网络流量,以保留客户或原始服务器的匿名性。如果您的代理设置配置错误,则可能会限制您的Web访问并导致各种问题,包括SSL错误。

    为了防止此类问题,您需要重置代理设置。此过程因您使用的是Windows计算机还是Mac计算机而异。

    无论您使用哪种操作系统,您都可以通过谷歌浏览器访问您的代理设置,方法是导航到设置 > 高级 > 系统 > 打开您计算机的代理设置

    通过Google Chrome打开代理设置

    通过Google Chrome打开代理设置

    如果您使用的是Windows,这将打开Internet属性 窗口。单击连接选项卡,然后选择LAN设置 按钮并选择自动检测设置

    自动检测您的网络设置

    自动检测您的网络设置

    在 macOS 上,这将打开您的网络设置窗口。单击“代理” 选项卡并选择“自动代理配置”

    为macOS开启自动代理配置

    为macOS开启自动代理配置

    然后,您可以尝试再次访问您的站点,以查看错误是否已解决。

    7. 浏览器扩展冲突故障排除

    与WordPress插件一样,浏览器扩展并不总是能很好地相互配合。

    一些此类冲突可能会干扰您站点的HTTPS连接,从而导致各种错误。

    要查看浏览器扩展是否可能导致NET::ERR_CERT_COMMON_NAME_INVALID错误,请在隐身窗口中打开您的站点:

    谷歌浏览器中的隐身窗口

    谷歌浏览器中的隐身窗口

    这将减轻您安装的任何扩展的影响。如果您可以在隐身模式下正常访问您的网站,那么浏览器扩展程序可能是您遇到麻烦的根源。

    在这种情况下,最好的解决方案是一次禁用一个扩展以确定导致错误的原因。然后,您可以删除罪魁祸首以永久解决问题。

    8. 更改您的防病毒软件设置

    同样,防病毒软件可能会阻止正确的HTTPS连接。如果您在计算机上运行此类程序,请检查其设置以查看是否禁用了HTTPS扫描。如果是这样,您将需要启用它。

    如果您更改此设置并且问题没有消失,您可能需要考虑完全禁用该软件。如果这修复了NET::ERR_CERT_COMMON_NAME_INVALID错误,那么您可以联系防病毒程序的支持团队以获得进一步的帮助。

    当然,您不希望在很长一段时间内禁用防病毒软件,因为这会带来安全风险。因此,最好在等待支持人员的响应时重新打开它,并按照他们的指导解决错误,同时保持计算机的安全。

    9. 更新您的浏览器和操作系统 (OS)

    尝试访问某些网站时,过时的操作系统可能会导致错误。因此,确保您运行的是最新版本的Windows、macOS或Linux是明智之举。

    您还需要验证您的浏览器是否是最新的。要在Chrome中执行此操作,请打开“设置” 菜单,然后选择“帮助”>“关于Google Chrome”

    打开谷歌浏览器的关于部分

    打开谷歌浏览器的关于部分

    您可以在此处查看浏览器的版本并开启自动更新:

    查看您的Google Chrome版本

    查看您的Google Chrome版本

    如果Chrome不是最新版本,打开此屏幕应该会自动启动更新。

    小结

    当涉及到浏览器错误时,NET::ERR_CERT_COMMON_NAME_INVALID是一个很难修复的问题。但是,如果您可以缩小导致问题的范围,您就可以快速解决问题并保持您的网站在访问者中的可信度。

    作为修复此错误的第一步,我们建议首先在浏览器中检查您的SSL证书并查找任何配置错误的重定向。如果这些没有帮助,请开始查看我们在本指南中提到的所有其他方面。

  • 如何修复“HSTS Missing From HTTPS Server”错误

    错误类型:
    服务器错误
    错误名称:
    缺少HSTS
    英文名称:
    HSTS Missing From HTTPS Server
    错误描述:
    有时,IT安全扫描可能会报告您的站点“缺少HSTS”或“HTTP严格传输安全”标头。如果您遇到此错误,则说明您的网站未使用HSTS,这意味着您的HTTPS重定向可能会使您的访问者面临风险。

    如何修复“HSTS Missing From HTTPS Server”错误

    为HTTPS比HTTP安全得多。但是,如果您遇到“HSTS missing from HTTPS server”消息,那么此协议可能会使您的站点处于危险之中。

    幸运的是,可以堵住这个严重的安全漏洞。即使您没有遇到此错误消息,任何从HTTP重定向到HTTPS的站点都容易受到此漏洞的攻击。因此,采取积极主动的方法并修复此缺陷仍然是明智之举。

    在这篇文章中,我们将探讨“HSTS missing from HTTP server”错误是什么,以及为什么它对任何使用HTTPS重定向的网站来说都是一个如此严重的问题。然后,我们将通过五个简单的步骤向您展示如何解决此问题并阻止黑客。

    1. “HSTS missing from HTTP server”错误简介
    2. 如何修复“HSTS missing from HTTP server”错误

    “HSTS missing from HTTP server”错误简介

    为了帮助确保访问者的安全,网站执行HTTPS重定向的情况并不少见。此重定向将访问者从HTTP转发到网站的HTTPS版本。

    用户可以在其浏览器的地址栏中明确输入HTTP,或点击指向该站点HTTP版本的链接。在这些情况下,重定向可以防止恶意第三方窃取访问者的数据。

    然而,没有什么技术是完美的。如果您的站点确实使用HTTPS重定向,那么您可能容易受到称为安全套接字层 (SSL) 剥离的中间人 (MITM) 攻击。作为此攻击的一部分,黑客将阻止重定向请求并阻止浏览器通过HTTPS协议加载您的站点。结果,访问者将通过HTTP访问您的网站,这使黑客更容易窃取数据。

    或者,攻击者可能会拦截重定向并将访问者转发到您网站的克隆版本。此时,黑客可以窃取用户共享的任何数据,包括密码和支付信息。一些黑客还可能试图诱骗访问者下载恶意软件。

    黑客也有可能通过不安全的连接窃取会话cookie,这种攻击称为cookie劫持。这些cookie可以包含大量信息,包括用户名、密码,甚至信用卡详细信息。

    为了保护您的访问者免受这些攻击,我们建议启用HTTP严格传输安全 (HSTS)。此协议强制浏览器忽略任何直接请求并通过HTTPS加载您的站点。

    HSTS协议(以及您可能想要使用它的原因)

    HSTS是一个服务器指令和网络安全策略。由Internet工程任务组 (IETF) 在RFC 6797中指定,HSTS为用户代理和Web浏览器应如何处理通过HTTPS运行的站点的连接设置了规定。

    有时,IT安全扫描可能会报告您的站点“缺少HSTS”或“HTTP严格传输安全”标头。如果您遇到此错误,则说明您的网站未使用HSTS,这意味着您的HTTPS重定向可能会使您的访问者面临风险。

    这被归类为中等风险漏洞。然而,它非常普遍,对攻击者来说是唾手可得的成果。如果您遇到此错误,那么解决它至关重要。

    通过将HSTS安全标头添加到您的服务器,您可以强制您的站点加载HTTPS协议。这有助于保护您的网站免受cookie劫持和协议攻击。由于您可能会从加载过程中删除重定向,因此您的网站也可能加载得更快

    您可能没有遇到此错误,但仍然担心HSTS。如果您不确定是否启用了HSTS,您可以使用诸如Security Headers之类的工具扫描您的站点。只需输入您网站的URL,然后单击Scan

    使用Security Headers扫描您的站点

    使用Security Headers扫描您的站点

    安全标头将检查您的站点并在标头部分显示所有应用的标头。如果Strict-Transport-Security出现,则您的站点受到保护。但是,如果未列出此标头,那么我们还有一些工作要做。

    如何修复“HSTS Missing From HTTP Server”错误

    对于黑客来说,HSTS漏洞是窃取数据或诱骗访问者执行危险操作的绝佳机会。以下是启用HSTS政策并确保您的网站安全的方法。

    步骤 1:创建手动备份

    启用HSTS政策意味着您的网站发生了重大变化。因此,我们建议在继续之前创建按需备份。这使您可以选择在启用HSTS时遇到任何问题的情况下恢复您的站点。

    在宝塔面板,您可以设置WordPress备份计划。但是,在进行任何重大更改之前创建手动备份仍然是明智之举。要创建此安全网,请登录您的宝塔仪表盘。然后,单击左侧的“网站”菜单,找到你需要备份的网站对应的备份操作,然后在弹窗中点击“备份站点”。

    在宝塔面板执行网站备案操作

    在宝塔面板执行网站备案操作

    接下来,进行网站数据库备份,选择数据库菜单项。找到你需要备份的站点对应的数据库,点击备份列对应的操作项,然后单击弹窗的备份数据库按钮。

    备份网站数据库

    备份网站数据库

    这样,您即对网站完成了网站文件及数据库的备份操作。

    步骤 2:设置HTTP到HTTPS重定向

    在启用HSTS策略之前,您需要将SSL证书部署到您的网站。在宝塔面板,你可以直接申请部署证书。除非您特别需要自定义证书,否则您不必担心手动配置SSL。

    点击宝塔面板左侧的“网站”菜单项,然后找到你需要配置SSL的网站,点击操作项“设置”,点击弹窗左侧的“SSL”,然后根据需要申请及部署SSL,其中宝塔SSL和Let’s Encrypt的证书均免费,前者需要实名认证。

    然后你必须开启右上角的强制HTTPS,才可以实现将HTTP重定向至HTTPS。

    HTTP重定向至HTTPS

    请注意,如果您使用任何第三方代理或设置任何自定义HTTPS规则,那么强制HTTPS可能会导致错误或其他奇怪的行为。

    如果您的Web服务器正在运行Nginx,那么您可以将所有HTTP流量重定向到HTTPS。只需将以下代码添加到您的Nginx配置文件中:

    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }

    步骤 3:添加HSTS标头

    您可以将各种类型的指令和安全级别应用于HSTS标头。但是,我们建议添加max-age指令,因为它定义了Web服务器应通过HTTPS提供的时间(以秒为单位)。这会阻止访问只能通过HTTP提供的页面或子域。

    如果您使用的是Apache服务器,则需要打开您的虚拟主机文件。然后,您可以添加以下内容:

    Header always set Strict-Transport-Security max-age=31536000
    Header always set Strict-Transport-Security max-age=31536000
    Header always set Strict-Transport-Security max-age=31536000

    如果您使用的是NG服务器,那么您可以将以下内容添加到您的Nginx配置文件中:

    add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
    add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
    add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

    与往常一样,我们可以为您完成所有艰苦的工作。只需打开支持票证,请求我们将HSTS标头添加到您的站点。我们的团队很乐意对您的Nginx文件进行此更改。

    步骤 4:将您的网站提交到HSTS预加载列表

    HSTS政策有一个主要缺点。浏览器必须至少遇到一次HSTS标头,然后才能将其用于将来的访问。这意味着您的受众将需要至少完成一次HTTP到HTTPS 重定向过程。在此期间,它们将容易受到基于协议的攻击。

    为了弥补这个安全漏洞,谷歌创建了HSTS预加载列表。这列出了所有支持HSTS的网站,然后将其硬编码到Chrome中。通过将您的站点添加到此列表中,访问者将不再需要完成初始HTTPS重定向。

    大多数主要的互联网浏览器都有自己的HSTS预加载列表,这些列表基于Chrome的列表。要获得此列表的资格,您的网站必须符合提交标准。好消息是我们已经涵盖了所有这些要求,因此您可以继续将您的网站提交到HSTS预加载列表。

    一旦您进入此列表,一些搜索引擎优化 (SEO) 工具可能会警告您有关307重定向。当有人试图通过不安全的HTTP协议访问您的站点时,就会发生这些重定向。这会触发307重定向而不是永久301重定向。如果您对此感到担忧,可以使用httpstatus扫描您的站点并验证是否发生 301 重定向。

    步骤 5. 验证您的Strict-Transport-Security标头

    添加HSTS标头后,最好测试它是否正常运行。您可以使用浏览器的内置 Web 工具执行此检查。

    这些步骤将根据您选择的Web浏览器而有所不同。要执行此操作,请检查Google Chrome DevTools,导航到您要测试的网页。然后,您可以单击任何空白区域,然后选择检查。

    闪电博主页

    闪电博主页

    在随后的面板中,选择Network选项卡。然后,您可以检查Headers部分,该部分应包含以下内容:

    strict-transport-security: max-age=31536000
    strict-transport-security: max-age=31536000
    strict-transport-security: max-age=31536000

    或者,您可以使用安全标头工具扫描您的站点。和以前一样,只需输入您网站的URL,然后单击Scan。这将返回一个安全报告,其中应包含一个strict-transport-security标签。如果此标记存在,那么您的HSTS标头现在已正确设置,并且您已成功关闭HTTPS重定向漏洞。

    小结

    从HTTP重定向到HTTPS是一种安全最佳实践。但是,没有任何技术是完美的,这种重定向可能会使您的网站更容易受到SSL攻击。

    考虑到这一点,让我们回顾一下如何修复“HSTS Missing From HTTPS Server”错误:

    1. 创建站点的手动备份。
    2. 设置HTTP到HTTPS重定向。
    3. 添加HSTS标头。
    4. 将您的网站提交到HSTS预加载列表。
    5. 验证您的strict-transport-security标头。
  • SSL证书的类型:哪一种适合您的网站?

    SSL证书的类型:哪一种适合您的网站?

    使用SSL证书保护的网站让访问者知道它是安全的。它还获得了搜索引擎的认可,确认您的网站可以安全浏览。因此,您必须为您的网站获取有效的SSL证书。

    SSL是Secure Sockets Layer的缩写,是一种安全协议,可通过Web服务器和Web浏览器之间的网络连接对数据进行身份验证和加密。 SSL证书可保护您的站点与来自恶意方的访问者之间的连接。 SSL证书有不同的类型、验证级别和价格标签。但哪种SSL最适合您的网站和业务?

    在本指南中,我们深入探讨了不同类型的SSL证书,以帮助您做出正确的决定。继续阅读!

      1. 何时以及为何需要SSL证书
      2. SSL证书的工作原理
      3. SSL证书的类型
      4. SSL验证级别
      5. 不同SSL证书的优缺点
    1. 如何选择正确的SSL证书
    2. 访客如何知道您的网站是否有SSL证书
    3. SSL证书的成本

    何时以及为何需要SSL证书

    无论您经营电子商务商店还是博客,SSL对网站来说都变得与开车前系好安全带一样重要。以下是您的网站需要SSL证书的三个主要原因:

    1. 数据保护和访客信任

    SSL证书的主要目的是确保用户和网络服务器之间交换的数据经过加密,并免受黑客、网络钓鱼和身份盗用等网络威胁。

    您不希望访问者在访问您的网站时收到“您的连接不是私密连接”警告。有效的SSL证书将帮助您避免此类错误。

    SSL的核心是向访问者表明他们可以安全地在您的网站上共享信用卡号、ID、电子邮件地址和密码等敏感信息。因此,SSL加强了您和您的客户/访客之间的信任。

    2. 认证和完整性

    当您访问一个网站时,您将如何确保它是正确的,而不是窃取您信息的欺骗?当涉及到网络安全时,身份验证是必不可少的,这就是 SSL 的用武之地。 SSL/TLS 验证网络服务器身份的真实性。

    安装SSL证书,您必须经过身份验证过程。换句话说,SSL证明您的网站确实是您的网站,而不是您公司的欺骗或假冒产品,使其成为抵御网络钓鱼网站的有效屏障。了解如何验证您的SSL证书。

    数据完整性是SSL/TLS的另一个重要优势。使用消息验证码 (MAC),SSL/TLS表明传输的数据不会以任何方式丢失或更改。发送的消息按原样接收。

    3. 提高搜索引擎排名

    为了让所有人都可以更安全地浏览网页,谷歌等搜索引擎已经打击了不安全的网站,并明确表示他们更喜欢SSL加密网站——HTTPS而不是HTTP 。 SSL将超文本传输协议 (HTTP) 转变为安全超文本传输协议 (HTTPS)。

    SSL现在是SEO排名信号。因此,如果您希望您的网站出现在Google的第一页上,那么拥有有效的SSL证书是必不可少的条件之一。

    SSL证书的工作原理

    我们已经确定SSL会加密并保护托管服务器与访问者的应用程序(Web浏览器或应用程序)之间的连接。

    SSL证书的工作原理

    SSL证书的工作原理 (来源:entrust.com

    如果您想知道这是如何工作的,我们将探索一个示例。

    以您的网站为例,假设它使用SSL证书进行保护。当一个人使用网络浏览器访问您的网站时,他们的浏览器将请求您网站的托管服务器进行身份验证。

    服务器将通过向浏览器发送其SSL证书的副本来进行响应。浏览器还将进行一些验证检查以验证SSL证书是否可信并向服务器发送信号。

    服务器将以数字方式响应以在您的网站和访问者的浏览器之间开始SSL加密会话。

    SSL证书的类型

    区分SSL证书的类型有两个不同的类别 – 域和子域的数量,以及证书的验证级别。因此,有四种不同的SSL证书类型:

    单域名SSL证书

    顾名思义,这种类型的证书保护单域名和该域上的所有页面。但是,它不会保护任何关联的子域。

    例如,如果您有域名www.wbolt.com的SSL证书,它还会覆盖与该域相关的所有页面,例如www.wbolt.com/resources 。但它不会涵盖任何子域,例如tool.wbolt.com

    通配符SSL证书

    与单域名SSL证书一样,通配符SSL证书仅保护单个域名。但是,它还涵盖与该单个域相关的任何子域(无限数量的子域)。单个通配符SSL证书可保护所有这些证书。

    多域SSL证书

    此证书的用途与通配符SSL证书完全相反,因为它保护多个域名,但不保护任何相关的子域。它也称为主题备用名称 (SAN) 和统一通信证书 (UCC)。

    多域通配符SSL证书

    多域名通配符SSL证书结合了多域名和通配符SSL证书的特性。换句话说,使用单个证书,您可以保护多个域名及其所有相关子域。

    SSL验证级别

    SSL证书验证级别由证书颁发机构 (CA) 分配,在颁发SSL证书之前验证您的业务真实性。

    SSL证书有三种不同的验证级别:

    域验证 (DV) SSL证书

    DV是最简单的SSL证书验证形式,仅适用于域所有权验证。它通常通过电子邮件验证完成,不需要CA进行任何进一步调查。这也是获取SSL证书最便宜、最快捷的方式。

    组织验证 (OV) SSL 证书

    在验证方面,OV是下一个级别。除了验证你的域时,CA也验证您的企业直接联系您或您的业务。 CA会验证您是否拥有该域以及它是否用于合法注册的企业。这些证书被认为是非常可靠的。

    扩展验证 (EV) SSL证书

    EV在商业网站中很典型,可提供最高级别的信任和可靠性。它涉及对您的业务进行全面的背景调查。获取此证书涉及CA的严格审查过程。

    在某些浏览器上,带有EV SSL证书的企业名称会突出显示。访问他们的网站时,它们将在域名旁边以绿色显示。

    SSL 证书类型 验证级别
    单域 DV或OV
    通配符 DV或OV
    多域 EV
    多域通配符 EV

    不同SSL证书的优缺点

    在安全性方面,使用SSL证书保护您的网站不会带来任何缺点。但是,每种类型的证书都有其优点和缺点,因此每种证书都适用于不同的目的或需求。

    让我们看看上面讨论的不同SSL证书的优缺点。

    从单域SSL证书开始,最显着的优势是它是最实惠的证书类型,涵盖了与域相关的所有页面。唯一的挫折是它不保护任何子域。通配符SSL证书更昂贵,但它涵盖了单个域、其所有相关页面以及无限数量的第一级子域。不幸的是,它没有涵盖第二级的任何子域。

    多域SSL证书同时覆盖多个域。尽管它们看起来很昂贵,但您只需购买一个涵盖您所有域的SSL证书,而不是为每个域获取SSL证书,从而使其更具成本效益。

    兼具两种类型的优势,多域通配符SSL证书在一级覆盖多达100个域和无限子域。它唯一的缺点是其高昂的价格标签。但是和多域SSL证书一样,Wildcard SSL对于大型网站或者企业来说是非常划算的。

    如何选择正确的SSL证书

    如图所示,SSL证书有不同的风格。如果您希望您的网站看起来合法并受到访问者的信任,但不确定哪种SSL证书将满足您的需求,我们将帮助您做出正确的选择。

    • 对于具有单个域的小型或个人网站,单域SSL证书更适合您,因为它经济实惠且可以胜任。
    • 如果您的企业网站有一个域,但有多个子域,那么通配符SSL证书是可行的方法,并且比为每个子域获取单独的SSL证书便宜得多。
    • 对于较大的网站或拥有多个域的企业(例如拥有多个品牌的公司,每个品牌都有自己的域),多域SSL证书是一个明智的选择。它将涵盖您的所有域,并且肯定比为每个域获取SSL证书便宜。
    • 如果您的组织想要节省时间和金钱,多域通配符SSL非常适合保护多个域以及无限数量的子域。

    为便于参考,这里有一个快速表格,概述了每种SSL证书类型的优点:

    SSL证书 价格 好处 缺点 最适合
    单域 最便宜最实惠 保护单个域的可负担性 不保护子域 单个域的小型网站
    通配符 比单域SSL更昂贵,但更具成本效益 在第一级保护无限子域 它仅涵盖一个子域级别 具有单个域和多个子域的中小型网站
    多域 昂贵的 使用单个证书保护多个域 必须在颁发此证书之前定义域 拥有多个域名的大型商业网站
    多域通配符 最贵,但也是最划算的 单个证书在第一级保护多个域和无限子域 昂贵且对域和子域的任何更改都需要重新颁发此证书 具有多个域和子域的大型网站/企业

    访客如何知道您的网站是否有SSL证书

    您的访问者可以快速了解SSL证书是否可以保护您的网站,以及您的SSL证书是否有效。我们会告诉你如何。

    查看闪电博主页的地址栏,你会看到一个小挂锁。这意味着我们的网站受SSL保护。

    如果您使用的是Google Chrome浏览器,请单击挂锁标志并选择“证书”。您现在将看到您需要了解的关于安装在闪电博网站上的SSL证书的所有详细信息:谁颁发了它,它属于谁,以及它的有效期。

    除了小挂锁标志外,您还会注意到地址栏中的URL以HTTPS开头(在某些浏览器上默认隐藏)。 HTTPS表示我们网站上的连接是安全的,并且它具有授权的SSL证书。

    wbolt-ssl

    HTTPS在浏览器地址栏中的位置

    您是否在网站上安装了SSL证书,但访问者遇到了NET::ERR_CERT_AUTHORITY_INVALID错误?无需惊慌 — 查看此详细教程以了解如何修复此错误。

    SSL证书的成本

    SSL 证书的费用根据证书类型、验证级别和购买地点(例如Comodo、VeriSign、GeoTrust等)的不同而有所不同。

    在投资高级或付费SSL证书时,DV和单域SSL证书的成本是最实惠的。

    随着您的业务需求的增长以及您在SSL阶梯上采取更高的步骤,您会发现通配符SSL证书的成本更高。相比之下,OV和EV SSL证书是最昂贵的,并且为组织和企业提供最高的加密。

    小结

    几乎每个网站都广泛采用SSL证书来保证安全的互联网连接。随着网络威胁的增加,难怪流行的搜索引擎严格执行它。

    您现在对不同类型的SSL证书及其各种验证级别有了清晰的了解。我们希望它能帮助您为您的网站选择最合适的SSL证书。

    使用SSL证书保护您的网站后,请执行SSL检查以验证一切正常。从HTTP迁移到HTTPS需要进行很多更改,因此还请阅读我们的HTTP到HTTPS迁移指南。

  • SSL的工作原理及其重要性

    SSL的工作原理及其重要性

    SSL代表安全套接字层。它是用于保护和验证Internet数据的重要协议。由于Encrypt All The Things和Google推动更广泛采用SSL之类的运动,SSL已成为网络圈子中的热门话题。但尽管如此,许多网站管理员仍然不确定SSL的工作原理以及它的重要性……甚至不确定SSL最初代表什么!

    虽然我们已经介绍了首字母缩略词的含义,但我们将在本条目中更深入地挖掘并告诉您SSL是什么,以及它如何使网络成为您和您网站访问者的更好场所。

    SSL代表什么?SSL的工作原理

    重申一下——SSL代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和Web服务器之间发送的数据的协议。这将为您和您网站的访问者带来更安全的网络。SSL与另一个首字母缩写词TLS密切相关。TLS是Transport Layer Security 的缩写,是原始SSL协议的继承者和更新版本。

    如今,SSL和TLS通常被称为一个组(例如 SSL/TLS)或可互换使用。例如,Let’s Encrypt(我们将在稍后详细讨论)广告提供“免费SSL/TLS证书”。但是您还会发现很多网站只是简单地讨论SSL证书,即使它们实际上是指TLS

    结合SSL和TLS的示例

    结合SSL和TLS的示例

    那么SSL最初从何而来,我们又是如何通过TLS走到今天的呢?SSL 1.0版是由Netscape在1990年代初期开发的。但由于安全漏洞,它从未向公众发布。SSL的第一个公开版本是1995年2月的SSL 2.0。虽然它是对未发布的SSL 1.0的改进,但SSL 2.0也包含自己的一组安全缺陷,这导致完全重新设计和随后发布的SSL 3.0版一年后。

    SSL 3.0版是最后一个公开版本,并在1999年引入TLS作为替代品时黯然失色。此时,SSL 3.0已被弃用且不再被视为安全,因为它容易受到POODLE攻击。至于TLS,它现在在TLS 1.3上,它提供了许多性能和安全性的改进。

    那为什么我们不都使用TLS证书呢?

    你很可能是。尽管网络社区为了方便起见通常将它们称为SSL证书,但证书实际上并不依赖于其名称中的特定协议。相反,使用的实际协议由您的服务器决定。这意味着即使您认为您安装了称为SSL证书的东西,您实际上很可能正在使用更新和安全的TLS协议。

    但是,在网络社区采用 TLS 术语之前,您可能会继续看到此类证书,为简单起见,这些证书通常称为 SSL 证书。

    HTTPS和SSL如何连接?

    创建Internet的人喜欢他们的首字母缩略词 – 在谈论SSL/TLS时您经常会看到的另一个术语是HTTPS。 HTTP(不带S)代表超文本传输​​协议。

    HTTP及其后继HTTP/2都是支持信息在Internet上传输的应用程序协议。它们本质上是Internet上数据通信的基础。当您添加回S时,它只是成为超文本传输​​协议安全(或HTTP over TLS或HTTP over SSL)。

    本质上,SSL/TLS保护通过HTTP发送和接收的信息。这有很多好处……

    使用SSL/TLS的好处是什么?

    许多网站管理员错误地假设SSL/TLS只为处理信用卡或银行详细信息等敏感信息的站点提供好处。虽然SSL/TLS对这些站点来说肯定是必不可少的,但它的好处绝不仅限于这些领域。

    SSL/TLS的主要优点之一是加密。每当您或您的用户在您的站点上输入信息时,该数据在到达最终目的地之前都会经过多个接触点。如果没有SSL/TLS,这些数据会以纯文本形式发送,恶意行为者可以窃听或更改这些数据。SSL/TLS提供点对点保护,以确保数据在传输过程中是安全的。即使是WordPress登录页面也应该加密!如果SSL证书存在但无效,您的访问者可能会遇到“您的连接不是私密连接”错误。

    另一个主要好处是身份验证。有效的SSL/TLS连接可确保将数据发送到正确的服务器和从正确的服务器接收数据,而不是恶意的“中间人”。也就是说,它有助于防止恶意行为者错误地冒充站点。

    SSL/TLS的第三个核心优势是数据完整性。SSL/TLS连接通过包含消息身份验证代码或MAC,确保在传输过程中不会丢失或更改数据。这可确保接收发送的数据而不会进行任何更改或恶意更改。

    除了加密、真实性和完整性之外,还有其他技术较少的好处,例如:

    如何判断网站是否使用SSL/HTTPS?

    查看网站是否使用SSL/TLS的最简单方法是查看您的浏览器。大多数浏览器用绿色挂锁和/或消息标记安全连接。例如,在Google Chrome中,您可以查找绿色挂锁和安全消息:

    Google Chrome如何显示HTTPS

    Google Chrome如何显示HTTPS

    在 Firefox 中,您只会看到一个挂锁:

    SSL的工作原理及其重要性插图3

    Firefox如何显示HTTPS

    在Microsoft Edge中,您实际上看不到颜色,而是一个简单的灰白色挂锁。

    Edge如何显示HTTPS

    Edge如何显示HTTPS

    谷歌会惩罚不使用SSL的网站吗?

    最近,谷歌在谷歌浏览器中针对未能安装SSL证书的网站推出了一套越来越严厉的处罚/警告。这些处罚始于2017年1月,在没有SSL证书的情况下要求提供信用卡详细信息或密码的页面上引入了不安全警告:

    2017年10月起Chrome不安全警告 

    2017年10月起Chrome不安全警告

    这一变化是谷歌推动增加SSL和HTTPS使用的第一个推动力。但最近,他们进一步加大了力度。

    2017年10月增加的不安全警告

    2017年10月,谷歌推出了更加激进的通知。从Chrome 62(2017年10月17日发布)开始,Google添加了不安全警告:

    • 用户输入任何类型数据的所有HTTP页面,包括像搜索框这样简单的内容。该警告不会出现在初始页面加载时,但会在用户开始在字段中输入数据时出现
    • Chrome隐身模式下的所有HTTP页面

    Chrome不安全警告

    Chrome不安全警告

    谷歌只会变得更具侵略性

    Google的长期计划 是最终将所有HTTP页面标记为Not secure。这意味着即使您不要求用户填写任何类型的表单字段,无论如何您最终都会收到警告。因此,您现在就开始计划迁移到SSL/TLS和HTTPS非常重要。

    2020年,当站点使用TLS 1.0或TLS 1.1(旧版本)时,Chrome开始显示ERR_SSL_OBSOLETE_VERSION警告通知。

    如何在您的网站上安装SSL证书

    许多主机可以轻松安装免费的SSL/TLS证书。一般个人站长最有可能使用名为Let’s Encrypt的服务,该服务提供免费的SSL/TLS证书。你可以查看详细的Let’s Encrypt证书申请及安装教程

    如果您的主机不提供免费SSL证书,或者您想要其他类型的SSL证书,您也可以从第三方提供商处购买自己的证书

    安装SSL证书后的操作

    是的 – 在安装SSL证书后,您需要执行技术和非技术操作。首先,在技术层面上,将所有HTTP流量重定向到HTTPS很重要。您还应该确保您没有通过HTTP加载任何资产。通常,这将是您自己的图像或您拉入的外部内容,例如脚本或外部广告服务。这有助于您避免混合内容警告

    除了这两个技术细节之外,您可能还需要执行以下任务,具体取决于您使用的工具:

    • 在Google网站管理员工具中添加您网站的HTTPS版本。
    • 确保将Google Analytics或其他跟踪脚本设置为使用HTTPS。
    • 确保您没有收到任何与SSL连接相关的错误消息。

    总而言之,SSL/TLS是创建安全、可靠的网络的重要协议。现在您已经了解SSL的工作原理,如果您还没有进行转换,我们鼓励您考虑安装SSL/TLS证书并将您的站点移至HTTPS。

    我们有一个非常详细的HTTP到HTTPS迁移教程,请确保您阅读它并按照步骤操作!

  • WordPress网站从HTTP迁移到HTTPS深入指南

    WordPress网站从HTTP迁移到HTTPS深入指南

    2018年7月,谷歌浏览器开始将所有非HTTPS网站标记为“不安全”,无论它们是否收集数据。从那时起,HTTPS变得比以往任何时候都更加重要!

    在今天的文章中,我们将深入探讨从HTTP到HTTPS的迁移,并分享实用技巧,以期使您的WordPress网站的过渡尽可能顺利。对于WordPress网站所有者来说,如果您能积极主动,那总是很棒的。

    由于新的网络协议、SEO优势以及更准确的推荐数据,现在正是将您的WordPress网站迁移到HTTPS的最佳时机。在下面了解更多原因和方法。

    1. 什么是HTTPS?
    2. 为什么要使用HTTPS?
    3. HTTP到HTTPS迁移指南

    什么是HTTPS?

    HTTPS(安全超文本传输​​协议)是一种允许您的浏览器或Web应用程序与网站安全连接的机制。HTTPS是帮助确保您的浏览安全的措施之一。

    这包括登录您的银行网站、获取信用卡信息,甚至登录您的 WordPress 网站的后端。WordPress网站上的HTTPS要求您拥有用于加密的SSL证书。这确保了任何数据都不会以纯文本形式传递。

    根据Builtwith的数据,截至2022年3月,前10,000个网站中有73.08%使用HTTPS。这比2018年2月的49.8%有所上升:

    热门网站的HTTPS使用情况

    热门网站的HTTPS使用情况

    MozCast报告称,截至2022年5月,超过98.9%的搜索查询是通过HTTPS进行的,高于2016年1月的26%。这表明许多网站正在从HTTP迁移到HTTPS。

    甚至谷歌也在推动其产品和服务的100%加密标记。截至2022年5月,大约95%的Google流量是通过HTTPS传输,高于2013年12月的48%。

    MozCast HTTPS查询

    MozCast HTTPS查询

    根据Firefox遥测数据和Let’s Encrypt统计数据,超过78%的页面加载现在是HTTPS。

    为什么要使用HTTPS?

    WordPress网站所有者应该关心HTTPS并考虑现在而不是以后从HTTP迁移到HTTPS的原因有很多。

    1. 安全

    当然,HTTPS的最大原因是增加了安全性。您现在通过从HTTP迁移到HTTPS,通过加密的SSL/TLS连接为您的网站提供服务。这意味着数据和信息不再以纯文本形式传递。对于处理信用卡信息的电子商务网站,这是必不可少的。技术上没有法律要求,但您作为企业有责任保护您的客户数据。

    这也适用于您的WordPress登录页面或博客。如果您通过HTTP运行多作者WordPress网站,则每次有人登录时,该信息都会以纯文本形式传递给服务器。HTTPS对于维护安全的网站和浏览器连接至关重要。这样,您可以更好地防止黑客访问您的网站。

    2. 搜索引擎优化

    Google已经正式表示HTTPS是一个排名因素。虽然这只是一个很小的排名因素,但你们中的大多数人可能会利用在SERP中获得的任何优势来击败竞争对手。

    由于谷歌推动大家将HTTP重定向到HTTPS,你可以打赌这个排名因素的权重在未来很可能会增加。Semrush的一项研究发现, Google上98%的表现最佳的精选片段内容使用HTTPS。

    3. 信任和信誉

    根据最近的研究,大多数互联网用户都担心他们的数据如何在网上被截获或滥用。

    HTTPS可以通过建立我们所说的SSL信任来帮助您的业务。通过查看URL旁边的挂锁图标,客户会更加安心,因为他们知道他们的数据更安全。

    4. 推荐数据

    这个原因适用于所有的营销人员。如果您使用Google Analytics,您可能对推荐数据很熟悉。许多人没有意识到HTTPS到HTTP推荐数据在Google Analytics中被阻止。那么数据会发生什么变化呢?其中大部分只是与“直接流量”部分混为一谈。如果有人从HTTP转到HTTPS,则仍会传递引荐来源网址。

    这也很重要,因为如果您的引荐流量突然下降,但直接流量上升,则可能意味着您的较大引荐来源之一最近已迁移到HTTPS。反之亦然。查看Moz关于直接流量的更深入指南。

    5. Chrome警告

    截至2018年,Chrome 68及更高版本已将所有非HTTPS网站标记为“不安全”,即使它们不收集数据:

    Chrome上的连接不安全

    Chrome上的连接不安全

    2021年,对于不完整的URL,浏览器开始默认使用HTTPS。例如,如果用户键入“domain.com”,Chrome将自动使用“https://domain.com”。如果HTTPS由于缺少SSL/TLS而失败,它将恢复为HTTP。

    Chrome拥有超过77%的浏览器市场份额,因此这将影响您的许多访问者。您还可以在Google Analytics中的Audience >Technology >Browser & OS下查看访问者正在使用哪些浏览器:

    在Google Analytics中检查浏览器

    在Google Analytics中检查浏览器

    谷歌向访问者明确表示您的WordPress网站可能无法在安全连接上运行。以下是Google关于如何避免警告的一些提示。

    Firefox也紧随其后,在2017年发布了Firefox 51,为收集密码的非安全站点显示了一个带有红线的灰色挂锁。当然,如果您将整个站点迁移到HTTPS,那么您不必担心这一点:

    您的连接不是私密连接

    您的连接不是私密连接

    如果您尚未迁移到HTTPS,您可能还会开始从Google Search Console收到以下警告:

    致: http://www.domain.com的所有者

    以下URL包含将触发新Chrome警告的密码或信用卡详细信息的输入字段。查看这些示例以查看这些警告将出现在何处,您可以采取措施帮助保护用户的数据。该列表并不详尽。

    http://www.domain.com

    新警告是长期计划的第一阶段,将通过非加密HTTP协议提供的所有页面标记为“不安全”。

    6. 性能

    最后但同样重要的是,由于名为HTTP/2的协议,那些通过HTTPS运行经过适当优化的站点通常可以看到速度提高。

    由于浏览器支持,HTTP/2需要HTTPS。性能提升有多种原因,例如HTTP/2能够支持更好的多路复用、并行性、Huffman编码的HPACK压缩、ALPN扩展和服务器推送。过去在HTTPS上运行的TLS开销相当大,但现在要少得多。

    TLS 1.3也发布了,它可以进一步加快HTTPS连接!

    同样重要的是要注意,域分片和连接等Web性能优化可能会损害您的性能。这些现在已经过时,并且在大多数情况下不应再使用。

    默认情况下,网络上的所有内容都应加密。– Jeff Atwood,Stack Overflow的联合创始人

    HTTP到HTTPS迁移指南

    是时候进入有趣的部分了:将您的WordPress网站从HTTP迁移到HTTPS。让我们首先回顾一些基本要求,以及一些需要注意的事项。

    • 您将需要SSL证书。我们将在下面对此进行更详细的介绍。
    • 仔细检查以确保您的WordPress主机和CDN提供商支持HTTP/2。
    • 您需要留出大量时间将HTTP重定向到HTTPS。迁移不是5分钟就能完成的事情。
    • 仔细检查以确保您使用的所有外部服务和脚本都有可用的HTTPS版本。
    • 重要的是要知道,除非您使用支持分享恢复的插件,否则您将失去所有文章和页面上的社交分享计数。这是因为您的分享计数基于查看HTTP版本的API,并且您无法控制3rd方社交网络。
    • 根据您网站的大小,Google可能需要一段时间才能重新抓取所有新的HTTPS页面和文章。在此期间,您可能会看到流量或排名的变化。
    • 不要忘记本地引用

    我们建议在开始之前关闭CDN集成并禁用任何缓存插件,因为这些会使事情复杂化。

    1. 选择SSL证书

    如果您没有SSL证书,您需要做的第一件事就是购买SSL证书。您可以选择三种主要类型的证书:

    • 域验证:单个域或子域(电子邮件或DNS验证),在几分钟内发布。这些通常可以低至每年9美元购买。
    • 业务/组织验证:单个域或子域需要提供更高级别的安全/信任的业务验证,在1-3天内发布。
    • 扩展验证:单个域或子域需要提供更高级别的安全/信任的业务验证,在2-7天内发布。

    Google建议使用2048位或更高的密钥证书。您可以从ComodoDigiCertGeoTrustThawteRapid SSLTrustwave购买证书 。还有更便宜的替代品,例如GoGetSSLNamecheap和GoDaddy。

    Let’s Encrypt还提供了一种获取免费SSL证书的方法。请咨询您的WordPress主机和CDN提供商,看看他们是否有Let’s Encrypt集成。您还可以按照Certbot指南了解如何手动安装它们。Let’s Encrypt证书每90天过期一次,因此必须有一个自动化系统。

    2. 安装自定义SSL证书

    如果您购买了SSL证书,则需要在您的WordPress网站上安装SSL证书。在通过供应商设置的证书时,系统会要求您提供服务器类型。如果您的网络服务器是Nginx。如果该选项不可用,那么“其他 ”也可以使用。

    SSL提供者将需要一个CSR代码来创建/签署证书文件。如需生成CSR代码和RSA密钥,请填写以下表格:https://www.ssl.com/online-csr-and-key-generator/

    我们建议填写每个字段,但至少应填写以下内容(如下面的屏幕截图所示):

    • 通用名称(域名)
    • 电子邮件地址
    • 组织
    • 城市/地区
    • 州/县/地区
    • 国家

    注意:对于通用名称字段,如果您正在生成通配符证书,则需要输入您的域名,例如 *.domain.com。

    生成CSR表格

    生成CSR表格

    该表单将生成您的私钥文件和CSR。确保保存它们,因为没有它们,证书将无法使用:

    CSR和私钥

    CSR和私钥

    接下来,使用您的SSL提供商上传您的CSR以重新生成您的SSL证书 (.cert)。

    然后,您需要去您的WordPress主机并给他们证书和私钥。如果您是宝塔用户,您可以登录仪表板-网站,然后找到您需要配置SSL的网站,然后点击该网站对应的SSL证书操作项。

    选择其他证书,然后,您就可以在那里添加您的私钥和证书:

    添加自定义SSL

    添加自定义SSL

    完成后,选择保存退出即可。

    3. 验证您的SSL证书

    现在您已经安装了SSL证书,您需要对其进行验证以确保一切设置正确。一种快速简便的方法是使用Qualys SSL Labs提供的免费SSL检查工具。如果一切都正确,你应该在测试中获得A字母等级,如下图所示: 检查SSL证书等级

    检查SSL证书等级

    查看关于如何执行SSL检查的更深入的教程。

    4. 将HTTP重定向到HTTPS

    验证SSL证书后,接下来必须将所有HTTP流量永久重定向到HTTPS。在WordPress中将HTTP重定向到HTTPS时有几个选项。

    这使您可以在服务器级别单击几下将HTTP流量自动重定向到HTTPS。你也可以在你的网络服务器的配置中手动完成,或者使用免费的WordPress插件。

    注意:我们的示例都包含一个301重定向指令,这是在SEO方面实现它的正确方法。使用不同类型的重定向可能会损害您的排名。同样重要的是要知道301重定向可能不会通过100%的链接权重,即使Google可能会说他们会这样做。查看Cyrus在Moz的这篇关于HTTPS迁移和301重定向的文章。

    选项 1:在Nginx中将HTTP重定向到HTTPS

    如果您的Web服务器正在运行Nginx,您可以通过将以下代码添加到Nginx配置文件来轻松地将HTTP重定向到HTTPS:

    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }

    这是重定向在Nginx上运行的WordPress的推荐方法。

    在Apache中将HTTP重定向到HTTPS

    如果您的Web服务器正在运行Apache,您可以通过将以下代码添加到您的.htaccess文件来将所有HTTP流量重定向到HTTPS:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    这是重定向在Apache上运行的WordPress的推荐方法。

    选项 2:使用Really Simple SSL插件将HTTP重定向到HTTPS

    您必须从HTTP重定向到HTTPS的第三个选项是使用免费的Simple SSL插件: Really Simple SSL

    Really Simple SSL

    我们不建议将此方法作为永久解决方案,因为第三方插件可能会引入另一层问题和兼容性问题。这是一个很好的临时解决方案,但您应该更新硬编码的HTTP链接,我们将在下一步中向您展示。

    实施HSTS标头(可选)

    HSTS(HTTP严格传输安全)是您添加到Web服务器的安全标头,当站点通过HTTPS运行时,它会强制浏览器使用安全连接。这有助于防止中间人攻击 (MitM) 和 cookie 劫持。您可以将上述301重定向与HSTS标头一起使用。查看我们关于如何添加HSTS的深入文章。

    5.检查重定向过多

    添加从HTTP到HTTPS的重定向后,您应该仔细检查以确保没有太多重定向。这个问题很常见,会影响您的WordPress网站的速度。您可以使用Patrick Sexton的重定向映射器工具快速查看您的网站上有多少重定向。

    下面您将看到一个设置不正确的重定向示例。这在使用重定向映射器时很容易发现:

    重定向设置不正确

    重定向设置不正确

    您可以看到在www和非www版本上都发生了重复的HTTPS重定向。

    以下是正确设置重定向的示例:

    重定向设置正确

    重定向设置正确

    如您所见,只有一个重定向。您可以查看我们关于WordPress重定向和最佳实践的深入文章,以获得更快的性能。

    现在您有了重定向,是时候修复所有那些硬编码的HTTP URL。通常,不建议对URL进行硬编码。但是,随着时间的推移,您很可能会(我们都这样做)。以下是将您的HTTP链接更新为HTTPS的一些选项。

    选项 1:Better Search Replace插件

    您可以使用一个名为Better Search Replace的免费插件,由WordPress团队在Delicious Brains提供:

    Better Search Replace

    Better Search Replace

    该插件可以免费使用。在您的站点上安装并激活后,您可以导航到工具 >Better Search Replace以开始使用它。

    选项 2:interconnect/it Search Replace DB PHP Script

    运行WordPress搜索和替换的第二种选择是使用来自互连/它的免费PHP脚本,称为Search Replace DB。对于任何HTTP到HTTPS的迁移,这是我们最喜欢的工具之一。

    重要的!如果您不知道自己在做什么,使用此脚本可能会破坏您的WordPress网站。如果您对此感到不自在,请先咨询开发人员或您的网络托管服务商。

    要使用该脚本,只需下载zip文件,提取名为search-replace-db-master的文件夹,然后将其重命名为其他名称。在我们的示例中,我们将其重命名为update-db-1551。然后,通过FTP、SFTP或SCP将其上传到Web服务器的公共目录。这通常与包含/wp-content文件夹的目录相同。

    然后在浏览器中导航到您的私密文件夹,例如https://domain.com/update-db-1551:

    互连搜索和替换脚本

    互连搜索和替换脚本

    该脚本将自动尝试查找并填充数据库字段,但您必须检查详细信息是否正确以及它是否适用于您希望执行搜索/替换操作的数据库。您可以先单击Dry Run以查看它将更新/替换的内容。然后,当您准备好时,单击Live Run, 它将执行数据库更新和 WordPress 搜索和替换。

    HTTPS 迁移的一个示例是将“http://yourdomain.com”替换为“https://yourdomain.com”。

    搜索替换选项

    搜索替换选项

    由于安全原因,完成后删除此脚本也很重要。您可以单击“Delete me”按钮。如果您不这样做,它可能会使您的网站容易受到攻击。

    还建议您仔细检查您的Web服务器并确认文件夹/脚本已被完全删除。注意:此脚本将更新您数据库中的所有条目,包括您的WordPress站点URL、页面和文章上的硬编码链接等。

    如果您在wp-config.php文件中硬编码您的主页、站点或WP内容区域,请确保将它们更新为HTTPS:

    define(‘WP_HOME’, ‘https://yourdomain.com’);
    define(‘WP_SITEURL’, ‘https://yourdomain.com’);
    define( ‘WP_CONTENT_URL’, ‘https://yourdomain.com/wp-content’ );
    define(‘WP_HOME’, ‘https://yourdomain.com’);
    define(‘WP_SITEURL’, ‘https://yourdomain.com’);
    define( ‘WP_CONTENT_URL’, ‘https://yourdomain.com/wp-content’ );
    define('WP_HOME', 'https://yourdomain.com');
    define('WP_SITEURL', 'https://yourdomain.com');
    define( 'WP_CONTENT_URL', 'https://yourdomain.com/wp-content' );

    如果您有CDN并使用CNAME,例如cdn.domain.com,您可能还想再次运行上述脚本以查找任何硬编码的URL http://cdn.domain.com并将它们替换为https://cdn.domain.com。

    选项 3:使用WP-CLI搜索和替换

    您还可以使用WP-CLI为那些不喜欢离开命令行的精通技术的人和开发人员更新您的链接。我们建议查看此高级搜索并替换WP-CLI指南

    7. 更新自定义脚本和外部库

    现在您已经更新了旧的硬编码URL,您将需要检查您可能已添加到页眉、页脚等的任何自定义脚本或外部库。这可能包括Google jQuery、Font Awesome、CrazyEgg、AdRoll、Facebook , Hotjar等

    对于Google jQuery,您只需将其更新为指向HTTPS版本:

    <script src=“https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js”></script>
    <script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js”></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    

    每个提供商和服务都应该有一个可以切换到的HTTPS版本。

    8. 将CDN从HTTP迁移到HTTPS

    接下来,如果您使用的是CDN,您还需要将其迁移到HTTPS。否则,您将在WordPress网站上遇到混合内容警告问题。

    Cloudflare CDN替代品

    如果您正在寻找Cloudflare CDN替代品,有很多选择。最受欢迎的一种是KeyCDN。

    这种高性能CD​​N通过将您的网站内容缓存在全球服务器上,加快了向访问者交付网站内容的速度。它还提供针对DDoS攻击和其他威胁的安全性和保护。

    另外两个选项是Amazon CloudFront, 它是Amazon Web Services (AWS) 的一部分,以及Sucuri,它有助于优化网站性能和速度。它具有广泛的安全功能。

    以下是一些有关为不同的第三方CDN提供商安装和设置SSL的有用链接和教程。

    注意:有些甚至集成了Let’s Encrypt,这意味着SSL是免费的。如果您遇到问题,您可以随时咨询您的CDN提供商,以帮助您完成HTTP到HTTPS的迁移。

    更新CDN后,您需要确保在用于集成的任何WordPress插件中更新它。在下面的示例中,我们使用的是CDN Enabler

    将CDN更改为HTTPS

    将CDN更改为HTTPS

    我们将通过HTTP的URL翻转为HTTPS,然后在底部启用CDN HTTPS选项。完成后,选择保存更改 按钮。

    9. 检查您的网站是否有混合内容警告

    接下来,您将需要检查您的WordPress网站以确保您没有收到混合内容警告。加载HTTPS和HTTP脚本或内容时会出现这些警告。你不能同时加载两者。

    当您迁移到HTTPS时,一切都需要通过HTTPS运行。Wired记录了他们从HTTP到HTTPS的过渡以及他们遇到的一个障碍:

    迁移到HTTPS的最大挑战之一是准备我们所有的内容以通过安全连接交付。如果页面通过HTTPS加载,则所有其他资产(如图像和Javascript文件)也必须通过HTTPS加载。我们看到大量关于这些“混合内容”问题的报告,或者在安全的HTTPS页面上下文中加载不安全的HTTP资产的事件。为了正确地进行部署,我们需要确保混合内容问题更少——确保我们尽可能安全地交付WIRED.com的内容。

    下面是一些示例,说明如果您不修复这些警告,浏览器会发生什么。

    Chrome混合内容警告示例

    下面是当混合内容警告触发时Chrome中发生的情况的示例:

    Chrome混合内容警告

    Chrome混合内容警告

    Firefox混合内容警告示例

    以下是Firefox在混合内容警告触发时发生的情况的示例:

    Firefox混合内容警告

    Firefox混合内容警告

    Internet Explorer混合内容警告示例

    IE混合内容警告

    IE混合内容警告

    下面是一个示例,说明当混合内容警告触发时Internet Explorer中发生的情况:

    如您所见,IE可能是最糟糕的一种,因为它会破坏页面的呈现,直到单击弹出窗口为止。

    JitBit有一个很棒的免费小工具,叫做SSL Check,您可以运行它来快速扫描您的网站或URL以查找不安全的内容。该工具将抓取您的HTTPS WordPress站点并搜索将在浏览器中触发警告消息的非安全图像、脚本和CSS文件。每个网站抓取的页面数量限制为200个。

    您还可以使用Chrome DevTools通过查看网络请求面板来快速检查任何页面。安全面板实际上也非常有用。您可以立即看到任何不安全的来源,然后单击请求以查看它们的来源:

    在Chrome Devtools中检查HTTPS

    在Chrome Devtools中检查HTTPS

    还有一个名为HTTPS Checker的桌面软件 ,您可以安装它来扫描您的站点:

    HTTPS检查器软件

    HTTPS检查器软件

    经过重大更改后,它可以帮助您检查“不安全”的警告和内容。它适用于Windows、Mac和Ubuntu。免费计划允许您检查多达100页。

    10. 更新谷歌搜索控制台配置文件

    现在您的WordPress网站已在HTTPS上启动并运行(希望没有警告),是时候深入研究营销方面了。其中一些非常重要,所以不要跳过它们!

    您首先要为HTTPS版本创建一个新的Google Search Console配置文件。

    在GSC中添加HTTPS属性

    在GSC中添加HTTPS属性

    创建新的HTTPS版本后,您需要重新提交站点地图文件。新的HTTPS版本:

    HTTPS站点地图文件

    HTTPS站点地图文件

    如果您有来自不良反向链接的拒绝文件或受到处罚,您将需要重新提交。如果您现在不这样做,您可能会永久损害您的网站。

    转到Google的Disavow Tool并单击您的原始HTTP配置文件。下载拒绝文件(如果存在)。然后返回工具并在HTTPS版本下提交您的拒绝文件。

    注意:完成所有这些操作后,您可以安全地删除Google Search Console中的HTTP配置文件。

    11. 必应网站管理员工具

    Bing Webmaster Tools与Google Search Console略有不同:

    必应网站管理员工具HTTPS

    必应网站管理员工具HTTPS

    您无需创建新的HTTPS配置文件。相反,您可以只提交新创建的HTTPS站点地图。

    12.谷歌分析

    接下来,您需要更新您的Google Analytics(分析)媒体资源和数据视图。这不会影响您的分析数据:它只会在将您的网站链接到Google Search Console等时有所帮助。

    要更新您的属性,请单击您的域属性设置,然后在默认URL下将其更改为HTTPS://版本:

    将Google Analytics(分析)媒体资源更新为HTTPS

    将Google Analytics(分析)媒体资源更新为HTTPS

    要更新您的视图,请单击您的域视图设置。在网站的URL下,将其更改为HTTPS://版本:

    将Google Analytics(分析)视图更新为HTTPS

    将Google Analytics(分析)视图更新为HTTPS

    将Google Analytics链接到GSC

    将Google Analytics链接到GSC

    您还需要将您在第8步中创建的新创建的Google Search Console配置文件与您的Google Analytics帐户重新关联。为此,请点击您域的属性设置,然后选择Adjust Search Console

    然后,您可以链接新的HTTPS GSC配置文件。将这些链接在一起可以使搜索查询数据流入您的Google Analytics(分析)帐户。

    13. YouTube频道

    如果您有YouTube频道,您需要在Google Search Console中将您的网站与新的HTTPS版本重新关联。否则,您将收到有关HTTPS链接无效的注释和其他消息的错误。

    在您的YouTube仪表板中,单击您的频道,然后进入Advanced。接下来,将您的域更改为新的HTTPS版本,然后单击Add。您可能必须删除旧的,然后重新添加它。然后,您必须通过进入Google Search Console、导航到该站点的消息并选择Approve来批准它。

    14. 杂项

    当涉及到从HTTP到HTTPS的迁移时,就是这样!这里还有一些您还想更新的杂项。其中一些可能适用也可能不适用,具体取决于您使用的内容。

    • 确保检查您的robots.txt是否可访问且正常工作。
    • 确保所有规范标签都指向HTTPS版本(如果您按照上面的第3步操作,这应该已经完成​​)。
    • 如果您运行诸如Disqus之类的评论插件,则必须将您的Disqus评论从HTTP迁移到HTTPS。
    • 在您的电子邮件营销软件中更新您的URL
    • 更新PPC广告网址:AdWords、Bing Ads、AdRoll、Facebook Ads等。
    • 更新社交媒体链接(Facebook、Twitter、Pinterest、Google+等)

    小结

    HTTPS不仅仅是Google排名因素。这是一个重要的安全协议,有助于保护您的网站和访问者免受攻击。

  • 如何为WordPress网站正确地配置Cloudflare

    如何为WordPress配置Cloudflare

    通过在您的站点前充当反向代理,Cloudflare是一种一体化的安全和性能产品,被全球超过12%的网站使用。作为WordPress 用户,将Cloudflare添加到您的网站有助于提高网站性能并减少恶意机器人和黑客的影响。

    正确配置后,对您站点的所有请求将首先到达Cloudflare服务器,然后该服务器将确定是否应将请求转发到源服务器、从缓存中提供服务、阻止或使用自定义规则进行处理。

    在本指南中,我们将深入探讨WordPress的最佳Cloudflare设置,讨论缓存和安全设置,并向您展示如何为WordPress多站点安装配置Cloudflare 。

    1. 如何为WordPress配置Cloudflare
    2. Cloudflare WordPress插件
    3. WordPress的Cloudflare自动平台优化
    4. Cloudflare Argo和Railgun
    5. 如何为WordPress多站点配置Cloudflare

    如何为WordPress配置Cloudflare

    Cloudflare提供了多种安全和性能优势,但并非所有这些优势都与WordPress完全兼容。让我们深入了解Cloudflare的设置,以确定适合您的WordPress网站的最佳功能。

    1. SSL
    2. 速度
    3. 缓存
    4. 防火墙

    SSL

    Cloudflare支持四种SSL/TLS加密模式——Off, Flexible, Full和Full (Strict)。

    • Off –不加密。
    • Flexible –仅加密浏览器和Cloudflare之间的连接。
    • Full –端到端加密,但允许在源服务器上使用自签名证书。
    • Ful (Strict) –端到端加密,需要来自Cloudflare的免费原始证书或来自受信任CA(证书颁发机构)的证书。我们建议使用Full (Strict)  SSL模式以获得最大的安全性。

    对于希望在其WordPress网站上使用Cloudflare的用户,我们建议在宝塔面板中生成免费的Let’s Encrypt SSL证书,并在Cloudflare中使用Full或Full (Strict) 选项。

    或者,您还可以生成Cloudflare原始证书以安装在您的原始服务器上。如果您的主机不提供免费的SSL证书,则在您的服务器上安装Cloudflare原始证书将允许您使用Full (Strict) SSL模式。

    如果您使用在子域上托管站点,而根域使用Cloudflare的Flexible SSL,则可以使用Cloudflare页面规则强制子域使用Full或Full (Strict)  SSL。

    为具有Cloudflare页面规则的子域启用Full (Strict)  SSL

    为具有Cloudflare页面规则的子域启用Full (Strict)  SSL

    此选项允许您使用Cloudflare的Flexible SSL,同时确保子域的Cloudflare Full (Strict) SSL。

    始终使用HTTPS

    我们建议启用此选项以自动将所有HTTP请求转发到HTTPS

    HSTS

    HSTS代表“HTTP Strict Transport Security”,用于强制Web浏览器使用安全的HTTPS连接。在Cloudflare上启用HSTS可确保HTTP请求永远不会到达您的源服务器。如果您的站点已设置为使用HTTPS,我们建议您也在源服务器上配置HSTS

    最低TLS版本

    TLS(传输层安全性)是一种加密协议,允许通过网络安全传输数据。默认情况下,Cloudflare为协议版本设置TLS 1.0。某些安全标准(例如 PCI DSS 3.2)需要更新版本的TLS协议以实现合规性。如果您的站点需要某个TLS版本,您可以通过转到SSL/TLS > Edge Certificates > Minimum TLS Version来更改设置。

    自动HTTPS重写

    此功能检查HTML代码中的HTTP资源URL以查看它们是否可通过HTTPS访问。如果是这样,它们将使用HTTPS变体自动重写。自动HTTPS重写对于确保没有混合内容错误的安全浏览体验非常有用。

    速度(Speed)

    大多数与性能相关的Cloudflare设置,例如资产缩小和图像优化,都可以在“Speed”选项卡中找到。

    图像大小调整(仅限商业计划)

    Cloudflare的图像大小调整功能仅适用于商业计划用户。在您的WordPress主题中正确实施后,此功能可用于将图像缩略图生成offload到Cloudflare。与WordPress中的内置缩略图生成功能相比,这有几个好处。

    对于动态生成图像大小的站点,使用Cloudflare的图像大小调整功能可以降低CPU使用率——这允许您的站点在不增加CPU资源的情况下为更多并发用户提供服务。Cloudflare图像大小调整还有助于减少磁盘空间使用,因为缩略图不必存储在服务器上。

    Cloudflare图像大小调整通过在图像前添加端点来工作。请看下面的示例,该示例显示了该功能的工作原理。

    原始图片网址

    https://yourdomain.com/wp-content/uploads/2020/01/picture.jpg

    调整大小的图像URL

    https://yourdomain.com/cdn-cgi/image/fit=contain,format=auto,metadata=none,onerror=redirect,quality=70,width=720/https://yourdomain.com/wp-content/uploads/2020/01/picture.jpg

    可以调整“宽度”参数以动态生成不同的缩略图大小,而无需在源服务器上增加任何额外的资源负载。如果您正在寻找类似于Cloudflare的图像大小调整功能的独立服务,Imgix和Cloudinary是不错的选择。

    不要忘记查看我们关于优化网络图像的深入指南。

    Polish(仅限专业版)

    Cloudflare Polish是一种图像优化服务,可自动压缩JPG、PNG、GIF和其他图像文件。图像在Cloudflare边缘处理,这意味着托管WordPress站点的服务器没有性能负担。Polish还支持Google的WEBP格式 ——这意味着优化的WEBP图像将自动提供给支持该格式的Chrome、Brave和其他浏览器。

    出于几个原因,Polish是WordPress网站的一项有用功能。如果您使用的是ShortPixelImagify等图像优化插件,Polish可以显着降低服务器的CPU使用率——这可以为访问者带来更稳定的浏览体验。由于Polish的图像是在服务器外存储和缓存的,因此您不必担心用尽磁盘空间来存储图像的WEBP版本。

    Auto Minify

    Cloudflare的Auto Minify功能会自动缩小缓存的CSS、JSS和HTML资产。如果您不使用AutoptimizeWP-Rocket等WordPress插件来缩小资产,我们建议您在Cloudflare中启用自动缩小功能。

    Brotli

    Brotli是GZIP的替代方案,GZIP是一种压缩算法,可在将Web请求提供给访问者之前减小它们的大小。与GZIP相比,Brotli提供了更高的压缩比,这意味着用户的页面加载速度更快。问题是并非所有的网络浏览器都支持Brotli压缩。无论如何,我们建议启用Cloudflare的Brotli功能,因为来自不受支持的浏览器的请求只会退回到GZIP压缩。

    增强的HTTP/2优先级(仅限专业版)

    HTTP/2的引入通过并行化和多路复用为网站带来了显着的性能提升。Cloudflare增强的HTTP/2优先级功能更进一步,它通过智能解析您网站的HTML来确定加载资产的顺序以获得最佳性能。根据Cloudflare的说法,增强的HTTP/2优先级可以将页面加载时间减少多达50%。

    Mirage(仅限专业版)

    Mirage是一项针对移动和低带宽连接的图像优化功能。启用Mirage后,在初始页面加载期间,图像将替换为低分辨率占位符。页面加载后,全分辨率图像被延迟加载。

    Mirage还能够将多个图像请求组合成一个请求,从而减少完全加载页面所需的往返次数。如果您的网站使用大量图片并针对移动设备较多的人群,Cloudflare Mirage可以对性能产生积极影响。

    Rocket Loader

    Rocket Loader是一项通过异步加载JavaScript资源来加快加载时间的功能。这有效地减少了页面的渲染阻塞内容,从而加快了页面加载时间。我们建议您在启用Rocket Loader的情况下测试您的网站,看看它是否能提高您的页面速度。如果您的WordPress站点依赖于以特定顺序加载的JavaScript资产,您可以通过向脚本标签添加属性data-cfasync="false"来绕过Rocket Loader。

    缓存(Caching)

    默认情况下,Cloudflare会缓存CSS 、JS和图像文件等静态资产。请注意,默认情况下,Cloudflare不会缓存您网站生成的HTML。

    缓存级别

    我们建议将缓存级别保留为“Standard”,这允许使用唯一查询字符串访问资产的更新版本。

    浏览器缓存有效期

    如果你的服务器本身已经设置了浏览器缓存有效期,我们建议将浏览器缓存过期设置设置为“Respect Existing Headers”。如果您想用更短的过期时间覆盖此设置,请随时更改此设置。

    防火墙(Firewall)

    如果您的主机不提供可自定义的防火墙,Cloudflare的免费计划包括一个允许五个自定义规则的基本防火墙。防火墙规则可以配置为阻止特定的IP地址、用户代理、请求方法、HTTP引用,甚至国家。

    例如,如果您发现您的WooCommerce商店从目标市场以外的国家/地区收到大量虚假订单,您可以使用Cloudflare的免费防火墙来阻止来自整个国家/地区的流量。

    Cloudflare的Pro计划具有更强大的Web应用程序防火墙 (WAF)。WAF提供专门的托管规则集,有助于进一步保护您的站点。例如,有一些针对WordPress和PHP站点的规则集。

    用于WordPress的Cloudflare托管规则集

    用于WordPress的Cloudflare托管规则集

    对于大多数WordPress网站,Cloudflare的免费计划提供的安全级别就足够了。但是,如果您正在运行需要更多保护的任务关键型业务站点,Cloudflare的专业级WAF和托管规则集可以帮助进一步保护您的站点。

    (推荐阅读:Sucuri vs Wordfence

    网络(Network)

    在Cloudflare的“Network”设置中,我们建议启用HTTP/2、HTTP/3(使用QUIC)和0-RTT连接恢复。

    正如我们前面提到的,HTTP/2通过并行化和多路复用为HTTP/1.1带来了一些改进。类似地, HTTP/3通过使用称为QUIC的新的基于UDP的协议而不是传统的TCP,进一步扩展了HTTP/2的性能

    启用HTTP/2、HTTP/3和0-RTT连接恢复

    启用HTTP/2、HTTP/3和0-RTT连接恢复

    安全的HTTP/3连接还受益于优化的握手例程,从而缩短了连接时间。在Cloudflare仪表盘中启用HTTP/3后,受支持的客户端将能够使用HTTP/3连接到Cloudflare服务器。

    最后,Cloudflare的0-RTT连接恢复功能缩短了之前连接到您网站的访问者的加载时间。

    页面规则(Page Rules)

    Cloudflare的页面规则功能允许您自定义特定URL的设置。页面规则对于禁用某些资产的缓存、更改所选页面的安全级别等很有用。Cloudflare页面规则有两个关键组件——URL匹配模式和对匹配的URL执行的操作。在下面的屏幕截图中,您可以看到将www URL重定向到非www版本的Cloudflare页面规则。

    Cloudflare转发URL页面规则

    Cloudflare转发URL页面规则

    此规则匹配以 www.brianonwp.com开头的URL。请注意星号字符的包含,它允许您创建通配符匹配模式。把星号想象成“这里的任何东西”。在URL模式下,您可以看到该页面规则配置为301将所有匹配的请求重定向到https://brianonwp.com/$1,其中“$1”是指匹配模式中的“第一个通配符”。

    使用像这样的页面规则,请求www.brianli.com/specific-page/将被重定向到brianli.com/specific-page/.

    使用Cloudflare页面规则,您可以将特定设置应用于任何匹配的URL。查看下面可应用于页面规则的设置列表。某些设置甚至可以组合成一个页面规则!

    • Always Online –启用或禁用Cloudflare的“Always Online”功能,如果发现原始服务器离线,该功能会提供页面的静态HTML副本。
    • Always Use HTTPS –对匹配的URL强制使用HTTPS。
    • Auto Minify –启用或禁用HTML、CSS和JS缩小。
    • Automatic HTTPS Rewrites –启用将HTML中的HTTP URL重写为HTTPS版本。
    • Browser Cache TTL –指定匹配URL上的浏览​​器缓存TTL。例如,您可以为不同类型的文件设置不同的浏览器缓存TTL。
    • Browser Integrity Check –启用或禁用Cloudflare的“Browser Integrity Check”功能,该功能检查HTTP标头以清除机器人和恶意流量。
    • Cache Deception Armor –启用或禁用Cloudflare的“Cache Deception Armor”功能,该功能通过确保资产的文件扩展名与其“Content-Type”匹配来防止Web缓存欺骗攻击
    • Cache Level –配置匹配URL的缓存级别。
    • Disable Apps –禁用Cloudflare应用程序集成以匹配URL。
    • Disable Performance –禁用匹配URL的性能相关功能。
    • Disable Railgun –禁用Railgun以匹配URL。
    • Disable Security –禁用匹配URL的安全功能。
    • Edge Cache TTL –指定边缘缓存TTL(资产在Cloudflare的边缘网络上缓存的时间量)。
    • Email Obfuscation –启用或禁用Cloudflare的电子邮件混淆脚本,该脚本通过扰乱电子邮件地址来减少成功的机器人抓取。
    • Forwarding URL –创建一个301或302重定向到另一个URL。
    • IP Geolocation Header –启用或禁用Cloudflare的IP地理位置HTTP标头。
    • Opportunistic Encryption –允许客户端通过安全的TLS通道访问HTTP URL。
    • Origin Cache Control –指定您希望Cloudflare如何响应源服务器的“Cache-Control”指令。
    • Rocket Loader –在匹配的URL上启用或禁用Rocket Loader。
    • Security Level –指定匹配URL的安全级别。
    • Server Side Excludes –<!--sse-->启用或禁用Cloudflare的“服务器端排除”功能,该功能可让您通过在标签中包装HTML来隐藏可疑流量中的敏感信息。
    • SSL –指定匹配URL的SSL级别(disabled, flexible, full, or full strict)。

    Cloudflare WordPress插件

    Cloudflare团队维护一个官方的WordPress插件。虽然这个插件不是绝对要求,但它确实提供了一些不错的功能,包括WordPress优化的Cloudflare设置、WordPress特定的安全规则集、自动缓存清除、HTTP/2服务器推送等。

    Cloudflare WordPress插件设置

    Cloudflare WordPress插件设置

    WordPress的Cloudflare自动平台优化

    Cloudflare的WordPress自动平台优化 (APO)是针对WordPress网站的专用性能优化服务。Cloudflare APO的工作原理是直接在Cloudflare边缘网络上缓存您的WordPress站点的HTML页面。这是对CDN上静态资产(CSS、JS、图像等)的典型缓存的一大飞跃。在我们的基准测试中,我们发现启用Cloudflare APO会导致性能提高70-300%,具体取决于测试位置。

    Cloudflare APO for WordPress通过将页面的HTML副本存储在Workers KV中来工作,Workers KV是一种全球分布的键值存储服务。启用APO后,对您站点的请求将由Workers KV或Cloudflare的边缘缓存而不是您的源服务器提供服务。这是WordPress性能领域向前迈出的一大步,因为有了APO,WordPress站点不再受源服务器位置的限制。

    在Cloudflare仪表盘中为WordPress启用自动平台优化

    在Cloudflare仪表盘中为WordPress启用自动平台优化

    以前,使用传统的CDN设置,HTML页面仍然必须由源服务器提供服务。例如,如果您网站的源服务器位于美国,则来自伦敦的访问者必须等待从美国发送的HTML文档。使用APO,HTML和其他静态资产由靠近伦敦的Cloudflare数据中心提供。

    Cloudflare APO与传统博客、新闻站点、登录页面和其他不依赖动态功能的站点(WooCommerce商店、论坛等)最兼容。APO会自动绕过Cloudflare对登录用户和包含某些cookie的页面(例如WooCommerce)的HTML缓存。APO作为Cloudflare Pro、Business和Enterprise计划的免费服务提供。对于免费的Cloudflare用户,APO是每月5美元的附加组件。

    如果您有兴趣了解有关Cloudflare APO的更多信息,请在此处查看我们的深入指南

    Cloudflare Argo和Railgun

    Cloudflare提供额外的性能产品,可能有助于进一步提升您的WordPress网站的性能。这些功能需要支付额外费用,但如果您想在网站优化方面加倍努力,它们可能值得一看。

    Argo

    Argo是一项Cloudflare附加服务,可为您的网站提供“智能路由”。启用Argo后,流量将围绕Cloudflare网络中的拥塞区域进行路由。在我们的测试中,Argo将页面加载时间减少了20-30%。如果您是Cloudflare用户,希望在性能优化方面更加努力,那么试用Argo可能会产生积极的结果。

    Railgun

    Cloudflare的Railgun是一种WAN产品,可在您的服务器和Cloudflare的服务器之间建立安全隧道。Railgun旨在通过仅提供请求之间的整体差异来加速未缓存内容的交付。例如,如果页面A和页面B具有相同的页眉和页脚结构,但正文内容不同,Railgun会意识到这一点,并仅通过高度压缩的二进制数据流来处理差异。

    Railgun仅适用于Cloudflare的商业和企业计划,并且需要您的网络主机在您站点的服务器上安装其他软件。对于大多数用户来说,使用Cloudflare保持快速加载时间不需要Railgun加速。但是,如果您正在运行无法缓存的高流量WooCommerce商店或论坛,Railgun可能有助于提高您的网站速度。

    如何为WordPress多站点配置Cloudflare

    如果您将Cloudflare与WordPress多站点一起使用,则在设置时应考虑一些特殊注意事项。

    SSL设置

    为了演示适用于WordPress多站点的Cloudflare SSL设置,我们创建了一个测试子域多站点,因为如果您使用子目录多站点,您应该不会遇到任何SSL问题。

    这是我们的测试子域WordPress多站点的结构:

    • 主站点 – brianwp.com和www.brianwp.com
    • 子站点 1 – site1.brianwp.com
    • 子站点 2 – site2.brianwp.com

    首选,我们需要为多站点添加了域。

    同样,域已在Cloudflare中配置了适当的A记录。Cloudflare代理也已启用,如橙色云图标所示。

    WordPress多站点的Cloudflare DNS记录

    WordPress多站点的Cloudflare DNS记录

    要在Ful (Strict) SSL模式下使用Cloudflare,所有关联的域都必须存在于源服务器的SSL证书上。有两种方法可以做到这一点。

    让我们加密或付费SSL

    如果您的主机支持免费的Let’s Encrypt SSL,请继续生成涵盖所有多站点域的SSL证书。

    在宝塔面板上,你可以轻松生成涵盖所有域的SSL证书。

    在宝塔面板中为您的多站点生成SSL证书

    在宝塔面板中为您的多站点生成SSL证书

    Cloudflare Origin SSL证书

    或者,您可以生成涵盖多站点域的Cloudflare Origin SSL证书。要生成原始证书,请导航到SSL/TLS > Origin Server,然后单击“Create Certificate”。

    生成Cloudflare原始证书

    生成Cloudflare原始证书

    原始证书生成菜单分为三个部分。在第一部分中,选择“Let Cloudflare generate a private key and a CSR”,除非您有特定理由提供自己的凭据。

    在第二部分中,输入SSL证书需要覆盖的域和子域。您只能为Cloudflare帐户中的域生成证书。

    最后,在第三部分,选择证书有效期。

    设置包含所有多站点域的正确SSL证书后,您将能够在推荐的Full (Strict)  SSL模式下使用Cloudflare。如果您将来需要向多站点添加其他域或子域,请务必生成涵盖其他域的新SSL证书。

    WordPress多站点的页面规则

    Cloudflare的其他安全和性能功能全局适用于您的根域下的所有子域。换句话说,如果我们的主站点brianwp.com启用了CSS缩小,那么site1.brianwp.com和site2.wpbrianli.com也将启用它。

    在某些情况下,此默认行为可能会导致问题。例如,您可能不想仅仅因为它与单个子站点不兼容而全局禁用HTML、CSS和JS优化。要解决此问题,您可以使用自定义页面规则有选择地禁用特定子域的功能。

    在下面的示例中,我们设置了一个针对*site2.brianwp.com/*页面规则. *字符用于指定通配符行为。您可以将其*视为“这里的任何东西”。

    对于此页面规则,我们禁用了HTML、CSS和JS的自动缩小,禁用了Rocket Loader,绕过了Cloudflare缓存,并关闭了自动HTTPS重写。

    创建选择性Cloudflare页面规则以定位WordPress子网站

    创建选择性Cloudflare页面规则以定位WordPress子网站

    如果您使用Cloudflare的免费计划,请注意它仅附带三个页面规则。如果您需要对多个子站点进行选择性调整,则需要升级到Pro计划或购买额外的页面规则

    小结

    了解如何为您的WordPress网站配置Cloudflare以及如何与您的托管堆栈正确集成可以对您的网站速度和安全性产生积极影响。