74 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Create SSL directory if it doesn't exist
 | |
| mkdir -p ../ssl
 | |
| 
 | |
| # Generate self-signed certificate
 | |
| openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
 | |
|   -keyout ../ssl/nginx-selfsigned.key \
 | |
|   -out ../ssl/nginx-selfsigned.crt \
 | |
|   -subj "/CN=localhost"
 | |
| 
 | |
| # Create nginx SSL config directory if it doesn't exist
 | |
| mkdir -p ../nginx-conf
 | |
| 
 | |
| # Create SSL configuration
 | |
| cat > ../nginx-conf/ssl.conf << 'EOF'
 | |
| server {
 | |
|     listen 443 ssl;
 | |
|     server_name localhost;
 | |
| 
 | |
|     ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt;
 | |
|     ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;
 | |
|     
 | |
|     ssl_protocols TLSv1.2 TLSv1.3;
 | |
|     ssl_prefer_server_ciphers on;
 | |
|     ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
 | |
|     ssl_ecdh_curve secp384r1;
 | |
|     ssl_session_cache shared:SSL:10m;
 | |
|     ssl_session_tickets off;
 | |
|     ssl_stapling on;
 | |
|     ssl_stapling_verify on;
 | |
| 
 | |
|     root /var/www/html;
 | |
|     index index.php;
 | |
| 
 | |
|     client_max_body_size 100M;
 | |
| 
 | |
|     location / {
 | |
|         try_files $uri $uri/ /index.php?$args;
 | |
|     }
 | |
| 
 | |
|     location ~ \.php$ {
 | |
|         fastcgi_split_path_info ^(.+\.php)(/.+)$;
 | |
|         fastcgi_pass wordpress:9000;
 | |
|         fastcgi_index index.php;
 | |
|         include fastcgi_params;
 | |
|         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | |
|         fastcgi_param PATH_INFO $fastcgi_path_info;
 | |
|         fastcgi_read_timeout 300;
 | |
|     }
 | |
| 
 | |
|     location = /favicon.ico {
 | |
|         log_not_found off;
 | |
|         access_log off;
 | |
|     }
 | |
| 
 | |
|     location = /robots.txt {
 | |
|         allow all;
 | |
|         log_not_found off;
 | |
|         access_log off;
 | |
|     }
 | |
| 
 | |
|     location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
 | |
|         expires max;
 | |
|         log_not_found off;
 | |
|     }
 | |
| }
 | |
| EOF
 | |
| 
 | |
| # Make the script executable
 | |
| chmod +x "$0"
 | |
| 
 | |
| echo "SSL setup complete. Restart the containers to apply changes:"
 | |
| echo "docker-compose down && docker-compose up -d" |