[nginx] 给http网站访问加https

只需要给服务器配置SSL证书信息就可以了

1.申请域名SSL证书,方式有很多,本例是再腾讯云申请了一个免费证书。


需要一点时间审核,审核通过之后,下载证书待用


2.去nginx配置文件中加入如下配置,

server {
    listen 443;
        server_name XXXXX.com; #填写绑定证书的域名
        ssl on;
        ssl_certificate /etc/nginx/1_xxxxx.xyz_bundle.crt;
        ssl_certificate_key /etc/nginx/2_xxx.xyz.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;

    }

}

上面的配置弄好之后,重启nginx

service nginx restart

这个时候就可以用https://域名  访问网站了

同时 http://域名 也是可以访问的,因为80端口默认访问http,这个时候如果想要用户访问http时自动跳转到https需要加入如下配置就可以了

再80端口的配置的location /中,加入

rewrite ^(.*)$  https://$host$1 permanent;



这个时候当用户访问http会301重定向到https。

但还有一个问题,就是当用户直接访问ip时,网页会显示证书无效(网站不安全),因为我们的证书不是ip证书

这个时候只需要把80端口的server_name 改成相应的域名

 server_name  xxx.xyz www.xxx.xyz;



另外再添加如下代码

server 

listen 80 default; 
server_name _; 
return 500; 

}

这样这用ip访问网站时,访问500;


也可以让用户ip访问时跳转到相应页面

server 


listen 80 default; 
server_name _; 
rewrite ^(.*) http://www.xxx.xyz  permanent;
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值