Nginx支持https访问(将网址http修改为https访问,添加ssl证书支持)

Nginx支持https访问(将网址http修改为https访问)

说明:小程序一期开发完成,将要上线的时候微信小程序提示只能使用https完成线上访问,然后就需要修改自己的nginx配置。

首先需要https证书

我们项目小程序开发的证书是公司支持的,由公司项目分配ssl证书。我们分配的是一个jks文件和ssl证书的密码。腾讯云或者阿里云的证书申请需要去官方查询,都有详细教程。然后阿里云的证书给的是文件压缩包(pem文件与key文件),这个文件压缩包是你的公私钥,需要在nginx配置。

centos7支持SSL

  1. 先进行SSL模块下载
-y指的是自动处理依赖性关系,并且一次安装所有依赖的软件包,无需每次手动确认
yum install -y gcc
yun install -y openssl openssl-devel
  1. SSL模块验证,出现版本信息即为安装成功
    在这里插入图片描述

Nginx支持ssl模块

默认情况下,nginx不支持ssl,该模块并未被安装。我们需要指定-with-http_ssl_module配置。

  1. 我们进去nginx文件夹,我的路径是/home/okwzh/install/nginx-1.20.1/
cd /home/okwzh/install/nginx-1.20.1/
  1. 修改nginx配置信息
./configure --prefix=你的nginx路径 --with-http_stub_status_module --with-http_ssl_module
  1. 进行make,我看网上博客都是make,不要make install。需要将配置文件给覆盖,不要重新编译。然后我是重新编译,并没有出错,覆盖的话我没有试过。https://blog.csdn.net/duyusean/article/details/79348613https://www.cnblogs.com/mingyue5826/p/10782950.html这是我看人家覆盖的博客,你们可以试试这个。
make 
  1. 我的话是直接进行make,make install,然后并没有出现错误,重新编译不会改变你之前的nginx配置文件。
make install
  1. 重启nginx
./nginx -s reload # 重启nginx
  1. 这是我的nginx版本详细信息,支持SSL。
    在这里插入图片描述
将阿里云或腾讯云的证书文件放在nginx配置文件夹里
  1. 这里可以使用xftp或者lrzsz命令,将两个文件上传到你的服务器里,然后放在conf配置文件夹中,
yum install -y lrzsz
# rz上传本地文件
# sz 下载文件到本地
  1. 这里是我的配置文件夹,pem与key文件是阿里云的证书文件,pem是公钥,key是私钥。ssl_1.key是我的私钥备份文件。
    在这里插入图片描述

将nginx配置文件nginx.conf里的http server服务修改为https server服务

  1. 修改nginx.conf文件,配置ssl信息
#ssl文件地址
ssl_certificate /home/okwzh/install/nginx-1.20.1/conf/ssl.pem; #这里是你的pem公钥文件,路径要写绝对路径
ssl_certificate_key /home/okwzh/install/nginx-1.20.1/conf/ssl.key; #这里是你的key私钥文件,路径要写绝对路径

#ssl on; # 打开ssl支持,1.15版本以后就默认打开,不需要配置
#ssl相关配置
ssl_session_timeout  5m; # 缓存有效期
ssl_prefer_server_ciphers  on; # 如果不指定默认为off,当为on时,在使用SSLv3和TLS协议时,服务器加密算法将优于客户端加密算法。
ssl_protocols SSLv2 SSLv3 TLSv1.2; # 安全连接可选的加密协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;      # 配置ssl加密算法
ssl_session_cache shared:SSL:1m;
  1. 将之前的http server服务改为使用https server服务
http {
    server {
         #http服务
    }
    #HTTPS server
    server {
         # 使用nginx https服务
    }
}
  1. 配置文件
http {
    server {
		#之前的http服务配置,将它修改到https下。
    }
    
    #HTTPS server
    #
    server {
        #监听端口
        listen       8071 ssl;
        #监听地址,写成域名或者ip地址
        server_name  101.89.119.204;
        #ssl on; # nginx 1.15以及更新的版本,不在支持ssl on;的写法 了

        #ssl文件地址
        ssl_certificate /home/okwzh/install/nginx-1.20.1/conf/ssl.pem;
        ssl_certificate_key /home/okwzh/install/nginx-1.20.1/conf/ssl.key;
       
        #ssl相关配置
        ssl_session_timeout  5m; # 缓存有效期
        ssl_prefer_server_ciphers  on; # 使用服务器端的首选算法
        ssl_protocols SSLv2 SSLv3 TLSv1.2; # 安全连接可选的加密协议
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;                           
        ssl_session_cache shared:SSL:1m;

        # 项目中的静态文件地址(django项目)
        location /static {
            alias /home/iptv_application_install_applet/static/;
        }
        # 从8080端口过来的请求,跳转到这个地址(这个是http请求,socket没有配置)
        location / {
            #root   html;
            #index  index.html index.htm;
	        include	uwsgi_params;
            #记得一定要跟uwsgi中的端口保持一致,不然无法访问uwsgi启动的服务
            proxy_pass	http://127.0.0.1:8000/;
        }
        client_max_body_size  75M;
        client_header_timeout 10s;
        client_body_timeout 20s;
        send_timeout 30s;
        client_body_buffer_size 8k;
		
        add_header X-Content-Type-Options nosniff;
        add_header 'Referrer-Policy' 'origin';
        add_header X-Download-Options "noopen" always;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        add_header Strict-Transport-Security value;
        add_header X-Permitted-Cross-Domain-Policies  "master-only";
        add_header X-Frame-Options SAMEORIGIN;
        add_header Content-Security-Policy "default-src  'unsafe-inline' 'unsafe-eval' mediastream: ";
        add_header X-Content-Type-Options: nosniff;
        add_header X-XSS-Protection "1; mode=block";
    }
}
  1. 检查nginx配置文件
cd sbin
./nginx -t

在这里插入图片描述
5. 重新启动nginx

/home/okwzh/install/nginx-1.20.1/sbin/nginx -c /home/okwzh/install/nginx-1.20.1/conf/nginx.conf

nginx命令

nginx -V # 查看nginx详细版本信息
nginx -s stop # 停止nginx服务
nginx -s reload # 重启nginx服务
nginx绝对路径 -c nginx配置文件 # 启动nginx服务
ps -ef | grep nginx # 查看nginx进程
kill -9 nginx_PID # 关闭nginx进行服务
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx可以通过SSL/TLS对HTTP进行加密,这就是HTTPS。而如果想要使用HTTPS访问HTTP,则需要在Nginx配置中设置反向代理。反向代理是一种服务器组件,它可以接收客户端请求并将其转发到其他服务器上,然后将响应结果返回给客户端。以下是如何在Nginx中设置反向代理以使得HTTPS访问HTTP的步骤: 第一步是将HTTPHTTPS配置到同一个server块中。修改Nginx配置文件中的server块如下: server { listen 80; listen 443 ssl; server_name example.com; ssl_certificate /path/to/ssl_certificate.pem; ssl_certificate_key /path/to/ssl_certificate_key.pem; location / { proxy_pass http://example.com:80; proxy_redirect http:// https://; } } 以上配置使得Nginx同时监听80和443端口,通过ssl_certificate指定证书和私钥,然后创建location块作为反向代理规则。其中,proxy_pass指定需要代理的HTTP服务地址,而proxy_redirect指定将HTTP请求重定向到HTTPS。 第二步是开启Nginx SSL模块。在编辑后的Nginx配置文件末尾添加以下内容: ssl_protocols TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; 这里指定使用TLSv1.2协议和安全的密码套件。 第三步是重新启动Nginx以应用新的配置。在终端输入以下命令重载Nginx: sudo systemctl reload nginx.service 当上述步骤完成后,HTTPS访问HTTP就可以正常运行了。通过以上步骤,Nginx就可以通过反向代理将HTTPS请求转发到HTTP服务器上,并将响应结果返回给客户端。这种方式可以达到对HTTP流量进行加密的目的,提高安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值