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

作者: 长缨半字 | 来源:发表于2017-07-29 02:22 被阅读1094次

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

    一. 为网站配置http2.0协议

    说明:为网站添加SSL证书并配置HTTP2(一)中,已经安装好了SSL证书,并且配置了301重定向。现在可以开始配置http2.0协议了,关于什么是http2.0协议,以及和http1.1的区别这里不多说了,自行百度吧。

    1. 查看网站协议

    打开浏览器,将审查元素打开,点击Network选项卡,将Protocol调出来,查看传输协议。目前显示的为http/1.1,传输协议。


    2. 查看Nginx版本,查看OpenSSL版本

    目前显示的版本是nginx/1.10.2OpenSSL 1.0.1e-fips,因为之前安装Nginx时,使用的时系统默认的源,然而Centos7自带的Nginx版本并不够新,想要支持使用http2.0协议,OpenSS必须升级到2.0版本以上才可以。因此要对Nginx重新编译。
    <br />


    3. 编译安装Nginx和openssl

    说明:编译Nginx步骤较多,如果出现问题,评论区留言吧。

    1.安装编译过程中需要使用的工具

     yum install wget curl perl gcc pcre-devel zlib-devel make -y
    

    代码说明:
    wget: 常用的命令可以自动下载文件的工具,支持通过HTTP、HTTPS、FTP等常见的TCP/IP协议下载,并可以使用HTTP代理。
    curl: 利用URL语法在命令行方式下工作的开源文件传输工具。和wget类似但有不同。
    perl: 为服务器安装perl环境。
    gcc: 为服务器安装gcc环境。
    pcre-devel: perl的一个库,用来处理正则表达式。
    zlib-devel: 为服务器安装zlib库。
    make: linux中常用的编译安装命令。


    2.下载Nginx源和openssl源

    //下载openssl新版的源和Nginx新版源
    wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz http://nginx.org/download/nginx-1.11.10.tar.gz
    //解压两个压缩包
    tar zxvf nginx-1.11.10.tar.gz
    tar zxvf openssl-1.0.2l.tar.gz
    //重命名nginx和openssl
    mv nginx-1.11.10/ nginx
    mv openssl-1.0.2l/ openssl
    

    3.编译nginx

    1)首先卸载原先版本的额nginx

    //卸载已安装的nginx版本
    yum remove nginx -y
    

    2)配置编译nginx

    //进入nginx和openssl所在目录。
    cd ~
    //将nginx和openssl移动到/usr/local/src文件夹
    mv nginx/ openssl/ /usr/local/src/
    //进入/etc/local/src/nginx目录下
    cd /usr/local/src/nginx
    //配置nginx
    ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid  --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp  --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-stream_realip_module --with-openssl=/usr/local/src/openssl
    //使用make命令编译一下,时间较长
    make
    //编译完成后执行下make insatll
    make install
    //为新编译的nginx添加用户,创建配置目录
    useradd nginx && mkdir /etc/nginx/conf.d
    //创建nginx缓存目录,并设置一些权限
    mkdir /var/cache/nginx && chown nginx:root /var/cache/nginx
    //删除用不着的文件
    rm -rf /usr/local/src/nginx && rm -rf /usr/local/src/openssl && rm -rf /var/cache/yum
    

    3)继续配置nginx,并启动它

    //配置nginx服务文件
    vim /usr/lib/systemd/system/nginx.service
    
    //为nginx.service添加配置代码
    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
    ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
    //启动下nginx,再设置开机启动
    systemctl start nginx
    systemctl enable nginx
    systemctl status nginx
    

    4)编辑nginx.conf文件

    //进入nginx目录
    cd /etc/nginx/
    //为nginx.conf添加代码
    vim nginx.conf
    //在nginx.conf中的gzip on代码下面一行添加如下代码
    include /etc/nginx/conf.d/*.conf;
    //重启nginx
    systemctl restart nginx
    

    4.配置http2.0协议

    //进入网站的nginx配置文件所在目录
    cd /etc/nginx/
    //编辑ssl.域名.conf文件
    vim ssl.域名.conf
    //在第一行listen配置项中添加 ssl http2
    server {
        listen 443 ssl http2;
        .....见第一篇中的.conf配置文件
    //重启nginx
    systemctl restart nginx
    

    5. 测试

    至此,http2.0协议配置完成,打开浏览器查看传输协议。

    可以看到,传输协议为h2,配置成功。


    总结:配置过程比较繁琐,测试过程中可能会出现一些问题,可以在评论区留言。总的来说,主要就是涉及nginx本身以及nginx的配置文件的编译,编辑等等...留心一点安装两篇课程一步一步来,时可以完成全部安装过程的。

    相关文章

      网友评论

        本文标题:为网站添加SSL证书并配置HTTP2(二)

        本文链接:https://www.haomeiwen.com/subject/farqlxtx.html