前端共享让前端飞技术干货

为网站添加SSL证书并配置HTTP2(一)

2017-07-29  本文已影响152人  长缨半字

个人博客:https://xiaofengsir.com/,关注更新文章

一. 配置SSL证书

证书说明:这里使用的证书是阿里云个人一年免费的SSL证书,只需要在阿里云上申请即可获得。
web服务器说明:这里采用的web服务器是Nginx服务器。
服务器操作系统说明:这里使用的是Centos 7.x系统。
终端登陆工具与FTP工具说明:这里使用的是Xshell与Xftp工具。


1. 下载证书

1.登陆到阿里云控制台,今天证书安全下载界面,选择Nginx/Tengine,下载证书,并解压到桌面。


2. 上传证书到服务器

1.登陆到服务器,并进入到Nginx目录


2.创建证书存放目录:


3.使用Xftp将证书上传至新建的目录下:


3. 配置Nginx使其支持SSL证书

1.进入nginx下的conf.d目录,创建一个新的.conf文件,命名为ssl.域名.conf(命名可任意,但需以.conf结尾)。


2.为新建的.conf文件添加如下代码:

server {
    listen 443;
    
    #------------------------------------
    # 修改为你的域名
    server_name 域名.com www.域名.com;
    #------------------------------------
    
    ssl on;
    
    #-----------------------------------------------------
    # root目录,即为你网站的存放目录
    root /mnt/www/域名.com/public_html/wordpress/;
    #------------------------------------------------------

    index index.html index.htm index.php;
        
    #--------------------------------------------------------------------
    # 将下面两行修改为SSL证书存放路径
    ssl_certificate   /etc/nginx/ssl/域名.com/214190949470644.pem;
    ssl_certificate_key  /etc/nginx/ssl/域名.com/214190949470644.key;
    #--------------------------------------------------------------------

    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
   
    #---------------------------------------------------------------------------- 
    # 以下为Nginx的基本配置
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
    #------------------------------------------------------------------------------
}

3.测试下配置的正确性,成功后重启下Nginx,再打开浏览器测试HTTPS是否能正常访问。

另外说明:可以看到目前conf.d目录里有3个以.conf结尾的配置文件,basic.conf为基本的解析配置文件;域名.conf为不使用SSL证书的http配置文件;ssl.域名.com为新增加的使用SSL证书的HTTPS配置文件。因此,在目前未配置301重定向的情况下,打开浏览器测试网站的时候,可以发现网站即可正常访问http,也可以正常访问https。


二. 为Nginx配置301重定向

说明:在上面结尾说了,目前网站的状态应该是http和https都可以正常访问。现在则为Nginx配置一下301重定向,这样当访问网站的时候就会自动定向到https,而不会在通过http访问网站了。

配置301重定向

1.进入Nginx配置目录,打开http的配置文件



2.编辑域名.conf配置文件

# 删除所有其他代码,仅添加如下代码即可

server {
  listen        80;
  
  #------------------------------------
  # 将“域名”改为你自己的域名
  server_name   域名.com www.域名.com;
  #------------------------------------
  
  return 301    https://$host$request_uri;
}

注意:这里编辑的是域名.conf,而不是ssl.域名.conf!!!


3.重启Nginx,打开浏览器测试

systemctl restart nginx

配置至此,网站已经只会再通过https访问了,但是仍然还不会使用http2.0协议,在下一篇中将会说明如何配置http2.0。


上一篇下一篇

猜你喜欢

热点阅读