diff --git a/evoacme/README.md b/evoacme/README.md index ac712ece..9e5b97a3 100644 --- a/evoacme/README.md +++ b/evoacme/README.md @@ -37,13 +37,19 @@ service nginx reload 4 - Create a CSR for a vhost with make-csr ~~~ -# vhostname is vhostfile without .conf ext +# make-csr look for this file : +# /etc/nginx/sites-enabled/vhostname +# /etc/nginx/sites-enabled/vhostname.conf +# /etc/apache2/sites-enabled/vhostname +# /etc/apache2/sites-enabled/vhostname.conf make-csr vhostname ~~~ 8 - Generate the certificate with evoacme ~~~ +# evoacme look for /etc/ssl/requests/vhostname +# vhostname was the same used by make-csr evoacme vhostname ~~~ diff --git a/evoacme/files/make-csr.sh b/evoacme/files/make-csr.sh index 3d485c15..6f46178f 100755 --- a/evoacme/files/make-csr.sh +++ b/evoacme/files/make-csr.sh @@ -1,16 +1,20 @@ #!/bin/bash - source /etc/default/evoacme -vhost=$1 +shopt -s extglob -if [ ! -f /etc/nginx/sites-enabled/$vhost ]; then - if [ ! -f /etc/apache2/sites-enabled/${vhost}.conf ]; then - echo "$vhost doesn't exist !" - exit 1 - fi +vhost=$1 +vhostfiles=$(ls -1 /etc/{nginx,apache2}/sites-enabled/${vhost}?(.conf) 2>/dev/null) + +if [ $(echo "${vhostfiles}"|wc -l) -lt 1 ]; then + echo "$vhost doesn't exist !" + exit 1 fi +for vhostfile in "${vhostfiles}"; do + break; +done + if [ -f $SSL_KEY_DIR/${vhost}.key ]; then read -p "$vhost key already exist, overwrite it ? (y)" -n 1 -r echo "" @@ -26,12 +30,14 @@ chmod 640 $SSL_KEY_DIR/${vhost}.key nb=0 -if [ -f /etc/nginx/sites-enabled/$vhost ]; then - domains=`grep -oE "^( )*[^#]+" /etc/nginx/sites-enabled/$vhost|grep -oE "[^\$]server_name.*;$"|sed 's/server_name//'|tr -d ';'|sed 's/\s\{1,\}//'|sed 's/\s\{1,\}/\n/g'|sort|uniq` +echo $vhostfile |grep -q nginx +if [ $? -eq 0 ]; then + domains=`grep -oE "^( )*[^#]+" $vhostfile |grep -oE "[^\$]server_name.*;$"|sed 's/server_name//'|tr -d ';'|sed 's/\s\{1,\}//'|sed 's/\s\{1,\}/\n/g'|sort|uniq` fi -if [ -f /etc/apache2/sites-enabled/${vhost}.conf ]; then - domains=`grep -oE "^( )*[^#]+" /etc/apache2/sites-enabled/${vhost}.conf|grep -oE "(ServerName|ServerAlias).*"|sed 's/ServerName//'|sed 's/ServerAlias//'|sed 's/\s\{1,\}//'|sort|uniq` +echo $vhostfile |grep -q apache2 +if [ $? -eq 0 ]; then + domains=`grep -oE "^( )*[^#]+" $vhostfile |grep -oE "(ServerName|ServerAlias).*"|sed 's/ServerName//'|sed 's/ServerAlias//'|sed 's/\s\{1,\}//'|sort|uniq` fi valid_domains='' diff --git a/evoacme/tasks/apache.yml b/evoacme/tasks/apache.yml index 0dc0403c..8ee75d26 100644 --- a/evoacme/tasks/apache.yml +++ b/evoacme/tasks/apache.yml @@ -1,3 +1,11 @@ +- name: Create conf dirs + file: + path: "/etc/apache2/{{ item }}" + state: directory + with_items: + - 'conf-available' + - 'conf-enabled' + - name: Copy acme challenge conf template: src: templates/apache.conf.j2