nginx1.8.1配置SSL使用HTTPS及access.log配置记录,


一、在Centos7.4上构建私有CA并颁发证书:
要想使用SSL对http协议进行数据加密,必须有一个CA颁发的k证书,以下步骤实现在Centos7.4上给自己颁发私有证书:
1、在/etc/nginx/创建ssl目录:
15
并使用(umask 077;openssl genrsa -out ssl/nginx.key 2048)命令创建一个私钥,umask 077保证仅属主可读写.
2、创建证书请求
openssl req -new -key ssl/nginx.key -out nginx.csr -days 365
17
依次填入的信息为国家、省名、城市名、公司名、部门名称、网站名称(这个最好填入跟你的网站一样的域名,如www.aliyun.com)、后三项可敲回车跳过.
3、构建私有CA机构:
进入/etc/pki/CA: cd /etc/pki/CA目录
执行(umask 077;openssl genrsa -out private/ca.pem 2048)
18
创建自签署证书:
openssl req -new -x509 -key private/ca.pem -out cacert.pem -days 365
19
4、在/etc/pki/CA/目录下创建一个index.txt: touch index.txt
echo 01 >serial
5、使用创建好的私有CA签署生成nginx下SSL的server证书
openssl ca -in /etc/nginx/ssl/nginx.csr -out /etc/nginx/ssl/nginx.crt -days 365
20

6、修改/etc/nginx/conf.d/example_ssl.conf配置文件:
21
其中server_name最好与ssl证书定义的域名一致
ssl_certificate /etc/nginx/ssl/nginx.crt;###当前虚拟主机使用的pem格式的证书文件
ssl_certificate_key /etc/nginx/ssl/nginx.key;###ssl证书文件中的公钥配对的私钥文件路径
ssl_session_cache shared:SSL:1m;###指明SSL会话的缓存机制为shared,表示缓存有所有的worker进程共享,每1m空间可缓存约4000个会话,可适量调大该值
ssl_session_timeout 5m;###ssl会话超时时长
ssl_ciphers HIGH:!aNULL:!MD5;###ssl会话使用的加密算法
ssl_prefer_server_ciphers on;###优先使用服务器端的加密算法
7、重载配置进行测试nginx -s reload:
使用https://ip 访问测试,提示
22
说明已经成功使用ssl加密http协议
8、将之前的http协议都重定向至https会话:
只需要在之前定义的http server{}上下文中添加:
rewrite ^(.*)$ https://$server_name$1 permanent; ###表示将匹配到的http请求均重定向至https

二、nginx的access_log模块配置记录
1、open_log_file_cache max=1000 inactive=20s valid=1m;

日志写入的缓存设置,max最大缓存条目,inactive非活动时间时长,valid缓存条目有效性检查频率

2、access_log /var/log/nginx/access.log main buffer=16k flush=120s;####buffer缓冲区大小为16k,到达此值后才有写入磁盘中,可以优化磁盘io. flush表示每隔120秒会去同步缓冲区中的日志到磁盘中

相关内容