启用WorkBuddy的HTTPS访问有四种方法:一、Nginx反向代理配置SSL证书;二、通过Java参数在WorkBuddy启动时直接启用HTTPS;三、使用Certbot自动获取并部署Let’s Encrypt证书;四、Docker容器挂载证书并注入Spring Boot SSL参数。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜如果您在安装WorkBuddy时需要启用HTTPS访问,则必须正确配置SSL证书以确保通信加密。以下是完成该配置的多种可行方法:
一、使用Nginx反向代理配置SSL证书
通过Nginx作为反向代理层,在其上部署SSL证书,使WorkBuddy后端服务仍以HTTP方式运行,而外部访问走HTTPS。此方式无需修改WorkBuddy源码或启动参数。
1、将SSL证书文件(如fullchain.pem和privkey.pem)上传至服务器的/etc/nginx/ssl/目录。
2、编辑Nginx配置文件,例如/etc/nginx/sites-available/workbuddy,添加server块并启用SSL监听443端口。
3、在server块中配置ssl_certificate指令指向fullchain.pem路径,ssl_certificate_key指向privkey.pem路径。
4、设置location / { proxy_pass http://127.0.0.1:8080; },将请求转发至WorkBuddy默认HTTP端口。
5、执行nginx -t验证配置语法,确认无误后运行systemctl reload nginx生效。
二、在WorkBuddy启动参数中直接启用HTTPS
WorkBuddy支持通过Java系统属性指定密钥库路径与密码,使其内置Tomcat直接启用HTTPS监听,适用于独立部署场景。
1、将PKCS#12格式证书(如workbuddy.p12)放置于WorkBuddy安装目录下的config/ssl/子目录中。
2、修改启动脚本start.sh,在java命令行中追加以下JVM参数:-Dserver.ssl.key-store=config/ssl/workbuddy.p12 -Dserver.ssl.key-store-password=changeit -Dserver.ssl.key-store-type=PKCS12 -Dserver.ssl.key-alias=tomcat。
3、确保-Dserver.port=8443参数已设置,避免与HTTP端口冲突。
4、执行./start.sh启动服务,验证https://your-domain:8443能否正常加载登录页。
三、使用Let’s Encrypt自动签发并部署证书
借助Certbot工具为WorkBuddy绑定的域名自动获取免费SSL证书,并配合Nginx实现自动续期,适合面向公网的生产环境。
1、安装certbot及nginx插件:apt install certbot python3-certbot-nginx(Ubuntu/Debian)。
2、确保WorkBuddy的Nginx配置中已正确设置server_name,并能响应HTTP 80端口的/.well-known/acme-challenge路径。
3、运行certbot --nginx -d your-workbuddy-domain.com,按提示选择重定向HTTP到HTTPS选项。
4、Certbot将自动更新Nginx配置,插入ssl_certificate和ssl_certificate_key指令,并重载服务。
5、验证证书有效期:openssl x509 -in /etc/letsencrypt/live/your-workbuddy-domain.com/fullchain.pem -text -noout | grep "Not After"
四、通过Docker容器挂载SSL证书并配置Spring Boot参数
当WorkBuddy以Docker方式运行时,可将宿主机证书文件挂载进容器,并通过环境变量注入HTTPS配置参数。
1、创建目录mkdir -p /opt/workbuddy/ssl,并将cert.pem与key.pem放入该目录。
2、编写docker run命令,使用-v参数挂载证书目录:-v /opt/workbuddy/ssl:/app/config/ssl。
3、通过-e参数传入Spring Boot SSL属性:-e SERVER_SSL_KEY-STORE=/app/config/ssl/keystore.p12 -e SERVER_SSL_KEY-STORE-PASSWORD=secret123 -e SERVER_SSL_KEY-STORE-TYPE=PKCS12。
4、确保镜像启动类路径下application.yml未覆盖server.ssl相关配置,或将其设为profile激活项。
5、执行docker run启动容器后,检查容器日志是否输出“Tomcat started on port(s): 8443 (https)”。
