You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下MariaDB配置Let's Encrypt SSL失败求助

解决Ubuntu 20.04下MariaDB SSL配置启动失败问题

可能的原因及对应解决方法

1. 证书文件权限不足

MariaDB以mysql用户身份运行,必须确保证书文件及所在目录对该用户有读取权限:

  • 先检查当前权限:
    ls -ld /etc/letsencrypt/live/domain/
    ls -l /etc/letsencrypt/live/domain/
    
  • 授予必要权限(包含软链接指向的archive目录):
    sudo chown -R root:mysql /etc/letsencrypt/live/ /etc/letsencrypt/archive/
    sudo chmod -R 750 /etc/letsencrypt/live/ /etc/letsencrypt/archive/
    sudo chmod -R 640 /etc/letsencrypt/live/domain/* /etc/letsencrypt/archive/domain/*
    

2. 配置参数缺失或顺序问题

修改/etc/mysql/mariadb.conf.d/50-server.conf的[mysqld]段,明确开启SSL并配置路径:

ssl=ON
ssl-ca=/etc/letsencrypt/live/domain/fullchain.pem
ssl-cert=/etc/letsencrypt/live/domain/cert.pem
ssl-key=/etc/letsencrypt/live/domain/privkey.pem

保存后重启服务:

sudo systemctl restart mariadb

3. 证书文件损坏或不兼容

验证证书完整性:

openssl x509 -in /etc/letsencrypt/live/domain/cert.pem -text -noout
openssl rsa -in /etc/letsencrypt/live/domain/privkey.pem -check

若证书存在问题,强制重新生成:

sudo certbot renew --force-renewal

4. SELinux限制(若系统启用)

临时关闭SELinux测试:

sudo setenforce 0

若重启MariaDB成功,添加永久SELinux规则:

sudo semanage fcontext -a -t mysqld_db_t "/etc/letsencrypt/live/domain(/.*)?"
sudo semanage fcontext -a -t mysqld_db_t "/etc/letsencrypt/archive/domain(/.*)?"
sudo restorecon -Rv /etc/letsencrypt/live/domain/
sudo restorecon -Rv /etc/letsencrypt/archive/domain/

验证配置结果

执行以下命令确认SSL是否生效:

sudo mysql -e "SHOW VARIABLES LIKE '%ssl%'"

若have_ssl字段显示YES,则配置成功。

内容的提问来源于stack exchange,提问作者Woodbox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:10:43