通过 SSL 证书访问 JumpServer 的配置方案

前提条件

  1. 已安装并运行JumpServer
  2. 拥有一个域名并已解析到JumpServer服务器
  3. 服务器已开放80和443端口(或您选择的其他验证方式所需端口)
  4. 已安装acme.sh工具或具有安装权限

详细步骤

1. 安装acme.sh

安装很简单,一条命令:

# 使用root用户安装
curl https://get.acme.sh | sh -s email=my@example.com
~/.acme.sh/acme.sh --register-account -m admin@example.com #这会在 Let's Encrypt 注册一个账户,邮箱是 admin@example.com。

或者

wget -O -  https://get.acme.sh | sh -s email=my@example.com

普通用户和 root 用户都可以安装使用

通过 SSL 证书访问 JumpServer 的配置方案
通过 SSL 证书访问 JumpServer 的配置方案

安装过程进行了以下几步:

  • 把 acme.sh 安装到你的 home 目录下:
    • ~/.acme.sh/
    • 并创建 一个 shell 的 alias,例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh
  • 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书,如果快过期了,需要更新,则会自动更新证书。
  • 安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中: ~/.acme.sh/
  • 注意:如果安装完成后提示 -bash: acme.sh: command not found,需要手动执行 source ~/.bashrc

2. 申请SSL证书

方法一:HTTP验证(需要开放80端口)

# 为域名申请证书(替换yourdomain.com为您的实际域名)
acme.sh --issue -d yourdomain.com --standalone
申请SSL证书
申请SSL证书

方法二:DNS验证(无需开放端口)

# 使用DNS API验证(以阿里云为例)
export Ali_Key="your_ali_key"
export Ali_Secret="your_ali_secret"
acme.sh --issue --dns dns_ali -d yourdomain.com -d *.yourdomain.com

替换证书方法

1. 先上传证书文件到堡垒机服务器上,之后进入到证书目录中,修改配置文件前需要先关闭 JumpServer 服务,如下命令所示。

./jmsctl.sh stop 关闭
./jmsctl.sh start 开启
cd /opt/jumpserver/config/nginx/cert/   # 进入证书存放目录
通过 SSL 证书访问 JumpServer 的配置方案
通过 SSL 证书访问 JumpServer 的配置方案
申请SSL证书

通过 SSL 证书访问 JumpServer 的配置方案

2. 把新证书的文件放到此目录下。

mv 新证书文件位置 /opt/jumpserver/config/nginx/cert/    # 把文件从当前位置移动到证书存放目录下

例:新文件位置为 /etc/ 下,文件名称为 xxx.crt,则命令为
mv /etc/xxx.crt   /opt/jumpserver/config/nginx/cert/。

后续有两种方法

1. 如不想修改配置文件,可以修改文件名称

mv 新文件名称 旧文件名称   # 修改当前文件名称为旧文件名称

例:新文件名称为 xxx.crt,则命令为 mv  xxx.crt  server.crt。

2. 修改配置文件
进入文件中修改文件名称为新文件名称。

vi /opt/jumpserver/config/nginx/lb_http_server.conf   # 进入文件修改文件内容

在英文键盘下按 a 键,进行文件编辑。

找到下图标红位置进行修改。

修改配置文件,把旧文件名替换为新文件名。

之后点击 esc 键退出编辑,在英文键盘下选择冒号,之后输入 wq ,按回车键进行保存退出。

3. 安装证书到JumpServer

# 创建证书存放目录
mkdir -p /opt/jumpserver/config/ssl

# 安装证书(替换yourdomain.com为您的实际域名)
acme.sh --install-cert -d yourdomain.com \
--cert-file /opt/jumpserver/config/ssl/cert.pem \
--key-file /opt/jumpserver/config/ssl/key.pem \
--fullchain-file /opt/jumpserver/config/ssl/fullchain.pem \
--reloadcmd "systemctl restart jms_nginx"

4. 配置JumpServer使用HTTPS

编辑JumpServer配置文件:

vim /opt/jumpserver/config/config.txt
JumpServer配置文件
JumpServer配置文件

修改或添加以下内容:

# 启用HTTPS
USE_HTTPS=true

# 证书路径
SSL_CERTIFICATE=/opt/jumpserver/config/ssl/fullchain.pem
SSL_CERTIFICATE_KEY=/opt/jumpserver/config/ssl/key.pem

5. 重新配置并重启JumpServer

cd /opt/jumpserver
./jms stop
./jms reconfigure
./jms start

6. 验证HTTPS访问

在浏览器中访问:https://yourdomain.com,应该能看到JumpServer登录页面,并且浏览器地址栏显示安全锁标志。

7. 设置证书自动续期

acme.sh默认会自动设置续期任务,您可以通过以下命令检查:

crontab -l

应该能看到类似如下的条目:

复制

0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

8. (可选) 强制HTTP跳转HTTPS

编辑Nginx配置文件:

/opt/jumpserver/config/nginx
路径:/opt/jumpserver/config/nginx
vim /opt/jumpserver/nginx/conf.d/jumpserver.conf

在server块中添加以下内容:

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;
}

然后重启Nginx:

systemctl restart jms_nginx

注意事项

  1. 如果使用防火墙,请确保已放行443端口
  2. 证书默认有效期为90天,acme.sh会自动续期
  3. 如果JumpServer部署在反向代理后面,需要在反向代理上配置SSL
  4. 生产环境建议使用通配符证书或购买商业证书

白话Discuz X3.5 QQ互联回调地址配置指南:https://www.hao0564.com/5252.html

一条评论

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注