您的位置:主页 > 新闻中心 > 常见问题 >

如何把网站将HTTP改成HTTPS

日期:2017/05/31     阅读:    来源:优商网络公司

        什么是https

        SSLSecuritySocketLayer全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。
https协议证书
        HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

        https的本地测试环境搭建

        1、win7windowsserver2016R2中IIS7IIS7.5搭配https本地测试环境;
        2、windowsserver2016中IIS6.0搭配https本地测试环境;

        网站将http改成https的步骤方法:

        简单说一下把网站从http转换到https的过程,也许对读者有借鉴意义。下面只是我做转换的过程,并不是最优方法,按说应该先在单独的服务器上测试https版本,我并没有。公司网站最好更谨慎点。

        1、购买SSL证书

        这个是必须的,现在价格并不贵。到David Yin帖子看一下,便宜的3年只是几十块钱。安装SSL证书的技术问题,无法在这讨论了,不明白的问技术人员吧。
        SSL证书也有免费的申请领取,可点击查看《阿里云Symantec免费SSL证书申请》的方法,免费的申请领取SSL证书,一样的也可以用。

        2、备份、备份

        这个也是必须的。对SSL安装、服务器配置不熟悉的站长来说,转换过程不一定是那么顺利的。

        3、新版本代码改动

        SSL证书安装后,https版本就可以访问了。原来网站上的所有URL都需要改到https版本,包括链接、图片、JS等,所以可能需要修改文章数据库、模板等。

        4、本博客使用WordPress,要在后台把博客地址改为https版本:

        WordPress后台设置

        这样,绝大部分导航中的链接就由WP系统自动改为https版本了。但很可能还有一些导航性质的链接是硬编码在模板中的,比如这个博客帖子下面的版权声明,那是人工写在模板里的,别忘了改。
        帖子正文中人工加的内部链接也需要自己改。如果使用了phpMyadmin,用下面指令跑一下数据库就行了:
        update wp_posts set post_content = replace(
        post_content, ‘http://www.zhuzhouren.com.cn/’,
        https://www.zhuzhouren.com.cn/’);
        帖子里的图片路径也就同时改了。
        如果没有使用数据库管理工具,写个简单php程序运行一下也可以。
        因为只是用指令在数据库执行了一下,没有,也没办法人工检查所有页面,可能有漏掉的链接、图片之类的,读者要是发现了,麻烦告诉我一下。
        这里我还遇到了些没解决的问题。新浪微博组件和百度分享按钮组件貌似都不支持https,原理上应该可以把JS下载下来放到自己服务器上,但暂时没时间弄这个,先拿掉了。

        检查新版本页面源代码

        访问一下https版本页面,包括首页、栏目页、内页、sitemap,查一下源代码,看看还有没有http地址的存在,不仅页面可见部分,还得看看head部分,JS等,比如head里的canonical标签是否改到https版本了?程序生成的sitemap里的URL是否改为https版本了?

        全站301转向

        全站做http到https的301转向。LAMP服务器为例,在.htaccess文件中加:
        RewriteEngine On
        RewriteCond %{SERVER_PORT} 80
        RewriteRule ^(.*)$ https://www.seozac.com/$1 [R=301,L]
        RewriteCond %{HTTP_HOST} ^seozac.com [NC]
        RewriteRule ^(.*)$ https://www.seozac.com/$1 [L,R=301]
        这个代码只是举例,也是我的博客用的实际代码,还有其他写法也可以,只要实现了301就行。
        访问原http版本页面,检查301是否生效。

        百度站长平台和Google Search Console

        搜索引擎抓取301转向后,应该可以自行判断网站已经从http转到https了。另一个通知搜索引擎的方法是通过站长平台。
        在Google Search Console中,把https网站加入并验证,不需要使用Change of Address功能。可以在http及https版本的账号下,用Fetch as Googlebot功能看看两种版本的URL是否返回正确头信息和页面源代码。
        百度站长平台好像不支持两个版本都加入站长平台。不过在原来http账号下,管理站点属性部分有这样一个选项:

        百度站长平台https设置

        点这句话右面的设置按钮,出来一个对话框,问是否确认支持https协议,点“是”后变成这样:

        百度站长平台https协议

        希望这样百度就知道应该把http和https两个版本动作一个网站处理。
        持续观察抓取、收录、排名、流量
        这是接下来两三个月要做的事了,以后有进展再来报告。
        目前可以报告的是,原始日志显示,百度及Google蜘蛛都抓取正常,已经抓取了301及转向后的页面。我是26号凌晨4-6点安装SSL证书、加301转向的,26号中午Google已经索引了几十个https页面(然而,没有首页,可能对待首页比较谨慎):

        Google索引的https页面

        并且一些https页面(并不是所有已经索引了的https页面)已经进入排名,和原来的http版本位置基本是一样的。
        百度到目前为止,还没有索引https页面。
        尽量改正外部链接
        可能的话,把外部链接改到新的https地址。
更多>>相关文章