Nginx配置HTTPS并将HTTP请求重定向到HTTPS

/ 0 条评论 / 565人阅读

在阿里云获取免费的HTTPS证书

    配置HTTPS之前首先需要拥有HTTPS证书,在阿里云可以获得域名免费的一年HTTPS证书

    访问 https://common-buy.aliyun.com/?commodityCode=cas#/buy 选择免费型DV SSL购买即可

    如果你的域名是其他服务商提供的也可以在百度搜索:你的域名服务商+免费HTTPS证书,即可找到对应教程

对外开放443端口

        使用HTTPS需要服务端开放443端口,请检查服务器的安全组是否开放443端口,以及检查服务器系统防火墙是否开放443端口,如果未开放的话HTTPS链接将不能正常访问。

配置HTTPS访问

server {
    ssl on;
    listen  443;
    server_name www.wenhaofan.com;
    client_max_body_size 1g;
    ssl_certificate   /www/ssh.pem
    ssl_certificate_key  /www/ssh.key;
 
  	
    location /  {
        proxy_set_header Host $http_host;
        proxy_pass   http://127.0.0.1:8080;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

将上述配置文件中的server_name修改为你的HTTPS证书对应的域名,如果这里的server_name和你的HTTPS证书颁发的域名不一致是不能正常访问的。

将ssl_sertificate修改为下载的SSL证书中以.pem结尾的文件存放路径

将ssl_sertificate_key修改为下载的SSL证书中以.key结尾的文件存放路径

将proxy_pass修改为你需要代理的后台服务访问url

配置HTTP请求转发至HTTPS

server {  
    listen 80;  
    server_name www.wenhaofan.com;  
      
    rewrite ^(.*)$  https://$host$1 permanent;  
}

将server_name修改为需要转发至HTTPS的域名 例如:现在访问 http://test.wenhaofan.com/ 转发至https://test.wenhaofan.com,就将server_name修改为test.wenhaofan.com 即可

Responses /