jumpserver/docs/nginx-with-ssl-configuratio...

2.2 KiB
Raw Blame History

使用Nginx搭建SSL配置

跳板机是所有服务器的入口,所以,它的安全至关重要。因此,建议把Jumpserver搭建在内网环境中并且加上SSL证书保证数据传输的安全。

nginx的安装

不同的操作系统及版本,安装方法都不太一样。我们以Debian为例。

apt-get update
apt-get install -y nginx

更多安装示例请参考 Nginx官方安装指南

Nginx中的SSL的配置

  • 编辑 /etc/nginx/sites-enabled/default 或者指定的Jumpserver的配置文件

  • 示例如下

server {
  listen              443;
  listen              80;
  server_name         YOUR_DOMAIN;
  ssl_certificate     YOUR_DOMAIN_CRT;
  ssl_certificate_key YOUR_DOMAIN_KEY;
  ssl_protocols	TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers	HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers on;
  ssl on ;

  if ($ssl_protocol = "") {
    rewrite ^ https://$host$request_uri? permanent;
  }

  location / {
    proxy_set_header Connection "";
    proxy_http_version 1.1;
    proxy_pass      http://JUMPSERVER_HOST:WEB_PORT;
  }

  location /_ws/ {
    keepalive_timeout 600s;
    send_timeout 600s;
    proxy_connect_timeout 7d;
    proxy_send_timeout 7d;
    proxy_read_timeout 7d;
    rewrite ^/_ws(/.*)$ $1 break;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass      http://JUMPSERVER_HOST:WS_PORT;
  }
}

  • 请替换如下表格的关键字
关键字 示例 说明
YOUR_DOMAIN example.com Jumpserver的域名
YOUR_DOMAIN_CRT /etc/nginx/certs/example.crt SSL证书的CRT文件
YOUR_DOMAIN_KEY /etc/nginx/certs/example.key SSL证书的KEY文件
JUMPSERVER_HOST 127.0.0.1 Jumpserver服务器IP
WEB_PORT 80 Jumpserver网页监听端口
WS_PORT 3000 websocket端口Jumpserver 默认为3000
  • 此配置会强制使用https, 建议加上(即if判断的那三行)。