最近碰到个需求,原来用http访问,因为被第三方植入广告;所以要将http变成https访问,如果用户用http访问先跳转到https,然后经过Nginx代理后以http的形式访问原来的程序,这样就不需要更改任何的代码了 ;
在配置过程遇到几个小问题,经过多方查询,借鉴很多大佬的宝贵经验,最后得以一一解决;
第一个问题:首先查看是否开启ssl模块:(如果未开通:启动nginx的可能会报错 nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf)
1 、切换到源码包:
cd /usr/local/nginx/nginx-1.13.9
2、查看已安装的Nginx的已有模板:
/usr/local/nginx/sbin/nginx -V
我的查询结果是:configure arguments: --prefix=/usr/local/nginx (没有任何模板,我是新安装的Nginx)
3、执行命令:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
会加载一系列的配置信息
4、完成后 make
5、然后备份原有已安装好的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
6、然后结束Nginx线程;
7、然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
8、最后查看一次配置
/usr/local/nginx/sbin/nginx -V
我的变成了
第一个问题:关于没有ssl模板问题解决;
第二个问题:生成OPenssl生成证书 可以参考 https://blog.csdn.net/danfengw/article/details/62218937
//key的生成 , 创建私钥
1、openssl genrsa -des3 -out huai.key 2048
//csr的生成方法需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。
2、openssl req -new -key danfeng.key -out huai.csr
//下面的步骤是客户端的端私钥的生成和服务端证书的生成
3、openssl rsa -in danfeng.key -out huai_nopass.key
//自签署证书
4、openssl req -new -x509 -days 3650 -key huai_nopass.key -out huai.crt
找到conf文件夹,将openssl生成的 文件放到和conf同级目录下
第三个问题 :配置Nginx.conf文件
server {
# listen 80;
listen 443 ssl;
server_name localhost;
# ssl on;
ssl_certificate danfeng.crt;
ssl_certificate_key danfeng_nopass.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
# root html;
# index 50x.html index.htm;
proxy_redirect off;
proxy_set_header Host 192.168.1.220;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.220:8090;
}
}
server {
listen 80;
server_name localhost;(域名)
rewrite ^(.*)$ https://$host$1 permanent;
}
结果:
结果:用http://192.168.1.226/quickpay-admin/login.html 跳转到下面
因为解决问题查询了很多的博客
https://blog.csdn.net/danfengw/article/details/62218937
https://www.v2ex.com/t/305568;
https://www.cnblogs.com/kevingrace/p/6187072.html
借鉴了很多东西;如有侵权,请联系删除;