Nginx配置HTTPS

环境准备

本次搭建环境CS6.6,内核2.6.32,Nginx-1.6.3,首先确认Nginx编译时添加了ssl模块,同时安装了openssl和openssl-devel。

升级openssl

#openssl 1.0.1-1.0.1f 受到心脏出血漏洞的影响,需要升级
[root@test88 ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
cd /server/tools/
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar xf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config shared zlib
make
make install
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl/ /usr/include/openssl.old
ln -s /usr/local/ssl/bin/openssl /usr/bin/openss
ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl
#更新动态链接库数据
echo "/usr/local/ssl/lib/" >> /etc/ld.so.conf
ldconfig -v
[root@test88 openssl-1.0.1g]# openssl version
OpenSSL 1.0.1g 7 Apr 2014

 生成私钥和证书

[root@test88 cert]# openssl genrsa -out cert.key 2048    生成证书私钥
[root@test88 cert]# openssl req -new -key cert.key -out cert.csr   生成证书请求文件
[root@test88 cert]# openssl x509 -req -in cert.csr -out cert.pem -signkey cert.key -days 3650   签发数字证书,默认格式PEM
#也可以openssl req -new -x509 -key cert.key -out cert.pem -days 3650 直接生成自签名证书

 编辑Nginx配置文件

[root@test88 nginx]# vim conf/nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.peter.com;
        location / {
        rewrite ^(.*) https://$server_name$1 permanent;
        }
    }
    server {
        listen       443;
        server_name www.peter.com;
        root html;
        index index.html index.htm;
        ssl on;
        ssl_certificate cert.pem;
        ssl_certificate_key cert.key;
        ssl_session_timeout 5m;
        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        location / {
        }
    }
}

[root@test88 nginx]# sbin/nginx -t
[root@test88 nginx]# sbin/nginx

访问www.peter.com

 关于rewrite功能

rewrite用于URL的重写,可以实现URL跳转、伪静态等功能
语法:rewrite regex replacement [flag]
案例:rewrite ^/(.*) http://www.peter.com/$1 permanent; 
说明:表示匹配以/开头的一切内容,$1指代前方()里的内容,permanent表示301永久跳转;
[flag]标记有:last 匹配完成继续向下匹配  break 匹配完成即终止匹配
             redirect 302临时跳转   permanent 301永久跳转
rewirte需要PCRE软件支持,通过Perl兼容正则表达式进行匹配
主要注意()表示向后引用,即()内的内容在后面可以通过$0..$9来获取
posted @ 2017-09-30 23:28  Peterer~王勇  阅读(521)  评论(0编辑  收藏  举报