Ubuntu Server 24.04 上带有 tls 和 Systemd 的 Redis 服务器

问题描述 投票:0回答:1

我已经设置了 redis-server 并且 sudo systemctl restart redis-server 工作得很好,但是当我实现 tls 支持时,systemctl 失败,没有有用的错误消息,日志中没有任何内容,但是 redis-server 仍然可以使用此命令手动工作

 ./redis-server --tls-port 6379 --port 0 --tls-cert-file ./redis.crt --tls-key-file ./redis.key --tls-ca-cert-file ./ca.crt

我尝试过 Ubuntu Server 24.04 和 Debian 12 (Bookworm) - 同样的问题

有谁知道如何让它作为启用 tls 的 systemd 新贵作业工作?

redis redis-server
1个回答
0
投票

我相信这与您在启动redis服务器时设置的SSL的相对路径有关。您必须在 systemd 中配置 SSL 的绝对路径。所以,系统中Redis的启动脚本应该如下:

 ./redis-server --tls-port 6379 --port 0 --tls-cert-file /absolute_path_cert/redis.crt --tls-key-file /absolute_path_cert/redis.key --tls-ca-cert-file /absolute_path_cert/ca.crt

另一种选择是在 redis.conf 中配置 SSL 并将 SSL 配置放在那里:

#TLS config
tls-port 6379
tls-cert-file /app/tls/redis.crt
tls-key-file /app/tls/redis.key
tls-ca-cert-file /app/tls/ca.crt

稍后,在

/etc/systemd/system/redis.service
文件中,您可以配置redis-server来调用
redis.conf

root@redis-s-1vcpu-2gb-sgp1-02:~# cat /etc/systemd/system/redis.service
[Unit]
Description=Advanced key-value store
After=network.target
Documentation=http://redis.io/documentation, man:redis-server(1)

[Service]
Type=notify
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/bin/kill -s TERM $MAINPID
PIDFile=/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=2755

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.