Browse Source

Pass hostname in docker-compose

Rename getssl.test host to ubuntu16.getssl.test
pull/740/head
Tim Kimber 6 years ago
parent
commit
9ca77beab8
8 changed files with 57 additions and 27 deletions
  1. +17
    -15
      docker-compose.yml
  2. +2
    -1
      test/1-simple-http01.bats
  3. +2
    -1
      test/2-simple-dns01.bats
  4. +3
    -2
      test/3-dual-rsa-ecdsa.bats
  5. +8
    -2
      test/4-more-than-10-hosts.bats
  6. +14
    -0
      test/run-test.sh
  7. +1
    -1
      test/test-config/getssl-http01-10-hosts.cfg
  8. +10
    -5
      test/test_helper.bash

+ 17
- 15
docker-compose.yml View File

@ -23,30 +23,32 @@ services:
networks:
acmenet:
ipv4_address: 10.30.50.3
getssl:
getssl-ubuntu16:
build:
context: .
dockerfile: test/Dockerfile-ubuntu
container_name: getssl
container_name: getssl-ubuntu16
volumes:
- .:/getssl
environment:
GETSSL_HOST: ubuntu16.getssl.test
GETSSL_IP: 10.30.50.4
networks:
acmenet:
ipv4_address: 10.30.50.4
aliases:
- getssl.test
- a.getssl.test
- b.getssl.test
- c.getssl.test
- d.getssl.test
- e.getssl.test
- f.getssl.test
- g.getssl.test
- h.getssl.test
- i.getssl.test
- j.getssl.test
- k.getssl.test
- ubuntu16.getssl.test
- a.ubuntu16.getssl.test
- b.ubuntu16.getssl.test
- c.ubuntu16.getssl.test
- d.ubuntu16.getssl.test
- e.ubuntu16.getssl.test
- f.ubuntu16.getssl.test
- g.ubuntu16.getssl.test
- h.ubuntu16.getssl.test
- i.ubuntu16.getssl.test
- j.ubuntu16.getssl.test
- k.ubuntu16.getssl.test
networks:
acmenet:
driver: bridge


+ 2
- 1
test/1-simple-http01.bats View File

@ -22,6 +22,7 @@ setup() {
@test "Force renewal of certificate using HTTP-01" {
#!FIXME test certificate has been updated
run ${CODE_DIR}/getssl -f $HOST
run ${CODE_DIR}/getssl -f $GETSSL_HOST
assert_success
cleanup_environment
}

+ 2
- 1
test/2-simple-dns01.bats View File

@ -22,6 +22,7 @@ setup() {
@test "Force renewal of certificate using DNS-01" {
#!FIXME test certificate has been updated
run ${CODE_DIR}/getssl -f $HOST
run ${CODE_DIR}/getssl -f $GETSSL_HOST
assert_success
cleanup_environment
}

+ 3
- 2
test/3-dual-rsa-ecdsa.bats View File

@ -22,7 +22,7 @@ setup() {
@test "Force renewal of dual certificates using HTTP-01" {
#!FIXME test certificate has been updated
run ${CODE_DIR}/getssl -f $HOST
run ${CODE_DIR}/getssl -f $GETSSL_HOST
assert_success
}
@ -37,6 +37,7 @@ setup() {
@test "Force renewal of dual certificates using DNS-01" {
#!FIXME test certificate has been updated
run ${CODE_DIR}/getssl -f $HOST
run ${CODE_DIR}/getssl -f $GETSSL_HOST
assert_success
cleanup_environment
}

+ 8
- 2
test/4-more-than-10-hosts.bats View File

@ -17,7 +17,7 @@ setup() {
# Add 11 hosts to DNS (also need to be added as aliases in docker-compose.yml)
for prefix in a b c d e f g h i j k; do
curl -X POST -d '{"host":"'$prefix.$HOST'", "addresses":["10.30.50.4"]}' http://10.30.50.3:8055/add-a
curl -X POST -d '{"host":"'$prefix.$GETSSL_HOST'", "addresses":["'$GETSSL_IP'"]}' http://10.30.50.3:8055/add-a
done
init_getssl
@ -28,6 +28,12 @@ setup() {
@test "Force renewal of more than 10 certificates using HTTP-01" {
#!FIXME test certificate has been updated
run ${CODE_DIR}/getssl -f $HOST
run ${CODE_DIR}/getssl -f $GETSSL_HOST
assert_success
# Remove all the dns aliases
cleanup_environment
for prefix in a b c d e f g h i j k; do
curl -X POST -d '{"host":"'$prefix.$GETSSL_HOST'", "addresses":["'$GETSSL_IP'"]}' http://10.30.50.3:8055/del-a
done
}

+ 14
- 0
test/run-test.sh View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
# This runs getssl outside of the BATS framework for debugging, etc, against pebble
# Usage: /getssl/test/run-test.sh getssl-http-01.cfg
CONFIG_FILE=$1
source /getssl/test/test_helper.bash
setup_environment 3>&1
export CURL_CA_BUNDLE=/root/pebble-ca-bundle.crt
"${CODE_DIR}/getssl" -c "$GETSSL_HOST" 3>&1
cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/${GETSSL_HOST}/getssl.cfg"
"${CODE_DIR}/getssl" "$GETSSL_HOST" 3>&1

+ 1
- 1
test/test-config/getssl-http01-10-hosts.cfg View File

@ -6,7 +6,7 @@ CA="https://pebble:14000/dir"
# Additional domains - this could be multiple domains / subdomains in a comma separated list
# Note: this is Additional domains - so should not include the primary domain.
SANS="a.getssl.test,b.getssl.test,c.getssl.test,d.getssl.test,e.getssl.test,f.getssl.test,g.getssl.test,h.getssl.test,i.getssl.test,j.getssl.test,k.getssl.test"
SANS="a.${GETSSL_HOST},b.${GETSSL_HOST},c.${GETSSL_HOST},d.${GETSSL_HOST},e.${GETSSL_HOST},f.${GETSSL_HOST},g.${GETSSL_HOST},h.${GETSSL_HOST},i.${GETSSL_HOST},j.${GETSSL_HOST},k.${GETSSL_HOST}"
# Acme Challenge Location.
ACL=('/var/www/html/.well-known/acme-challenge')


+ 10
- 5
test/test_helper.bash View File

@ -1,6 +1,6 @@
INSTALL_DIR=/root
CODE_DIR=/getssl
HOST=getssl.test
setup_environment() {
# One-off test setup
@ -14,15 +14,20 @@ setup_environment() {
cat /etc/ssl/certs/ca-certificates.crt ${INSTALL_DIR}/pebble.minica.pem > ${INSTALL_DIR}/pebble-ca-bundle.crt
fi
curl -X POST -d '{"host":"'$HOST'", "addresses":["10.30.50.4"]}' http://10.30.50.3:8055/add-a
curl -X POST -d '{"host":"'"$GETSSL_HOST"'", "addresses":["'"$GETSSL_IP"'"]}' http://10.30.50.3:8055/add-a
cp ${CODE_DIR}/test/test-config/nginx-ubuntu-no-ssl /etc/nginx/sites-enabled/default
service nginx restart >&3-
}
cleanup_environment() {
curl -X POST -d '{"host":"'"$GETSSL_HOST"'", "addresses":["'"$GETSSL_IP"'"]}' http://10.30.50.3:8055/del-a
}
init_getssl() {
# Run initialisation (create account key, etc)
run ${CODE_DIR}/getssl -c $HOST
run ${CODE_DIR}/getssl -c "$GETSSL_HOST"
assert_success
[ -d "$INSTALL_DIR/.getssl" ]
}
@ -30,7 +35,7 @@ init_getssl() {
create_certificate() {
# Create certificate
cp ${CODE_DIR}/test/test-config/${CONFIG_FILE} ${INSTALL_DIR}/.getssl/${HOST}/getssl.cfg
run ${CODE_DIR}/getssl $HOST
cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/${GETSSL_HOST}/getssl.cfg"
run ${CODE_DIR}/getssl "$GETSSL_HOST"
#!FIXME test certificate has been placed in the expected location
}

Loading…
Cancel
Save