网站https配置攻略(Nginx篇)

日期:2015年11月18日 作者: 分类:运维 浏览:4116

本站采用 Nginx 做为本站的web服务软件,前几天将网站全站开启https了,现在博客全程走https,可以抚慰每个总是担心隐私被人窥窃的强迫症的内心。

本站的配置目标是,无论访问https://wanglu.info 、http://www.wanglu.info 还是 https://www.wanglu.info,全部301跳转到https://wanglu.info

什么是https

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。

现在它被广泛用于万维网上安全敏感的通讯,例如网银交易支付方面。现在国内大型网站开启https的有百度和淘宝。

网站https攻略(Nginx篇)

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。(本站证书使用沃通证书免费版,申请地址:https://buy.wosign.com

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

Nginx中安装配置证书

关于Nginx的配置此处不做说明,可以参考本站另一篇博文《CentOS 7下安装LNMP服务器》.

通过上面的地址申请证书并下载后,使用 For Nginx 的配置文件。

server {
    listen      80;
    # 通过http协议80端口访问会进入到此段设置处
    server_name wanglu.info www.wanglu.info;
    # 301重定向到https下
    rewrite ^/(.*) https://wanglu.info/$1 permanent;
}
server {
    listen       443 ssl;
    ssl_certificate      path/to/wanglu.info.crt; # 路径指向申请的证书文件
    ssl_certificate_key  path/to/wanglu.info.key; # 文件路径请跟据自己实际路径配置

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m; 

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on; 

    server_name  wanglu.info www.wanglu.info;

    # 如果是通过 www.wanglu.info 访问,也301到 wanglu.info
    if ($host ~* www.wanglu.info){
        rewrite ^/(.*)$ https://wanglu.info/$1 permanent;
    }

    # 下面就是Nginx服务器相关的配置,此处就不展示了
}

这样配置后就完成了Nginx服务器下 https 的配置,重启相关服务即可生效

# CentOS 7.x 系列
sudo systemctl restart nginx && sudo systemctl restart php-fpm

# CentOS 6.x 系列
sudo service nginx restart && sudo service restart php-fpm

WordPress相关配置

虽然已经可以https了,但为了更加安全可靠,在wp-config.php文件中配置后台和登录强制使用https协议

/* 强制后台和登录使用 SSL */
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

另外,在WordPress后台的 设置 》常规 里面,将WordPress地址和站点地址一更改为https地址。

当然,如果在导航里面的链接地址是用的绝对地址,就也要将http改为https

标签:,

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/2015/11/1071.html