Bitnami WordPress容器中通过Certbot配置Apache SSL证书求助
为Bitnami WordPress Docker容器的Apache配置Certbot SSL证书
前提条件
- 域名已解析到服务器公网IP
- 服务器防火墙已开放80、443端口
- Docker和Docker Compose已正常安装
步骤1:调整Docker Compose配置
修改你的docker-compose.yml,添加证书目录挂载及SSL相关环境变量,确保容器能访问Certbot生成的证书:
version: '2' services: mariadb: image: docker.io/bitnami/mariadb:10.6 volumes: - 'mariadb_data:/bitnami/mariadb' environment: # ALLOW_EMPTY_PASSWORD仅用于开发环境,生产环境务必设置强密码 - ALLOW_EMPTY_PASSWORD=yes - MARIADB_USER=bn_wordpress - MARIADB_DATABASE=bitnami_wordpress wordpress: image: docker.io/bitnami/wordpress:6 ports: - '80:8080' - '443:8443' volumes: - 'wordpress_data:/bitnami/wordpress' # 挂载主机Let's Encrypt证书目录到容器内 - '/etc/letsencrypt:/etc/letsencrypt' # 挂载主机webroot目录用于Certbot验证 - '/var/www/html:/bitnami/wordpress' depends_on: - mariadb environment: # ALLOW_EMPTY_PASSWORD仅用于开发环境,生产环境务必设置强密码 - ALLOW_EMPTY_PASSWORD=yes - WORDPRESS_DATABASE_HOST=mariadb - WORDPRESS_DATABASE_PORT_NUMBER=3306 - WORDPRESS_DATABASE_USER=bn_wordpress - WORDPRESS_DATABASE_NAME=bitnami_wordpress # 启用HTTPS - WORDPRESS_HTTPS_ENABLED=yes # 替换为你的实际域名 - WORDPRESS_SSL_CERTIFICATE=/etc/letsencrypt/live/你的域名/fullchain.pem - WORDPRESS_SSL_CERTIFICATE_KEY=/etc/letsencrypt/live/你的域名/privkey.pem
修改完成后启动容器:
docker-compose up -d
步骤2:在主机安装Certbot并获取证书
以Ubuntu系统为例,执行以下命令安装Certbot:
sudo apt update && sudo apt install certbot -y
使用webroot模式申请证书,替换你的域名为实际域名:
sudo certbot certonly --webroot -w /var/www/html -d 你的域名
按照终端提示完成域名验证,证书会自动生成在/etc/letsencrypt/live/你的域名/目录下。
步骤3:重启容器使SSL配置生效
docker-compose restart wordpress
此时访问你的域名,应该已自动跳转到HTTPS连接。
步骤4:配置证书自动续期
Let's Encrypt证书有效期为90天,设置自动续期确保服务持续可用:
- 编辑系统定时任务:
sudo crontab -e
- 添加以下内容(替换
/path/to/your/docker-compose.yml为实际的文件路径):
0 3 * * * /usr/bin/certbot renew --quiet && docker-compose -f /path/to/your/docker-compose.yml restart wordpress
该任务会每天凌晨3点自动尝试续期证书,若续期成功则重启WordPress容器。
注意事项
- 生产环境必须删除
ALLOW_EMPTY_PASSWORD=yes,设置MARIADB_PASSWORD、WORDPRESS_PASSWORD等强密码环境变量 - 若使用非Ubuntu系统,需根据系统包管理器调整Certbot安装命令
内容的提问来源于stack exchange,提问作者Serhii Ovchynnik
相关产品推荐
相关产品推荐

