文章目录[隐藏]
因为在安装SSL证书、全站部署https整个过程中,没有修改数据库和后台设置,因此,不但操作简单,风险极低,还可以随时恢复回原来的http访问。这也非常方便将来网站搬家,不需要调整数据库。
所以这个设置SSL、https的方法,应该是最简单、最安全、最方便的。
现在梳理一下整个设置过程。
第一步、申请、安装SSL证书
与几年前相比,申请免费SSL证书、主机安装都更简单方便。免费SSL证书申请步骤有了很大的简化,在主机安装也更方便,比如在cPanel主机页面可以一键安装。
而且很多主机都附带免费SSL证书功能,购买主机后,SSL证书自动被申请、安装好,不需要自己操作。本站就是这种情况,因此原来对SSL有些排斥,现在也很简单就部署好了。
第二步、301重定向http到https
当所有的页面,包括文章内的图片,都可以使用https、http打开,就可以将http重定向到https了。不然搜索引擎会视两种链接为两个网站。
在百度搜索资源平台的https认证中,就有以下要求:
1、在保证原有http站点正常访问的基础上,新建https站点(必须全站点https),并且将http的url 301到https的url上。
2、请保证您的https站点可访问。
谷歌帮助文件内,也有同样的要求:
使用服务器端 301 HTTP 重定向将用户和搜索引擎重定向至 HTTPS 网页或资源。
301 HTTP 重定向至 HTTPS方法 1:
301永久重定向的方法很多,本站采用的是最简单的方法,在主机cPanel管理页面设置的,方法可参考此文WordPress 域名更改后设置 301重定向(适用于http改为https,,端口变更等)。
301 HTTP 重定向至 HTTPS方法 2:
Apache环境下:可直接向网站根目录的.htaccess文件添加下面代码:
1 2 3 4 5 6 |
/** 网站开启 HTTPS 的301重定向 **/ RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC] RewriteCond %{HTTP_HOST} baiyunju.cc RewriteRule ^.*$ https://baiyunju.cc%{REQUEST_URI} [L,R=301] /** 注:RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]这行代码是排除IE1-8版本浏览器使用HTTPS访问,不需要的话此行可删去。 **/ |
Nginx环境下:打开网站的配置文件,一般是服务器vhost目录下的网站.conf 文件,在文件最上方添加以下代码:
1 2 3 4 5 |
server { listen 80; server_name baiyunju.cc; return 301 https://baiyunju.cc$request_uri; } |
域名带www的要加上www。
第三步、全网站图片链接地址替换为https
当完成http 301重定向到https后,所有网页打开都是https了。包括主页、分类、标签,所有在重定向后发布的新文章,打开后在各个浏览器内都会显示是安全的连接。
如果浏览器地址栏提示“信息或不安全”、“此页中包含其他不安全的资源”等不安全链接信息,是因为此页内还有混合资源。比如网站logo、菜单、rss订单、网站地址等等链接是手工填写的http地址。直接将这些http地址改为https就行了。
但是,旧文章页内的图片,并不会全部自动转换为https,这是因为图片的http地址,被写死在数据库内了,都是绝对地址。
当然,可以直接在数据库内将http替换为https,也可以安装插件进行修改。只是,如果将来不想使用http,或者网站搬家临时使用http,都需要再将https改为http,非常麻烦,且有风险。
因此本站采用的是以下比较简单的方法,直接在当前主题的functions.php文件中添加以下代码:
1 2 3 4 5 6 7 8 |
/** 替换老文章图片链接为 https **/ function my_content_manipulator($content){ if( is_ssl() ){ $content = str_replace('https://baiyunju.cc/wp-content/uploads', 'https://baiyunju.cc/wp-content/uploads', $content); } return $content; } add_filter('the_content', 'my_content_manipulator'); |
完美解决!所有旧文章的图片地址,全部由http转换为https。
此时后台的WordPress地址、站点地址,也没有改为https,依然是原来的http://baiyunju.cc。而且也没有改动数据库,随时可以恢复原来的http访问。
四、其他设置
可以再开启下面设置,强制管理后台、登录页面使用https。
方法是下载网站根目录下的wp-config.php文件,在文件底部添加:
1 2 3 |
/** 强制管理后台和登录页使用 SSL **/ define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true); |
不过本站并没有设置此项,设置301重定向后,后台管理页、登录页,都会自动跳转到https了。在可以正常使用的情况下,尽量少作改动。如果不跳转可以添加此代码。
至此,网站全站部署ssl证书、启用https访问的工作,就全部完成了。
浏览量: 28