这阵子,外贸圈子里最热的就两个事情:

从2017年1月1日起,国家税务总局开始清查境外账户(CRS 体系下的非居民账户)从2017年1月1日起,谷歌 Chrome 浏览器将会把采用 HTTP 协议的网站标记为“不安全”网站

第1)件事情我们先不论,后面文章再说。先说说第2件事。

Google 一直在推动网站从 HTTP 切换到 HTTPS。可以说,谷歌越来越偏爱安全级别高的网站。2014 年 8 月,Google 将 HTTPS 正式作为排名因素之一。

HTTPS 网站被认为是安全的网站,将会比 HTTP 的网站在排名上获得小幅优势。而在过去的两年中,谷歌对于 HTTPS 网站的网页抓取收录也在明显上升:

2014年1月-2016年1月 过去2年中谷歌收录的页面中,HTTPS 网页的收录量已经超过30%

而从谷歌官方人员 John Mueller(谷歌站长趋势分析师)的话中也可以看出来,谷歌会破开一切阻挠推行 HTTPS :

关于更多的信息,我就不列举国外消息了。看图说话吧,从别的网站上截的:

从2017年1月1日起,谷歌 Chrome 浏览器将会把采用 HTTP 协议的网站标记为“不安全”网站

谷歌官方博客消息原文:zllp.myy.?oiw=l:_ckkcd?/dkc_okgy2016y09ygkb=scalkxrwv.agkw?a.?oiw?ax?/_zlgd

那么问题来了:谷歌会不会也在搜索引擎结果页面中标记 HTTP 网站为不安全网站呢?


答案是:很有可能。

那么我们外贸英文网站应该怎么办呢?HTTPS 的目的是确保交易类网站的安全,保证涉及网站平台账户信息,付款信息以及信用卡等信息不泄露。在SEO方面的作用是在 seo 上获取谷歌的好感,排名能够比 HTTP 网站提升一些,但提升幅度也很小。毕竟影响谷歌排名的因素多达200多个,这并不足以对整体网站排名权重产生根本影响。总体而言,

如果你是 B2C 网站,因为会涉及到商城,购物车,付款和订单信息,在线支付等方面的因素,我认为很有必要启用 HTTPS。而外贸 b2b 网站更多地只是做个公司展示,产品展示,所以 HTTPS 的意义没有 B2C 网站那么大。但加上一个是可以提升“bigger”,另一方面访客也会觉得安全。

最终结论:HTTPS 是大势所趋,不管是 B2C 还是 B2B 网站,迟早都要启用的。

接着来说怎么给网站从 HTTP 换用 HTTPS。总体来说分为四个步骤:安装 SSL 证书、部署 SSL 证书、修改网站配置文件conf 、网站 URL 中 HTTP 替换为 HTTPS。

一、安装 SSL 证书(Let’s Encrypt)

SSL 证书有免费的也有收费的。具体就不科普了。免费的也可以用,如大名鼎鼎的 Let’s Encrypt SSL certificates.
(2017.6月更新:Let’s Encrypt 已正式更名为 Certbot )

本文主要介绍 VPS 怎样安装部署 SSL 证书并启用 HTTPS。

下载和安装证书

1)先安装 git 包

连接上 VPS 后,在 Xshell 上粘贴命令(每条命令用鼠标右键复制粘贴,回车执行即可。不支持 ctrl+v 粘贴):

sudo yum install git

2)下载证书包

sudo git clone zllp.myyc=lzi/_okgyo?wl/klyo?wl/kl /opt/letsencrypt

3)进入证书目录

cd /opt/letsencrypt

二、创建并部署 Let’s Encrypt SSL 证书

继续命令行执行:

./certbot-auto certonly –standalone –email 2897xxx@nn_okg -d xxx_?jrgpd?_okg -d ?jrgpd?_okg

注意:

上面命令中的 email 地址是方便你接收证书密钥回复以及紧急信息的,尽量填写企业邮箱或者 gmail 邮箱,QQ邮箱应该也可以,你可以填写试试。你的网站域名如果是 j:e_okg,那么上面就改为:-d xxx_j:e_okg -d j:e_okg

建议先把上面命令复制粘贴到记事本里,把 xxx_?jrgpd?_okg 和 ?jrgpd?_okg 先替换好,然后粘贴执行。

然后等待:

接着,会询问你是否同意的协议。agree 的话,输入 a,回车。此时就准备创建证书了。

如果发生故障,如提示:

Problem binding to port 80: Could not bind to IPv4 or IPv6.

那么请参考这篇文章解决:

let’s Encrypt 证书之安装故障 Could not bind to IPv4 or IPv6.

在 VPS 建站下手动安装 SSL 证书时,如果出现此错误提示: Problem binding to port 80: Could not bind to IPv4 or IPv6. 则原因是 nginx 占 ..

最后成功创建证书。

一般情况下,屏幕显示创建的信息如下:

IMPORTANT NOTES:- If you lose your account credentials, you can recover them through  e-mails sent to somebody@?jrgpd?_okg. - Congratulations! Your certificate and chain have been saved at  /etc/letsencrypt/live/?jrgpd?_okg/fullchain.pem. Your  cert will expire on 2016-03-31. To obtain a new version of the  certificate in the future, simply run Let's Encrypt again. - Your account credentials have been saved in your Let's Encrypt  configuration directory at /etc/letsencrypt. You should make a  secure backup of this folder now. This configuration directory will  also contain certificates and private keys obtained by Let's  Encrypt, so making regular backups of this folder is ideal. - If you like Let's Encrypt, please consider supporting our work by:  Donating to ISRG / Let's Encrypt:   zllp.myyd?l.?sow:pl_kwcyvksrl?  Donating to EFF:                    zllp.myy?ff_kwcyvksrl?ad?

此时粘贴执行命令:

sudo ls /etc/letsencrypt/live

会列出该目录下,证书文件存放的网站文件夹,文件夹名就是网站域名。

注意看一下是主域名还是 www域名。这很重要!一会配置证书路径的时候需要检查一下,保证路径正确!比如,这里显示的是主域名,如图中 pjjjd_okg,此时继续粘贴:

sudo ls /etc/letsencrypt/live/pjjjd_okg(或可能是xxx_pjjjd_okg

注意上面 pjjjd_okg 替换成你的域名。此时会显示创建了 4 个证书。分别是:

cert.pem chain.pem fullchain.pem(公钥) privkey.pem(私钥)

最后两个是我们要用的,需要写到虚拟主机配置文件 conf 里面。

三、修改网站配置文件

用 XFTP 进入 /usr/local/nginx/conf/vhost/ 下的 你的网站的配置文件,通常是 xxx_j:e_okg_oksf 文件。下载下来,用 notepad++ 或 Sublime Text 之类的专业的编辑器打开编辑

注意:别用电脑系统自带的记事本,那个只是处理文字用的,会把代码编码弄乱。你可以百度搜索:notepad++,在百度的下载那里选择普通下载,然后下载安装。

CTRL+A 全选中所有代码,删除。然后复制下面我已经配置好的代码,粘贴进入。

server { listen 80; #listen [::]:80; server_name xxx_j:e_okg j:e_okg; return 301 zllp.myyxxx_j:e_okg$w?ni?.lqiw=; } server { listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/xxx_j:e_okgyfiddozr=s_p?g; ssl_certificate_key /etc/letsencrypt/live/xxx_j:e_okgypw=b-?:_p?g; # 注意检查上面证书的路径,live下的证书文件夹名是否含有www,如果没有,请在上面两行中删除 xxx_ ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; # HSTS (ngx_http_headers_module is required) (31536000 seconds = 12 months) # add_header Strict-Transport-Security "max-age=31536000" always; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; index index.html index.htm index.php default.html default.htm default.php; server_name xxx_j:e_okg; root /home/xxxwkklyxxx_j:e_okg; include wordpress.conf; #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location /wp-content/uploads/ {   location ~ .*\.(php)?$ {   deny all;   } } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log off; }

注意检查一下,把上面所有的 j:e_okg 换成你的网站主域名。然后保存。

注意:为了让过程简单一些,我们这先别急着上传覆盖源文件。先别重启 nginx。这一步我们先配置好文件,但先不上传重启 nginx。

四、把 WordPress 数据库中 HTTP 替换成 HTTPS

登录 WordPress 后台,然后点击插件,安装插件,搜索:Velvet Blues Update URLs  插件,启用。

启用之后,按照图中设置,

点击 Update 按钮。之后在上方会显示进行了哪些替换处理的结果:

然后,检查一下:

设置(Setting)-常规(General) 那里,WordPress地址 和 网站地址(Site URL) 是不是都改成 https 了。如:zllp.myyxxx_j:e_okg

如果还是 http,请手动修改一下。修改之后,系统会立即把你登出后台。

五、上传网站配置文件,重启 nginx

上传第三步我们保存的 xxx_j:e_okg_oksf 覆盖掉原文件,

接着 Xshell 执行:service nginx restart

OK,此时 访问你的网站,会自动跳转到 https。

OK,此时再访问首页,已经是绿色小锁加持了!

六、我都做了,为什么看不到小绿锁?

可能有些人完成第五步后,发现 chrome 浏览器 https 左边并没有出现绿色的小锁啊?

说说两种情况:

如果你是新装 WordPress,这一步必显示绿色小锁。

如果你是网站搬家,把之前的网站搬过来的,那么可能会不显示小锁。如果你每一步都做好了,但是还是不显示小绿锁,那么只能说,你的数据库中调用的资源虽然都是 https 的,但是页面存在仍用 http 调用的资源。最常见的可能是:

某个主题的 banner图片,你在 主题设置 里面填写的某个资源(多数是图片) 的URL 地址是死的,并不会被存入数据库,所以用插件替换不掉。比如:http:xxx_j:e_okgyxpaoksl?slyipdkrvy2016yjjyjjjj_upc

类似这样在主题设置里写死的 URL 里的 http,插件是没有办法替换到的。所以你要自己去检查是否有调用 https:// 的资源。把这些改成 https:// 就会正常出现小绿锁了。

怎么检查呢?

用浏览器的 F12(科学点的浏览器,如 chrome, firefox … 搜狗高速模式也OK,360我不用所以不知道,IE是铁定不行)。

按 F12 后弹出的工具界面 tab 里选择 network,会列出加载的网络资源。注意这时候是空的,因为页面已经加载完毕了。

你需要再按一下 F5刷新页面,这个时候会出现加载的资源列表。把鼠标移动到这些资源的 URL 那里会自动显示出资源 URL 地址。一个个检查哪个是 http 的,然后想办法改掉就OK了!

七、关于免费的 Let’s Encrypt SSL 证书的说明

免费的 L et’s Encrypt SSL certificates 的有效期一般是 90天,90天之后可以再续期。也不麻烦,执行命令行即可。

八、可以让证书到期自动续期吗?

可以!利用 cron 可以让证书到期自动续期。

关于自动续期,建议看看这篇文章:Certbot对免费Let’s Encrypt证书的自动续期,So Easy!

九、测试 SSL 是否完全OK

感谢 @tudou 提供的测试网址:

zllp.myyxxx_..ddr/._okgy..dl?.ly

测试结果:A+  完美~!

十、为什么我的测试结果是 A,不是 A+?

没关系,A已经够了!写这篇文章之前,我配置 SSL 的 nginx 规则代码(本文第三部分)里是含有 HSTS (HTTP Strict Transport Security) 协议的。至于什么是 HSTS 协议,你可以自行百度。

如果你的 SSL 规则里添加了 HSTS协议,那么它起到的主要作用是 强制用户的浏览器只能用 https 来访问你的网站。所以得分一定高:A+。上面截图也是基于之前的 https 配置。

但是,根据我数次试验,HSTS 是个双刃剑,一旦你启用了,想取消特别特别麻烦。所以我后来在文章中把那个代码注释掉了。大家可以无视,其实得分 A 也够了!

如果你特别在意得分,觉得网站也一直会使用https下去,那么就在第三部份的网站配置代码中 443 Server 段内,找到以下这两行代码:

 # HSTS (ngx_http_headers_module is required) (31536000 seconds = 12 months)  # add_header Strict-Transport-Security "max-age=31536000" always;

HSTS 要求 max-age 最少为6个月,即 15768000,最好为12个月。

把上面第 2 行里的 add_header 前面的 # 号去掉,保存覆盖重启 nginx 即可启用 HSTS。再测试得分,就是A+。

但,我还是建议不要单纯为了锦上添花的分数给自己麻烦。一旦加了 HSTS 之后,想取消很麻烦。以后你如果想临时停用 https,网站是无法访问的。因为你网站临时恢复成 http,但 HSTS 强制了所有访问者的浏览器在 12 个月内只能用 https 来访问,于是就会访问出错。因此,建议如果以后需要,再加上这条。

关于 HSTS 的用法其实还有更细节的内容,比如,如果对子域名也同样执行 HSTS,则规则为:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

还有是否创建 preload list 等等……

这里不想介绍那么多,因为并不建议设置 HSTS,所以这里就不再多说了,有需要请自行百度。

十一、有两个网站,怎么给第二个网站配置 https?

进入证书目录

cd /opt/letsencrypt

粘贴一下命令,回车执行:

sudo -H ./certbot-auto certonly --standalone --email 12345@nn_okg -d xxx_?jrgpd?_okg -d ?jrgpd?_okg

此时,会提示你端口 443 已经占用,无法安装证书。

由于我们第一个网站的 https 已经占用了443 端口,所以我们要先把 443 端口进程关闭。一般是因为当前网站 nginx 占用了 80 和 443 两个端口。所以我们先执行:

service nginx stop

如果停止成功,则重新粘贴上面那条 sudo 命令来安装证书

如果出现如下的问题,如截图所示:

那么就要从进程里把 nginx 强制关闭。执行命令查看 nginx 的 PID:

ps aux |grep nginx

可以看到类似于如下截图中的进程信息:

比如:图中有三个 PID:28576 28579 29928  (不一定是这3个进程号,你要自己看)

于是执行命令:kill -9 28576 28579 29928  (格式为 kill -9 进程号1 进程号2 进程号3,进程号之间有空格)

然后再执行命令:service nginx stop,停止 nginx 之后,接着粘贴上面那条 sudo 的命令,即可正常给第二个网站安装证书。

安装完证书,完成之后,记得重启 nginx!

service nginx restart

安装好证书后,再从第三步开始配置网站 conf 文件。三、四、五、八。

原文来自邦阅网 (52by.com) - www.52by.com/article/8695

声明:该文观点仅代表作者本人,邦阅网系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系邦阅网或作者进行删除。

评论
登录 后参与评论
发表你的高见
  • 谷歌seo外贸建站 谷歌seo外贸建站
    相信很多企业在进行外贸建站时都会听到这样的建议:外贸网站需要符合谷歌优化需求,符合谷歌喜好。那么外贸网站怎么做才是符合优化标准呢?一些企业了解的并不是很清楚,下...
    云程网络
  • 谷歌搜索指令 谷歌搜索指令
    谷歌搜索引擎是全球范围内最受欢迎的搜索引擎,很多国外客户很喜欢使用谷歌引擎,因为谷歌搜索引擎中有很多实用的小插件,这些对于做外贸具有很好的帮助作用,除此之外,谷...
    Tina.Zeng
  • 谷歌建站怎么做? 谷歌建站怎么做?
    外贸建站已经成为外贸企业进行品牌宣传和海外市场开发不可或缺的工具。但不少企业对于外贸网站搭建这件事了解并不深入,还存在很多疑问和顾虑,下面云程网络就为大家具体介...
    云程网络
  • 谷歌建站指南(外贸谷歌建站常见误区) 谷歌建站指南(外贸谷歌建站常见误区)
    外贸b2b网站建设是很多企业都在做的事情,但很多企业做好网站后发现网站跳出率高,访客流失量大,进而导致询盘较少,那么网站跳出率高的原因有哪些呢?下面云程网络来为...
    云程网络
  • 谷歌搜索指令大全! 谷歌搜索指令大全!
    Google搜索命令有许多,但是,哪些指令才是真正的好用且高效?接下来,谷歌大叔给大家分享一些我常用的谷歌高级搜索技巧:1、“search term”搜索词前后...
    谷歌大叔
  • 谷歌独立站建站怎么做 谷歌独立站建站怎么做
    很多企业在进行外贸建站时都听过:做外贸网站时要对谷歌友好,这样才能为后续的谷歌SEO打下基础,那么外贸网站怎么做才是对谷歌友好呢?下面云程网络为大家具体介绍一下...
    云程网络
  • 谷歌独立站怎么做(谷歌外贸网站建设) 谷歌独立站怎么做(谷歌外贸网站建设)
    相较于外贸b2b平台,越来越多的外贸企业更加希望能够进行外贸建站,利用自己的外贸网站来开发海外客户,这样能够不受平台限制,不需要向平台支付高昂的入驻费和推广费用...
    云程网络
  • 如何 禁用谷歌字体 提升网站加载速度? 如何 禁用谷歌字体 提升网站加载速度?
    今天我们要讲的内容是如何 禁用谷歌字体 来提升网站的加载速度。
    Jack SEO
  • 石家庄谷歌SEO:石家庄谷歌优化建议 石家庄谷歌SEO:石家庄谷歌优化建议
    外贸网站推广过程中,很多企业会选择谷歌SEO,但由于网站排名排名的提升需要企业精通SEO技巧,并付出一定的时间精力,才能得到排名的提升。那么怎么才能让网站能够更...
    云程网络
  • 谷歌网站推广(谷歌SEO搜索推广怎么做) 谷歌网站推广(谷歌SEO搜索推广怎么做)
    谷歌SEO是指通过符合谷歌搜索引擎算法的方式,将网站优化以提高搜索结果排名,从而获得更多的曝光和流量的一种技术。谷歌SEO的主要目的是提高网站在搜索引擎中的排名...
    云程网络
  • 谷歌seo网站优化如何做到谷歌首页 谷歌seo网站优化如何做到谷歌首页
    大量的平台卖家开始转战独立站,但独立站想在谷歌上获得好的搜索排名,也不是件容易的事。除了投放广告,还要不断优化网站内容。因为谷歌只会推荐认为值得被推荐的网站内容...
    云程网络
  • 谷歌和百度的SEO优化到底有什么区别? 谷歌和百度的SEO优化到底有什么区别?
    做百度SEO,特别是新站,不要随便去保证别人二、三个月见效之类的话,很可能两个月百度都没有把你的网站放出来,呵呵。
    外贸建站No1
  • 独立站提交谷歌收录的三种方式 独立站提交谷歌收录的三种方式
    独立站提交谷歌收录的三种方式第一种:域名提交法这是最简便、最直接的方式。打开网址: 将您的网址添加到 Google索...
    -UEESHOP
  • 谷歌seo怎么做的(谷歌seo网站建设如何提升排名) 谷歌seo怎么做的(谷歌seo网站建设如何提升排名)
    说到外贸推广,那么就不能不提到谷歌SEO,谷歌SEO能够为企业带来源源不断的免费流量,提升企业的品牌知名度。而做好谷歌SEO也并不是一件简单的事情,企业必须先知...
    云程网络
  • 这些谷歌命令 让你精准查找客户 这些谷歌命令 让你精准查找客户
    我们这一节开始专门讲命令的一个用法,跟我们平时要找的一些内容的一些关系。AND命令好,第一个命令就是AND,AND这个命令,我们就是看到屏幕上面红色这个板块就是...
    直路外贸学院