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

Bitnami MariaDB 11.4容器配置SSL后启动失败求助

MariaDB 11.4 SSL配置变化及自签名SSL容器部署方案

一、MariaDB 11.4的SSL配置核心变化

  • 参数校验逻辑收紧:11.4版本对SSL相关参数的有效性校验更严格,若指定的ssl_cert、ssl_key等文件路径错误或容器内运行用户无读取权限,服务启动后会拒绝未加密连接,健康检查的未加密连接尝试会被持续拒绝,最终触发容器超时退出。而10.11版本对这类错误容忍度更高,会降级允许非SSL连接。
  • TLS版本配置语法变更:11.4默认禁用TLS 1.0/1.1,若自定义tls_version参数时使用旧语法(比如仅写TLSv1.2而非TLSv1.2,TLSv1.3),会导致协议协商失败,引发大量未认证连接中断日志。
  • Bitnami镜像路径调整:Bitnami的MariaDB 11.4镜像将SSL证书默认存放路径从/opt/bitnami/mariadb/conf/certs改为/opt/bitnami/mariadb/certs,自定义配置若仍用旧路径,会导致证书找不到,触发SSL初始化失败。

二、部署带自签名SSL的健康MariaDB 11.4容器步骤

1. 生成自签名证书

确保证书文件权限符合容器内bitnami用户读取要求:

# 生成CA证书
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem

# 生成服务器证书
openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

2. 编写自定义配置文件(my_custom.cnf)

参数路径和语法需匹配11.4版本要求:

[mysqld]
# SSL证书路径
ssl_cert=/opt/bitnami/mariadb/certs/server-cert.pem
ssl_key=/opt/bitnami/mariadb/certs/server-key.pem
ssl_ca=/opt/bitnami/mariadb/certs/ca.pem
# 指定兼容的TLS版本
tls_version=TLSv1.2,TLSv1.3
# 可选:强制所有连接使用SSL
require_secure_transport=ON

3. Docker部署时的挂载与权限设置

  • 单容器部署命令:
docker run -d \
  --name mariadb-11.4 \
  -e MARIADB_ROOT_PASSWORD=your_password \
  -v $(pwd)/my_custom.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf:ro \
  -v $(pwd)/ca.pem:/opt/bitnami/mariadb/certs/ca.pem:ro \
  -v $(pwd)/server-cert.pem:/opt/bitnami/mariadb/certs/server-cert.pem:ro \
  -v $(pwd)/server-key.pem:/opt/bitnami/mariadb/certs/server-key.pem:ro \
  bitnami/mariadb:11.4.3
  • Docker Compose配置(需指定运行用户确保证书可读取):
services:
  mariadb:
    image: bitnami/mariadb:11.4.3
    environment:
      MARIADB_ROOT_PASSWORD: your_password
    volumes:
      - ./my_custom.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf:ro
      - ./ca.pem:/opt/bitnami/mariadb/certs/ca.pem:ro
      - ./server-cert.pem:/opt/bitnami/mariadb/certs/server-cert.pem:ro
      - ./server-key.pem:/opt/bitnami/mariadb/certs/server-key.pem:ro
    user: "1001:1001"

4. 调整健康检查逻辑

若开启require_secure_transport=ON,需修改健康检查为SSL连接:

docker run -d \
  --name mariadb-11.4 \
  -e MARIADB_ROOT_PASSWORD=your_password \
  -v $(pwd)/my_custom.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf:ro \
  -v $(pwd)/ca.pem:/opt/bitnami/mariadb/certs/ca.pem:ro \
  -v $(pwd)/server-cert.pem:/opt/bitnami/mariadb/certs/server-cert.pem:ro \
  -v $(pwd)/server-key.pem:/opt/bitnami/mariadb/certs/server-key.pem:ro \
  --health-cmd="mysql -h localhost -u root -p$MARIADB_ROOT_PASSWORD --ssl-mode=REQUIRED -e 'SELECT 1;'" \
  --health-interval=5s \
  --health-timeout=5s \
  bitnami/mariadb:11.4.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:50:12