Dockerized WordPress with SSL Certificate Generation
In this tutorial, we'll walk through the process of enhancing a Dockerized WordPress setup with SSL certificate generation. This will ensure secure communication between servers and clients, bolstering the security of your WordPress deployment.
Prerequisites:
- Docker installed on your system.
- Basic understanding of Docker Compose.
Step 1: Update Docker Compose Configuration
Open your docker-compose.yml
file and make the following modifications:
version: '3.1'
services:
wordpress:
image: wordpress:php7.2-apache
ports:
- "8001:80"
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD:
WORDPRESS_DB_NAME: wordpress_db
volumes:
- ./website:/var/www/html
- ./ssl:/etc/apache2/ssl # Mount SSL directory
depends_on:
- mysql
networks:
- my_network
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: wordpress_db
MYSQL_ROOT_PASSWORD:
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql
networks:
- my_network
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql
ports:
- "8081:80"
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD:
networks:
- my_network
networks:
my_network:
driver: bridge
Step 2: Create SSL Certificate Generation Script
Generate a bash script named generate_ssl.sh
with the following content:
#!/bin/bash
SSL_DIR="./ssl"
PRIVATE_KEY="$SSL_DIR/private.key"
CERTIFICATE="$SSL_DIR/certificate.crt"
# Create SSL directory if it doesn't exist
mkdir -p $SSL_DIR
# Generate SSL certificate if not already present
if [ ! -f "$PRIVATE_KEY" ] || [ ! -f "$CERTIFICATE" ]; then
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout "$PRIVATE_KEY" -out "$CERTIFICATE"
fi
Step 3: Implement SSL Certificate Generation
Execute the following commands in your terminal:
chmod +x generate_ssl.sh
./generate_ssl.sh
Step 4: Start Docker Containers
Run the following command to initiate your Docker containers:
docker-compose up -d
Conclusion
Congratulations! You've successfully enhanced your Dockerized WordPress setup with SSL certificate generation. Your WordPress deployment now benefits from improved security through encrypted communication.
No comments to display
No comments to display