X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=apache-site;h=f537369ea2b1c9355d3c95cced18e582c54036fc;hb=b6d31ac103c53debe4ad59fd34f63c1ca1a5e846;hp=aaefd9ee7beafc5fc7815597b647f36560a8bb1d;hpb=21e02c2ab3f53e711a1e5486a0d14f54e9efd5b9;p=basic-https-conf diff --git a/apache-site b/apache-site index aaefd9e..f537369 100755 --- a/apache-site +++ b/apache-site @@ -13,7 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# run as root. [[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@" set -eE -o pipefail @@ -28,41 +27,44 @@ location for storing certs. EXTRA_SETTINGS_FILE can be - for stdin -p PORT --i Insecure, no ssl --c CERT_DIR Default is /p/c/machine_specific/\$HOSTNAME/webservercerts --h|--help Print help and exit --r DocumentRoot --- Subsequent arguments are never treated as options +-i Insecure, no ssl +-c CERT_DIR In priority: this arg, $ACME_TINY_WRAPPER_CERT_DIR, + $HOME/webservercerts, if the other options aren't set. +-r DocumentRoot +-h|--help Print help and exit -Note: options and non-options can be in any order. +Note: Uses GNU getopt options parsing style EOF exit $1 } ##### begin command line parsing ######## -cert_dir=/p/c/machine_specific/$HOSTNAME/webservercerts +cert_dir="$ACME_TINY_WRAPPER_CERT_DIR" +if [[ ! $cert_dir ]]; then + cert_dir=$HOME/webservercerts +fi ssl=true extra_settings= -args=() port="*:443" -while [[ $1 ]]; do +temp=$(getopt -l help ic:p:r:h "$@") || usage 1 +eval set -- "$temp" +while true; do case $1 in - -i) ssl=false; shift ;; # i for insecure + -i) ssl=false; shift ;; -c) cert_dir="$2"; shift 2 ;; -p) port="$2"; shift 2 ;; -r) root="$2"; shift 2 ;; --) shift; break ;; - -?*|-h|--help) usage ;; - *) args+=("$1"); shift ;; + -h|--help) usage ;; + *) echo "$0: Internal error!" ; exit 1 ;; esac done -args+=("$@") -if (( ${#args[@]} == 2 )); then - read extra_settings h <<<"${args[@]}" +if (( ${#@} == 2 )); then + read extra_settings h <<<"${@}" else - read h <<<"${args[@]}" + read h <<<"${@}" fi if [[ ! $h ]]; then @@ -92,7 +94,8 @@ fi rm -f /etc/apache2/sites-enabled/000-default.conf mkdir -p $root -dd of=/etc/apache2/sites-enabled/$h.conf <$vhost_file < ServerName $h ServerAlias www.$h @@ -100,26 +103,30 @@ dd of=/etc/apache2/sites-enabled/$h.conf <s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" vhost_time_combined ServerAdmin webmaster@localhost DocumentRoot /var/www/html @@ -136,9 +143,8 @@ EOF mkdir -p /etc/letsencrypt - base_file=/etc/letsencrypt/options-ssl-apache.conf # this is from cerbot, see below. - dd of=$base_file <<'EOF' + cat >$certbot_ssl_conf <<'EOF' # Baseline setting to Include for SSL sites SSLEngine on @@ -164,7 +170,7 @@ LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common EOF upstream=https://github.com/certbot/certbot/raw/master/certbot-apache/certbot_apache/options-ssl-apache.conf - if ! diff -c <(wget -q -O - $upstream) $base_file; then + if ! diff -c <(wget -q -O - $upstream) $certbot_ssl_conf; then cat < # vim: syntax=apache ts=4 sw=4 sts=4 sr noet