| @ -0,0 +1,2 @@ | |||
| .history/ | |||
| .venv/ | |||
| @ -0,0 +1,29 @@ | |||
| project: | |||
| name: getssl-test | |||
| syncFilters: | |||
| - exclude: | |||
| - .git/* | |||
| - '*/__pycache__/*' | |||
| - .venv/* | |||
| - .history/* | |||
| container: | |||
| projectDir: /workspace | |||
| file: test/Dockerfile | |||
| volumeMounts: | |||
| - name: workspace | |||
| mountPath: /workspace | |||
| # commands: <init script to run here> | |||
| instances: | |||
| - name: m1 | |||
| provider: aws | |||
| parameters: | |||
| region: eu-west-1 | |||
| instanceType: m1.medium | |||
| amiId: ami-047bb4163c506cd98 | |||
| maxPrice: 0.01 | |||
| volumes: | |||
| - name: workspace | |||
| parameters: | |||
| size: 10 | |||
| @ -0,0 +1,39 @@ | |||
| FROM ubuntu:bionic | |||
| # bionic = latest 18 version | |||
| # Update and install required software | |||
| # https://packages.ubuntu.com/cosmic-updates/ | |||
| RUN apt-get update | |||
| RUN apt-get install -y git curl dnsutils wget linux-libc-dev make gcc binutils nginx-light | |||
| RUN apt-get install -y vim # for debugging | |||
| # TODO test with drill, dig, host | |||
| 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 | |||
| ARG noip_version=noip-2.1.9-1 | |||
| RUN wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz \ | |||
| && tar -zvxf noip-duc-linux.tar.gz \ | |||
| && cd ${noip_version} \ | |||
| && make | |||
| #COPY no-ip2.conf /root/${noip_version}/no-ip2.conf | |||
| #RUN /root/${noip_version}/noip2 -c /root/${noip_version}/no-ip2.conf | |||
| RUN git clone https://github.com/bats-core/bats-core.git | |||
| RUN bats-core/install.sh /usr/local | |||
| RUN git clone https://github.com/capitalone/bash_shell_mock.git | |||
| # RUN bash_shell_mock/install.sh /usr/local | |||
| # RUN git clone https://github.com/srvrco/getssl.git | |||
| COPY ./getssl getssl | |||
| COPY test/test-config/getssl-ubuntu.cfg getssl.cfg | |||
| EXPOSE 80 443 | |||
| ENTRYPOINT /bin/bash | |||
| # Testing | |||
| # ======= | |||
| # docker build --rm -f "test/Dockerfile" -t 294541140870.dkr.ecr.eu-west-1.amazonaws.com/getssl:latest . | |||
| # docker run --rm -it 294541140870.dkr.ecr.eu-west-1.amazonaws.com/getssl:latest | |||
| @ -0,0 +1,13 @@ | |||
| # Testing | |||
| Create virtualenv | |||
| virtualenv -p python3 .venv | |||
| Use virtualenv | |||
| source .venv\Scripts\activate | |||
| Install spotty | |||
| pip install spotty | |||
| Run tests using Dockerfile on an Amazon AWS t2.micro spot instance | |||
| spotty start | |||
| @ -0,0 +1,48 @@ | |||
| # 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" | |||
| #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="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,88 @@ | |||
| ## | |||
| # 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 [::]:80 default_server; | |||
| # SSL configuration | |||
| # | |||
| listen 443 ssl default_server; | |||
| listen [::]:443 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; | |||
| # } | |||
| #} | |||