本地虚机Jumpserver使用域名访问报错 使用IP+端口没有错误

背景:

我在本地Windows VMware 15的环境中部署了CentOS7.5,下载jumpserver-offline-installer-v2.28.1-amd64-138.tar.gz并安装部署。

需求:

1、能使用http:ip访问堡垒机。达成;

2、能使用http:域名访问堡垒机。达成;

3、能使用https:ip访问堡垒机。达成;

4、能使用https:域名访问堡垒机。达成;

5、最终目标是能在https:域名访问堡垒机时,证书安全。达成。

实现过程:

1、能使用http:ip访问堡垒机。

这一个过程比较简单,直接无脑离线安装 - JumpServer 文档操作就行,http:ip访问成功。

复制代码
server {

    listen 80;
    server_name demo.jumpserver.org;  # 自行修改成你的域名

    client_max_body_size 4096m;  # 上传文件大小限制

    location / {
            # 这里的 ip 是后端 JumpServer nginx 的 ip
            proxy_pass http://192.168.244.144;
            proxy_http_version 1.1;
            proxy_buffering off;
            proxy_request_buffering off;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $remote_addr;
    }
}

在Config.txt中起作用的主要是这一段:

运行结果,页面上:

2、能使用http:域名访问堡垒机。

这一阶段只需要在上一个http://ip的基础上,修改一下hosts文件,把ip指向域名即可,代码如下:

复制代码
192.168.13.187 域名.com

效果如下:

3、能使用https:ip访问堡垒机。

这一阶段需要使用nginx代理,因此有两个选择,一个使用jumpserver自带的nginx,另一个是自己部署一套nginx。

使用jumpserver自带的nginx,可以修改jumpserver目录的conf下自带的lb_http_server.conf文件,参考反向代理 - JumpServer 文档

但我选择单独部署一个新的nginx代理https。jumpserver保持http://ip访问的配置,修改config.txt的内容把USE_LB=1屏蔽掉。nginx内给出如下配置。 在conf目录下新增cert目录,里面加入server.pem和server.key。

复制代码
worker_rlimit_nofile 15360;
events {
    #use                epoll;
    accept_mutex        off;
    multi_accept        on;
    worker_connections  10240;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 500M;
    server_tokens off;  ##hide version number

	server {
	    listen 8080;
	    server_name ********.com;  # 自行修改成你的域名
	    return 301 https://$server_name$request_uri;
	}
	server {
	    listen 443 ssl;
	    server_name          ********.com;  # 自行修改成你的域名
	    ssl_certificate      cert/server.pem;  # 自行设置证书
	    ssl_certificate_key  cert/server.key;  # 自行设置证书
	    ssl_session_timeout 1d;
	    ssl_session_cache shared:MozSSL:10m;
	    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
	    ssl_prefer_server_ciphers off;
	    ssl_protocols TLSv1.1 TLSv1.2;
	    add_header Strict-Transport-Security "max-age=63072000" always;
	
	    client_max_body_size 4096m;  # 录像及文件上传大小限制
	    
	    location / {
	        # 这里的 ip 是后端 JumpServer nginx 的 ip
	        proxy_pass http://192.168.13.187;
	        proxy_http_version 1.1;
	        proxy_buffering off;
	        proxy_request_buffering off;
	        proxy_set_header Upgrade $http_upgrade;
	        proxy_set_header Connection "upgrade";
	        proxy_set_header Host $host;
	        proxy_set_header X-Forwarded-For $remote_addr;
	    }
	}
}

结果:可以用https://ip来访问

ps:其实直接使用lb_http_server.conf,把server部分贴上去也可以实现该效果。

4、能使用https://域名访问堡垒机

https://ip成功的基础上,修改一下hosts文件,把ip指向域名即可。效果如下:

5、最终目标是能在https:域名访问堡垒机时,证书安全。

原本一直出不来安全的标志,发现是证书读取路径的问题,在nginx的conf目录下新增一个cert目录,然后把你的pem/crt和key放进去,并且在nginx.conf中配置代码如下:

复制代码
	server {
	    listen 443 ssl;
	    server_name          *********.com;  # 自行修改成你的域名
	    ssl_certificate      cert/server.pem;  # 自行设置证书
	    ssl_certificate_key  cert/server.key;  # 自行设置证书
        ... ...
    }

页面效果如下:

至此,大功告成。

相关推荐
wuli_滔滔16 分钟前
【贡献经历】从零开始为Kurator编写一个集成测试用例:深度解析测试框架与实战指南
网络·测试用例·kurator·核心组件·设计理念
秋邱25 分钟前
高等教育 AI 智能体的 “导学诊践” 闭环
开发语言·网络·数据库·人工智能·python·docker
F36_9_28 分钟前
在线协作工具十款测评
网络·数据库
不染尘.1 小时前
计算机网络概述
网络·计算机网络
小李独爱秋1 小时前
Cisco Packet Tracer仿真实验 12:运输层端口
网络·网络协议·计算机网络·智能路由器·仿真实验
xxp43211 小时前
Qt 网络编程 UDP通信
网络·网络协议·udp
hfut02883 小时前
第25章 interface
linux·服务器·网络
Sinowintop5 小时前
易连EDI-EasyLink SFTP文件传输
运维·服务器·网络·sftp·edi·ftp·国产edi软件
7***u21612 小时前
显卡(Graphics Processing Unit,GPU)架构详细解读
大数据·网络·架构
河北瑾航科技14 小时前
广西水资源遥测终端 广西水利遥测终端 广西用水监测遥测终端 河北瑾航科技遥测终端机HBJH-B01说明书
网络·科技·水文遥测终端机·遥测终端机·广西水资源遥测终端机·广西水利遥测终端·广西用水终端