环境准备
本次搭建环境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 versionOpenSSL 1.0.1e-fips 11 Feb 2013cd /server/tools/wget http://www.openssl.org/source/openssl-1.0.1g.tar.gztar xf openssl-1.0.1g.tar.gzcd openssl-1.0.1g./config shared zlibmakemake installmv /usr/bin/openssl /usr/bin/openssl.oldmv /usr/include/openssl/ /usr/include/openssl.oldln -s /usr/local/ssl/bin/openssl /usr/bin/openssln -s /usr/local/ssl/include/openssl/ /usr/include/openssl#更新动态链接库数据echo "/usr/local/ssl/lib/" >> /etc/ld.so.confldconfig -v[root@test88 openssl-1.0.1g]# openssl versionOpenSSL 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.confworker_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来获取
Nginx配置HTTPS
原文地址:http://www.cnblogs.com/Peter2014/p/7616494.html