zoukankan      html  css  js  c++  java
  • 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来获取
  • 相关阅读:
    如何把py文件打包成exe可执行文件
    给大家推荐几款软件
    火狐浏览器报错“support.mozilla.org
    win怎么设置最快捷的下滑关机
    在Ubuntu上安装Chrome Driver和Firefox Driver
    解决pycharm安装包过程出现的问题:module 'pip' has no attribute 'main'
    如何实现windows命令提示符的tab补全?
    在windows下使用cmd命令全速下载百度云文件
    pandas用法大全
    oracle 19c database 静默安装
  • 原文地址:https://www.cnblogs.com/Peter2014/p/7616494.html
Copyright © 2011-2022 走看看