Nginx配置https(ssl证书)并反向代理Springboot Jar项目

本文介绍了如何在Linux环境下配置Nginx以实现HTTPS连接,使用SSL证书,并通过反向代理来服务Springboot打包的Jar项目。首先,找到nginx.conf配置文件并创建cert目录存放SSL证书。接着,编辑配置文件,添加反向代理规则,将http请求重定向至https。完成配置后,重启Nginx,通过访问https://申请证书的域名验证设置成功。
  • 下载安装NGINX
# 下载NGINX:
yum install nginx
# 启动nginx:
systemctl start nginx
# 加入开机启动:
systemctl enable nginx
# 查看nginx的状态:
systemctl status nginx
  • 配置NGINX

下载后需要对NGINX进行配置,这里的配置文件是nginx.conf,可以使用命令 find / -name “nginx.conf” 进行查找,默认是在 /etc/nginx/nginx.conf,在 /etc/nginx目录下创建cert,用于存放下载好的ssl证书(pem文件和key文件)

#创建存放证书的目录,并用xftp工具讲ssl证书文件上传到该目录
mkdir cert

在这里插入图片描述

之后对配置文件进行配置

# 打开nginx.conf配置文件
vim /etc/nginx/nginx.conf

找到项目的配置文件之后点击编辑。在最后一行加入以下配置:

server {
            listen 443 ssl;
            server_name localhost;  # localhost修改为您证书绑定的域名。
            ssl_certificate cert/xxxx.pem;   #将xxxx.pem替换成您证书的文件名。
            ssl_certificate_key cert/xxxx.key;   #将xxxx.key替换成您证书的密钥文件名。
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
            ssl_prefer_server_ciphers on;
            location / {
                proxy_pass   http://127.0.0.1:8080;  #选填你的端口号.即你的springboot项目运行所使用的端口号
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_set_header Upgrade-Insecure-Requests 1;
                proxy_set_header X-Forwarded-Proto https;

            }
        }

wq保存配置,重启Nginx,访问https://申请证书的域名。即可

 nginx -s reload

在这里插入图片描述

访问成功
若使用http://域名访问则会访问到nginx默认页面,若想访问到我们的springboot项目则需进行http相关配置
将默认规则替换为我们的新规则

server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

替换为

  server{
            listen 80;
            #重定向跳转https
            return 301  https://chenstar.top$request_uri;  #localhost修改为你的域名
        }

注意:注意server后面的括号是成对出现的

之后访问http://chenstar.top/域名也会跳转到https://chenstar.top/访问成功

Nginx是一个流行的开源Web服务器,可以作为反向代理和负载均衡器。要在Nginx配置HTTPS请求到Spring Boot项目,你需要完成以下几个步骤: 1. **生成SSL证书**: - 安装Let's Encrypt或者其他SSL证书颁发机构的服务,获取免费的SSL证书和私钥文件。 2. **配置Nginx**: - 在Nginx的`nginx.conf`或虚拟主机配置文件(如`:server_name yourdomain.com;`)中添加以下内容: ```nginx server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; include snippets/ssl_params.conf; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 这里假设Spring Boot应用监听的是8080端口。 3. **启动Nginx**: 确保Nginx服务已经安装在运行状态。重启Nginx服务使新配置生效。 4. **配置Spring Boot**: Spring Boot默认支持HTTPS,需要启用它。在application.properties或application.yml中添加: ```yaml spring.mvc.server.port=8443 spring.http.port=8080 server.tomcat.access-log-enabled=false server.ssl.key-store-type=JKS server.ssl.key-store=/path/to/your/key.jks server.ssl.key-store-password=your_password server.ssl.trust-store-type=JKS server.ssl.trust-store=/path/to/your/truststore.jks server.ssl.trust-store-password=your_password ``` 5. **部署Spring Boot应用**: 将Spring Boot应用打包成war文件或者jar文件,将它放在合适的位置,例如Nginx的`/usr/share/nginx/html`目录下,以便Nginx代理访问。 6. **检查测试**: 启动Spring Boot应用验证Nginx是否能够正确转发HTTPS请求到应用程序。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值