| @ -0,0 +1,7 @@ | |||
| #!/usr/bin/env bash | |||
| # Simple script to update the challtestserv mock DNS server when testing DNS responses | |||
| fulldomain="${1}" | |||
| token="${2}" | |||
| curl -X POST -d "{\"host\":\"_acme-challenge.${fulldomain}.\", \"value\": \"${token}\"}" http://10.30.50.3:8055/set-txt | |||
| @ -0,0 +1,6 @@ | |||
| #!/usr/bin/env bash | |||
| # Simple script to update the challtestserv mock DNS server when testing DNS responses | |||
| fulldomain="${1}" | |||
| curl -X POST -d "{\"host\":\"_acme-challenge.${fulldomain}.\"}" http://10.30.50.3:8055/clear-txt | |||
| @ -0,0 +1,27 @@ | |||
| FROM roboxes/rhel6 | |||
| # FROM centos:centos6 | |||
| # bionic = latest 18 version | |||
| # Update and install required software | |||
| RUN yum -y update | |||
| RUN yum -y install epel-release | |||
| RUN yum -y install git curl dnsutils wget # nginx-light | |||
| WORKDIR /root | |||
| #RUN mkdir /etc/nginx/pki | |||
| #RUN mkdir /etc/nginx/pki/private | |||
| #COPY ./test/test-config/nginx-ubuntu-sites-enabled-default /etc/nginx/sites-enabled/default | |||
| # BATS (Bash Automated Testings) | |||
| # RUN git clone https://github.com/bats-core/bats-core.git | |||
| # RUN bats-core/install.sh /usr/local | |||
| EXPOSE 80 443 | |||
| # Run eternal loop - for testing | |||
| CMD ["/bin/bash", "-c", "while :; do sleep 10; done"] | |||
| # with Pebble | |||
| # docker-compose -f "docker-compose.yml" up -d --build | |||
| # docker exec -it getssl /bin/bash | |||
| # /getssl/test/run-test.sh | |||
| @ -1,9 +1,47 @@ | |||
| #! /bin/sh | |||
| #! /bin/bash | |||
| set -e | |||
| # Test setup | |||
| rm -r /root/.getssl | |||
| wget --no-clobber https://raw.githubusercontent.com/letsencrypt/pebble/master/test/certs/pebble.minica.pem | |||
| export CURL_CA_BUNDLE=/root/pebble.minica.pem | |||
| # cat /etc/pki/tls/certs/ca-bundle.crt /root/pebble.minica.pem > /root/pebble-ca-bundle.crt | |||
| cat /etc/ssl/certs/ca-certificates.crt /root/pebble.minica.pem > /root/pebble-ca-bundle.crt | |||
| export CURL_CA_BUNDLE=/root/pebble-ca-bundle.crt | |||
| curl -X POST -d '{"host":"getssl", "addresses":["10.30.50.4"]}' http://10.30.50.3:8055/add-a | |||
| # Test #1 - http-01 verification | |||
| echo Test \#1 - http-01 verification | |||
| service nginx start | |||
| cp /getssl/test/test-config/nginx-ubuntu-no-ssl /etc/nginx/sites-enabled/default | |||
| service nginx restart | |||
| /getssl/getssl -c getssl | |||
| cp getssl.cfg /root/.getssl/getssl | |||
| cp /getssl/test/test-config/getssl-http01.cfg /root/.getssl/getssl/getssl.cfg | |||
| /getssl/getssl -f getssl | |||
| # Test #2 - http-01 forced renewal | |||
| echo Test \#2 - http-01 forced renewal | |||
| sleep 5 # There's a race condition if renew too soon (authlink returns "valid" instead of "pending") | |||
| /getssl/getssl getssl -f | |||
| # Test cleanup | |||
| rm -r /root/.getssl | |||
| # Test #3 - dns-01 verification | |||
| echo Test \#3 - dns-01 verification | |||
| cp /getssl/test/test-config/nginx-ubuntu-no-ssl /etc/nginx/sites-enabled/default | |||
| service nginx restart | |||
| /getssl/getssl -c getssl | |||
| cp /getssl/test/test-config/getssl-dns01.cfg /root/.getssl/getssl/getssl.cfg | |||
| /getssl/getssl getssl | |||
| # Test #4 - dns-01 forced renewal | |||
| echo Test \#4 - dns-01 forced renewal | |||
| sleep 5 # There's a race condition if renew too soon (authlink returns "valid" instead of "pending") | |||
| /getssl/getssl getssl -f | |||
| @ -0,0 +1,54 @@ | |||
| # Uncomment and modify any variables you need | |||
| # see https://github.com/srvrco/getssl/wiki/Config-variables for details | |||
| # see https://github.com/srvrco/getssl/wiki/Example-config-files for example configs | |||
| # | |||
| # The staging server is best for testing | |||
| #CA="https://acme-staging.api.letsencrypt.org" | |||
| # This server issues full certificates, however has rate limits | |||
| #CA="https://acme-v01.api.letsencrypt.org" | |||
| CA="https://pebble:14000/dir" | |||
| VALIDATE_VIA_DNS=true | |||
| DNS_ADD_COMMAND="/getssl/dns_scripts/dns_add_challtestsrv" | |||
| DNS_DEL_COMMAND="/getssl/dns_scripts/dns_del_challtestsrv" | |||
| # AUTH_DNS_SERVER=10.30.50.3 | |||
| #PRIVATE_KEY_ALG="rsa" | |||
| # 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="" | |||
| # Acme Challenge Location. The first line for the domain, the following ones for each additional domain. | |||
| # If these start with ssh: then the next variable is assumed to be the hostname and the rest the location. | |||
| # An ssh key will be needed to provide you with access to the remote server. | |||
| # Optionally, you can specify a different userid for ssh/scp to use on the remote server before the @ sign. | |||
| # If left blank, the username on the local server will be used to authenticate against the remote server. | |||
| # If these start with ftp: then the next variables are ftpuserid:ftppassword:servername:ACL_location | |||
| # These should be of the form "/path/to/your/website/folder/.well-known/acme-challenge" | |||
| # where "/path/to/your/website/folder/" is the path, on your web server, to the web root for your domain. | |||
| ACL=('/var/www/html/.well-known/acme-challenge') | |||
| # 'ssh:server5:/var/www/getssltest.hopto.org/web/.well-known/acme-challenge' | |||
| # 'ssh:sshuserid@server5:/var/www/getssltest.hopto.org/web/.well-known/acme-challenge' | |||
| # 'ftp:ftpuserid:ftppassword:getssltest.hopto.org:/web/.well-known/acme-challenge') | |||
| #Set USE_SINGLE_ACL="true" to use a single ACL for all checks | |||
| USE_SINGLE_ACL="false" | |||
| # Location for all your certs, these can either be on the server (full path name) | |||
| # or using ssh /sftp as for the ACL | |||
| DOMAIN_CERT_LOCATION="/etc/nginx/pki/server.crt" | |||
| DOMAIN_KEY_LOCATION="/etc/nginx/pki/private/server.key" | |||
| CA_CERT_LOCATION="/etc/nginx/pki/chain.crt" | |||
| DOMAIN_CHAIN_LOCATION="" # this is the domain cert and CA cert | |||
| DOMAIN_PEM_LOCATION="" # this is the domain_key, domain cert and CA cert | |||
| # The command needed to reload apache / nginx or whatever you use | |||
| RELOAD_CMD="cp /getssl/test/test-config/nginx-ubuntu-ssl /etc/nginx/sites-enabled/default && service nginx restart" | |||
| # Define the server type. This can be https, ftp, ftpi, imap, imaps, pop3, pop3s, smtp, | |||
| # smtps_deprecated, smtps, smtp_submission, xmpp, xmpps, ldaps or a port number which | |||
| # will be checked for certificate expiry and also will be checked after | |||
| # an update to confirm correct certificate is running (if CHECK_REMOTE) is set to true | |||
| #SERVER_TYPE="https" | |||
| #CHECK_REMOTE="true" | |||
| @ -0,0 +1,92 @@ | |||
| ## | |||
| # You should look at the following URL's in order to grasp a solid understanding | |||
| # of Nginx configuration files in order to fully unleash the power of Nginx. | |||
| # http://wiki.nginx.org/Pitfalls | |||
| # http://wiki.nginx.org/QuickStart | |||
| # http://wiki.nginx.org/Configuration | |||
| # | |||
| # Generally, you will want to move this file somewhere, and start with a clean | |||
| # file but keep this around for reference. Or just disable in sites-enabled. | |||
| # | |||
| # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. | |||
| ## | |||
| # Default server configuration | |||
| # | |||
| server { | |||
| listen 80 default_server; | |||
| listen 5002 default_server; | |||
| listen [::]:5002 default_server; | |||
| # SSL configuration | |||
| # | |||
| listen 443 ssl default_server; | |||
| listen [::]:443 ssl default_server; | |||
| listen 5001 ssl default_server; | |||
| listen [::]:5001 ssl default_server; | |||
| # | |||
| # Note: You should disable gzip for SSL traffic. | |||
| # See: https://bugs.debian.org/773332 | |||
| # | |||
| # Read up on ssl_ciphers to ensure a secure configuration. | |||
| # See: https://bugs.debian.org/765782 | |||
| # | |||
| # Self signed certs generated by the ssl-cert package | |||
| # Don't use them in a production server! | |||
| # | |||
| # include snippets/snakeoil.conf; | |||
| root /var/www/html; | |||
| # Add index.php to the list if you are using PHP | |||
| index index.html index.htm index.nginx-debian.html; | |||
| server_name _; | |||
| ssl_certificate /etc/nginx/pki/server.crt; | |||
| ssl_certificate_key /etc/nginx/pki/private/server.key; | |||
| location / { | |||
| # First attempt to serve request as file, then | |||
| # as directory, then fall back to displaying a 404. | |||
| try_files $uri $uri/ =404; | |||
| } | |||
| # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 | |||
| # | |||
| #location ~ \.php$ { | |||
| # include snippets/fastcgi-php.conf; | |||
| # | |||
| # # With php7.0-cgi alone: | |||
| # fastcgi_pass 127.0.0.1:9000; | |||
| # # With php7.0-fpm: | |||
| # fastcgi_pass unix:/run/php/php7.0-fpm.sock; | |||
| #} | |||
| # deny access to .htaccess files, if Apache's document root | |||
| # concurs with nginx's one | |||
| # | |||
| #location ~ /\.ht { | |||
| # deny all; | |||
| #} | |||
| } | |||
| # Virtual Host configuration for example.com | |||
| # | |||
| # You can move that to a different file under sites-available/ and symlink that | |||
| # to sites-enabled/ to enable it. | |||
| # | |||
| #server { | |||
| # listen 80; | |||
| # listen [::]:80; | |||
| # | |||
| # server_name example.com; | |||
| # | |||
| # root /var/www/example.com; | |||
| # index index.html; | |||
| # | |||
| # location / { | |||
| # try_files $uri $uri/ =404; | |||
| # } | |||
| #} | |||