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
相关产品推荐
相关产品推荐

