1 前言
基于朋友的需要,需要搭建一个https的测试环境,所以写的这篇文章发给朋友;
2 nginx的安装配置
为了方便演示,这里nginx的安装使用快速安装脚本进行安装;
下载nginx快速安装脚本安装nginx:
1 2 3 4 5 6 7 |
#wget -SO lnmp.tyumen.tar.gz http://download.zhoufengjie.cn/scripts/tools/scripts/lnmp.tyumen.tar.gz #tar zxvf lnmp.tyumen.tar.gz #cd lnmp #./lnmp.sh |
公钥和私钥如果要自己测试的话,可以自己生成对应的证书进行测试;
1 2 3 |
#mkdir /usr/local/nginx/conf/ssl #cd /usr/local/nginx/conf/ssl |
生成私有密钥(必须输入一个私有key的密码进去)
1 |
# openssl genrsa -des3 -out zhoufengjie.cn.key 1024 |
生成无密码的证书key
1 2 3 |
# cp zhoufengjie.cn.key zhoufengjie.cn.key.bak # openssl rsa -in zhoufengjie.cn.key.bak -out zhoufengjie.cn.key |
1 |
openssl req -new -x509 -key zhoufengjie.cn.key -out ca.crt -days 3650 |
生成的ca.crt文件是用来签署下面的zhoufengjie.cn.csr文件。
使用私有key生成CSR(Certificate Signing Request)文件,这里根据情况填写组织机构等信息,Common Name填写域名,也可以写你的名字或者域名。这里是为了https申请,所以这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。
1 |
# openssl req -new -key zhoufengjie.cn.key -out zhoufengjie.cn.csr |
生成crt私有证书
1 2 3 |
# openssl x509 -req -days 3650 -in zhoufengjie.cn.csr -signkey zhoufengjie.cn.key -out zhoufengjie.cn.crt # openssl x509 -req -days 3650 -in zhoufengjie.cn.csr -CA ca.crt -CAkey zhoufengjie.cn.key -CAcreateserial -out zhoufengjie.cn.crt |
备份老的配置文件,增加新的配置
1 2 3 |
#cd /usr/local/nginx/conf/vhosts # for file in `ls *.conf`;do mv $file{,.bak};done |
编辑https代理配置,把如下的内容贴进去
# vi /usr/local/nginx/conf/vhosts/https_proxy.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
upstream https_proxy { server 10.10.100.31:443 max_fails=0; server 10.10.100.32:443 max_fails=0; } server { listen 443 ssl; ssl_certificate /usr/local/nginx/conf/ssl/zhoufengjie.cn.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/zhoufengjie.cn.key; server_name www.zhoufengjie.cn zhoufengjie.cn; location / { #proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding ""; add_header Power-By-Tyumen "$upstream_cache_status from $hostname"; proxy_pass http://https_proxy; #proxy_pass $scheme://$host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_max_temp_file_size 0; proxy_connect_timeout 30; } access_log /data/logs/https_proxy.log custom_log; } |
为了方便大家保存,www.zhoufengjie.cn上面的文章尽量都会做成pdf文档形式方便大家留存,尽最大方便给大家提供服务,本文文档(word原始文档)下载地址:点击下载