nginx反向代理jumpserver

发布时间 2023-12-19 15:27:48作者: 厚礼蝎

背景

之前的文章介绍了,如何使用docker部署jumpserver

当需要配置成https的时候,会发现很不好调整

那么就出现了一种新的场景,那就是,后端服务不能动,如何在原来的基础上实现https的方式访问

思路

通过nginx反向代理给后端

实现

jumpserver的web服务地址是 10.0.0.12:8888

生成证书

这里使用自签名证书,或者你可以向服务商申请证书

openssl req -new -newkey rsa:2048 -sha256 -nodes -out server.csr -keyout server.key -subj "/C=CN/ST=Guangzhou/L=NanSha/O=hexug Inc./OU=Web Security/CN=hexug.com"
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

配置nginx

vim /etc/nginx/sites-enabled/default

server {
	#同时监听80和443端口
	listen 80;
	listen      443 ssl;
	server_name  10.0.0.12;
	charset utf-8;
	
	#判断,跳转 将所有http服务都跳转到https上
	if ( $scheme = 'http' ) {
		return 302 https://10.0.0.12/;
	}
	
	#日志
	#access_log  logs/host.access.log  main;
	
	#证书 证书的位置 /etc/nginx/ssl
	ssl_certificate ssl/server.crt;
	ssl_certificate_key ssl/server.key;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
	
	#服务部分
	location / {
		#index index.html index.htm;
		#root html;
		proxy_pass http://10.0.0.12:8888; 
		proxy_set_header Host $host; 
		proxy_set_header X-Real-IP $remote_addr; 
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 下面四行,是为了解决websockt代理,因为jumpserver的缘故,普通的http服务,只不需要配置下面的四行
		proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "upgrade";   
        proxy_set_header X-Forwarded-Proto $scheme; 
	}
	
	#错误部分
	error_page  404              /404.html;
	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
            root   html;
    }
}