前提条件
- 已安装并运行JumpServer
- 拥有一个域名并已解析到JumpServer服务器
- 服务器已开放80和443端口(或您选择的其他验证方式所需端口)
- 已安装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 用户都可以安装使用

安装过程进行了以下几步:
- 把 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

方法二: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 的配置方案
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

修改或添加以下内容:
# 启用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配置文件:

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
注意事项
- 如果使用防火墙,请确保已放行443端口
- 证书默认有效期为90天,acme.sh会自动续期
- 如果JumpServer部署在反向代理后面,需要在反向代理上配置SSL
- 生产环境建议使用通配符证书或购买商业证书
白话Discuz X3.5 QQ互联回调地址配置指南:https://www.hao0564.com/5252.html
阐述的很详细,谢谢