See More

#!/bin/bash -ex # # Generate a local Apache config that will listen with SSL on ports 3001-3100. # The default behavior is to respond relatively promptly on /, while sleeping # for 100 seconds before responding on /submit_cert. cd $(dirname $0) START=3001 END=3100 cat <apache2.conf ServerName https_everywhere_test ServerRoot "." DocumentRoot "." PidFile ./apache2.pid ErrorLog ./error.log LoadModule python_module /usr/lib/apache2/modules/mod_python.so LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so SSLVerifyDepth 1 SSLOptions +StdEnvVars SSLCipherSuite HIGH:MEDIUM:!aNULL:!eNULL:@STRENGTH:-DHE-RSA-AES128-SHA:-EDH-RSA-DES-CBC3-SHA:-DHE-RSA-AES256-SHA:-DHE-RSA-AES256-SHA SetHandler mod_python PythonHandler mod_python.publisher PythonDebug On Options +ExecCGI DirectoryIndex index.py EOF for n in `seq $START $END` ; do cat >> apache2.conf < SSLEngine on SSLCertificateFile certificates/$n.crt SSLCertificateKeyFile certificates/$n.key EOF done mkdir -p certificates cd certificates onecert() { openssl genrsa -out $1.key 2048 openssl req -new -key $1.key -out $1.csr -subj /CN=localhost openssl x509 -req -days 1826 -in $1.csr -CA ca.crt -CAkey ca.key -set_serial $RANDOM -out $1.crt rm $1.csr } openssl genrsa -out ca.key 2048 openssl req -new -x509 -days 1826 -key ca.key -out ca.crt -subj /CN=https-everywhere-test-ca for n in `seq $START $END` ; do onecert $n done