mirror of
https://github.com/angristan/openvpn-install.git
synced 2025-12-15 16:37:03 +01:00
## Summary - Add end-to-end tests for certificate revocation functionality - Test that a revoked client certificate cannot connect to the VPN - Test that a new certificate can be created with the same name as a revoked one (validating the fix from #1185) - Test that the new certificate can successfully connect ## Test Flow 1. **Initial connectivity tests** - existing tests pass 2. **Certificate revocation test**: - Create a new client `revoketest` - Connect with the certificate (verifies it works) - Disconnect the client - Revoke the certificate via the install script - Try to reconnect with revoked cert (verifies connection is rejected) 3. **Reuse revoked name test**: - Create a new certificate with the same name `revoketest` - Verify both revoked and valid entries exist in `index.txt` - Connect with the new certificate (verifies it works) ## Changes | File | Changes | |------|---------| | `test/server-entrypoint.sh` | Start OpenVPN in background, add revocation test orchestration | | `test/client-entrypoint.sh` | Add revocation test phases with signal file coordination | | `docker-compose.yml` | Remove read-only restriction on shared volume for client | | `Makefile` | Increase timeout from 60 to 180 iterations | | `.github/workflows/docker-test.yml` | Increase timeouts, fix shared volume |
56 lines
1.1 KiB
YAML
56 lines
1.1 KiB
YAML
---
|
|
services:
|
|
openvpn-server:
|
|
build:
|
|
context: .
|
|
dockerfile: test/Dockerfile.server
|
|
args:
|
|
BASE_IMAGE: ${BASE_IMAGE:-ubuntu:24.04}
|
|
container_name: openvpn-server
|
|
hostname: openvpn-server
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
sysctls:
|
|
- net.ipv4.ip_forward=1
|
|
volumes:
|
|
- shared-config:/shared
|
|
networks:
|
|
vpn-test:
|
|
ipv4_address: 172.28.0.10
|
|
healthcheck:
|
|
test: ["CMD", "pgrep", "openvpn"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 30
|
|
|
|
openvpn-client:
|
|
build:
|
|
context: .
|
|
dockerfile: test/Dockerfile.client
|
|
container_name: openvpn-client
|
|
hostname: openvpn-client
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
volumes:
|
|
- shared-config:/shared
|
|
networks:
|
|
vpn-test:
|
|
ipv4_address: 172.28.0.20
|
|
depends_on:
|
|
openvpn-server:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
shared-config:
|
|
|
|
networks:
|
|
vpn-test:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.28.0.0/24
|