• 本地虚机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访问成功。

    1. server {
    2. listen 80;
    3. server_name demo.jumpserver.org; # 自行修改成你的域名
    4. client_max_body_size 4096m; # 上传文件大小限制
    5. location / {
    6. # 这里的 ip 是后端 JumpServer nginx 的 ip
    7. proxy_pass http://192.168.244.144;
    8. proxy_http_version 1.1;
    9. proxy_buffering off;
    10. proxy_request_buffering off;
    11. proxy_set_header Upgrade $http_upgrade;
    12. proxy_set_header Connection "upgrade";
    13. proxy_set_header Host $host;
    14. proxy_set_header X-Forwarded-For $remote_addr;
    15. }
    16. }

     在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。

    1. worker_rlimit_nofile 15360;
    2. events {
    3. #use epoll;
    4. accept_mutex off;
    5. multi_accept on;
    6. worker_connections 10240;
    7. }
    8. http {
    9. include mime.types;
    10. default_type application/octet-stream;
    11. client_max_body_size 500M;
    12. server_tokens off; ##hide version number
    13. server {
    14. listen 8080;
    15. server_name ********.com; # 自行修改成你的域名
    16. return 301 https://$server_name$request_uri;
    17. }
    18. server {
    19. listen 443 ssl;
    20. server_name ********.com; # 自行修改成你的域名
    21. ssl_certificate cert/server.pem; # 自行设置证书
    22. ssl_certificate_key cert/server.key; # 自行设置证书
    23. ssl_session_timeout 1d;
    24. ssl_session_cache shared:MozSSL:10m;
    25. 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;
    26. ssl_prefer_server_ciphers off;
    27. ssl_protocols TLSv1.1 TLSv1.2;
    28. add_header Strict-Transport-Security "max-age=63072000" always;
    29. client_max_body_size 4096m; # 录像及文件上传大小限制
    30. location / {
    31. # 这里的 ip 是后端 JumpServer nginx 的 ip
    32. proxy_pass http://192.168.13.187;
    33. proxy_http_version 1.1;
    34. proxy_buffering off;
    35. proxy_request_buffering off;
    36. proxy_set_header Upgrade $http_upgrade;
    37. proxy_set_header Connection "upgrade";
    38. proxy_set_header Host $host;
    39. proxy_set_header X-Forwarded-For $remote_addr;
    40. }
    41. }
    42. }

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

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

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

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

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

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

    1. server {
    2. listen 443 ssl;
    3. server_name *********.com; # 自行修改成你的域名
    4. ssl_certificate cert/server.pem; # 自行设置证书
    5. ssl_certificate_key cert/server.key; # 自行设置证书
    6. ... ...
    7. }

             页面效果如下:

            至此,大功告成。 

  • 相关阅读:
    算法设计与分析 SCAU19184 传球游戏
    Transformer - 基础分析与实现
    【Git学习二】时光回溯:git reset和git checkout命令详解
    Express 1 快速入门 - 安装
    基于java+ssm+shiro的出租房管理平台
    既然有HTTP协议,为什么还要有RPC
    GateWay实现负载均衡
    第十三更---大家都在那里查找资料??
    交换机与路由技术-32-命名ACL
    代码坏味道
  • 原文地址:https://blog.csdn.net/sinat_23030553/article/details/132616975