wordpress全站开启https具体过程

2017年1月19日 由 Creater 留言 »

第一步:购买或者使用免费的SSL证书
免费的很多,比如沃通免费SSL申请地址:https://freessl.wosign.com 、还有一个重点提一下:Let’s Encrypt (开源项目)
一种是自动的,还有一种是国外的通过使用OPENSSL手动创建证书 下面说说具体步骤
生成命令:
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
生成之后,csr文件内容copy给这些CA机构,自动给你一个crt。配合你刚刚生成的key,ok,完美。
拿到crt和key之后,我们开始在Nginx配置https:

# HTTP Server
server {
listen 80;
server_name www.kejianet.com kejianet.com;
rewrite ^ https://$server_name$request_uri permanent;
}

server {

listen 443 ssl http2;

ssl_certificate /usr/local/nginx/conf/vhost/ssl/kejianet.com.crt;
ssl_certificate_key /usr/local/nginx/conf/vhost/ssl/kejianet.com.key;
ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
#ssl_stapling on;
#ssl_stapling_verify on;
#resolver 8.8.8.8 8.8.4.4 valid=300s;
#resolver_timeout 5s;

如上,我们80端口的http全部301重定向到https。这样就不会对SEO产生什么不利的影响,百度站长明确说明:http网站和https当作同

一个站来处理,所以可以看到改版规则无https和http的区别,直接301完事!
第二步:把原网站http引用的图片和静态资源改成https
方法1:通过修改SQL即可。

方法2:通过找到当前主题下的 function.php 文件

function replacehttp($content){
if( is_ssl() ){
$content = str_replace('http://www.xxxxxx.com/inc/uploads', 'https://www.xxxxxx.com/inc/uploads', $content);
}
return $content;
}
add_filter('the_content', 'replacehttp');

注意:引用的CSS文件中也要一并修改。

第三步:wordpress后台改成https访问
wp-config.php文件中添加

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

Apache+ssl参考文献;http://blog.mimvp.com/2016/01/apache-httpsapache-http-access-go-to-https/

广告位

发表评论

你必须 登陆 方可发表评论.