Commit Graph

548 Commits

Author SHA1 Message Date
Daniel Reichelt
6e2b1773a3 LE: support alias domains
LE CSRs are triggered for the aliasdomain target domain on

* domain deletion

* domain creation

* domain editing when
  * the aliasdomain target changes (CSR triggered both for old and new
    target)
  * wwwalias is disabled or enabled
  * letsencrypt is disabled or enabled (domain-local)

fixes #1597
2016-05-16 17:35:51 +02:00
Daniel Reichelt
f3e05742b5 LE: change semantics of setting.letsencryptreuseold
Previously setting.letsencryptreuseold determined wheter both a domain's
private key and a CSR should be re-generated.

Preparing support of alias domains in LE certificates, this is changed to
only determine the re-generation of the private key. CSRs now are always
re-generated.
2016-05-16 17:35:51 +02:00
Daniel Reichelt
712aebb864 LE: improve SQL readability 2016-05-16 17:35:51 +02:00
Daniel Reichelt
0ae0178b4c LE: PSR-2 formatting 2016-05-16 17:35:51 +02:00
Michael Kaufmann (d00p)
6369e160b8 fix nscd group cache clearing call; refs #1570
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-05-09 21:33:07 +02:00
Michael Kaufmann (d00p)
5e09d56871 clear nscd group cache after adding a new customer to avoid permission issues of webserver; fixes #1570
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-05-09 08:27:01 +02:00
Michael Kaufmann (d00p)
0e79e8d670 fix default_server parameter for listen-statement in nginx since this changed since ngninx-0.8.21; fixes #1621
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-05-09 08:08:59 +02:00
Michael Kaufmann (d00p)
941a25ec9d avoid possible weird behaviour when resultset changes while running (if possible at all)
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-05-05 08:43:28 +02:00
Michael Kaufmann (d00p)
7c44c5ea75 handle exit of forked backup-cronjob correctly
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-04-29 10:27:19 +02:00
Michael Kaufmann (d00p)
c8bbefb2bb add simple backup-function for customers (testing state)
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-04-29 10:27:18 +02:00
Michael Kaufmann (d00p)
28f0c3eac4 only include acme.conf to vhosts if system has ssl and LE enabled (might not exist if not)
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-04-15 15:09:11 +02:00
Michael Kaufmann (d00p)
84f1d94ad6 check for php-curl installed when cron_letsencrypt runs; format source
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-04-11 08:02:18 +02:00
Daniel Reichelt
576c94f83c fix #1615 2016-04-10 02:59:22 +02:00
eis_os
032a991b8f Simplify master cronjob 2016-03-31 15:02:04 +02:00
Michael Kaufmann (d00p)
579854f5a5 handle the case when gethostbynamel() returns false to act like gethostbyname() in support for multi homed name servers
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-03-11 21:23:26 +01:00
Kay Zumbusch
641ee1f8a6 added check for invalid responses from gethostbynamel
fixed indent
2016-03-09 21:01:47 +01:00
Kay Zumbusch
52448571ea added support for multi homed name servers 2016-03-09 20:40:41 +01:00
Daniel Reichelt
c458ed8b0c cron/LE: fix superfluous CSRs
Depending on the data present, the LE cronscript may cause multiple
entries per domain in domain_ssl_settings.

This is due to $updcert_stmt interfering with the outer loop
while ($certrow = $stmt->fetch()): PDO's DB cursor sees rows newly created
by $updcert_stmt within the loop. As a consequence this also leads to
superfluous CSRs, thus increasing the certificate limit counter on the LE
side.

Solution: manifest the result of @$certificates_stmt@ on the PHP side in
its entirety prior to entering the outer loop.
2016-03-08 08:21:09 +01:00
Andreas Grundler
d3bf80342d use $return['chain'] instead of $return['fullchain'] for ssl_cert_chainfile 2016-03-06 14:10:24 +01:00
Michael Kaufmann (d00p)
f9d949f90c Revert "Merge pull request #318 from Churro/froxlorMerge_33ab67a"
This reverts commit 4f2ee129fd, reversing
changes made to f284d67843.
2016-03-03 23:38:02 +01:00
Michael Kaufmann (d00p)
f6e519d779 Revert "Merge pull request #326 from Churro/froxlorMerge_vhostTemplates"
This reverts commit 319668d384, reversing
changes made to aa592c7369.

Conflicts:
	install/froxlor.sql
	install/updates/froxlor/0.9/update_0.9.inc.php
	lib/version.inc.php
2016-03-03 23:31:19 +01:00
Michael Kaufmann (d00p)
d6f42dc88c make letsencrypt cron log to the customer system-log, it might contain important information
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-03-02 15:20:30 +01:00
Michael Kaufmann (d00p)
573fd69c95 avoid unknown variable if there are no domains in domain-list
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2016-02-28 22:04:57 +01:00
Johannes Feichtner
101e791add Vhost templates: Extended the cron scripts to check for the designated webserver and referential integrity 2016-02-27 20:19:50 +01:00
Michael Kaufmann
4f2ee129fd Merge pull request #318 from Churro/froxlorMerge_33ab67a
Feature: vHost templates (version 2)
2016-02-26 19:16:49 +01:00
Daniel Reichelt
82b43948b4 cron/apache
- fix mixed indentation
- fix trailing whitespace (code+resulting vhost config)
2016-02-22 15:33:02 +01:00
Evi Vanoost
83fd1ab0ca class.lescript.php: OpenSSL requires integer for key size. DB returns string. Cast string to integer
trusty.xml: All files in conf.d get automatically included causing the location to be out of place and nginx fails to start
cron_tasks.inc.http.30.nginx.php: Location directives should be included in a host, nginx doesn't have the concept of global location directives in the way apache does
2016-02-21 18:55:02 -05:00
Johannes Feichtner
abe253bc31 Feature: Vhost templates
Reworked the initial implementation by hpmewes (https://github.com/Froxlor/Froxlor/pull/233) with
- bugfixes all over
- added support for apache and lighttpd also
- added an update sequence (instead of only modifying froxlor.sql)
- added english language variables
- added missing parts in admin_vhostsettings.php
- added parameter replacements as available since PR 244
2016-02-21 14:53:24 +01:00
Michael Kaufmann
d7ca3a0f1c Merge pull request #303 from Churro/froxlorMerge
Nginx: Fix for redundantly inserted auth blocks
2016-02-21 13:09:29 +01:00
Michael Kaufmann
e8489e55a1 Merge pull request #304 from Churro/froxlorMerge_f437f92
Apache 2.4: Add AllowOverride All, otherwise Apache ignores .htaccess files
2016-02-21 08:18:44 +01:00
Michael Kaufmann
5c90c3aa97 Merge pull request #315 from Churro/froxlorMerge_d02a076
Nginx: Set default curve to secp384r1
2016-02-21 08:09:06 +01:00
Michael Kaufmann
b5e739620d Merge pull request #310 from Churro/froxlorMerge_fe8093f
Nginx: Avoid multiple index directives (common pitfall)
2016-02-21 08:07:58 +01:00
Johannes Feichtner
a328a95c01 Set default curve to secp384r1 2016-02-21 01:23:18 +01:00
Johannes Feichtner
c27589e8c2 Set correct error log levels (LOG_ERR instead of LOG_ERROR) 2016-02-20 20:57:31 +01:00
Johannes Feichtner
1ace011ad2 Nginx: Avoid multiple index directives (common pitfall) 2016-02-20 20:40:38 +01:00
Johannes Feichtner
a641dfbfc8 Security-critical fix: Nginx directory protection did not prevent access to
PHP scripts

Although the implemented direction protection posed a prompt when
accessing the http://...com/protectedir/
it was still possible to call http://...com/protectedir/script.php

This vulnerability emerges from the precedence order of "location"
statements. The RegEx matching the PHP script is triggered before the
directory protection is evaluated. As a result, the PHP script is
interpreted and path parsing stops due to the circumflex (see
http://nginx.org/en/docs/http/ngx_http_core_module.html#location).

The fix involves adding a PHP parsing snippet to every protected
block. In order to prevent PHP-related config params repeatedly, the
required section is referenced using a prefix.
2016-02-20 19:25:49 +01:00
Johannes Feichtner
268b188133 Apache 2.4: Add AllowOVerride All, otherwise Apache ignores .htaccess
files
2016-02-20 17:59:34 +01:00
Johannes Feichtner
4692d7ef2a Nginx: Changed inefficient RegEx redirect to equivalent 301 2016-02-20 17:30:26 +01:00
Johannes Feichtner
3b9201fb91 Nginx: Fix for redundantly inserted auth blocks
The problem occurs if a Vhost is assigned multiple different auth names
in Froxlor. Each block is then added repeatedly, leading to an
unparseable configuration
2016-02-20 17:21:54 +01:00
Florian Aders
dabd4a4a4e Merge pull request #298 from nachtgeist/logging
Logging
2016-02-19 20:46:22 +01:00
Daniel Reichelt
6ac274a706 cron/apache: use correct constant for loglevel 2016-02-19 20:32:03 +01:00
Florian Aders
e621e02f92 Allow selecting new keysize, fixes #1594
Prepare database and cron for HSTS, refs #1593
Added option to re-use key and CSR for Let's Encrypt

Signed-off-by: Florian Aders <eleras@froxlor.org>
2016-02-19 17:35:44 +01:00
Daniel Reichelt
185178a91e LE: whitespace fixes
- fix mixed indentations
- remove trailing whitespace
2016-02-19 14:44:22 +01:00
Florian Aders
c828e3b0d9 Fixed comment :P
Signed-off-by: Florian Aders <eleras@froxlor.org>
2016-02-18 22:40:31 +01:00
Florian Aders
45c081990a We don't need to check for the documentroot anymore
Signed-off-by: Florian Aders <eleras@froxlor.org>
2016-02-18 22:26:44 +01:00
Florian Aders
9f54e60056 Answer all Let's Encrypt challenges via alias to a directory in Froxlor itself, enables us to answer challenges before the vhost is set, thx PrfDrDrStullenBr for the idea \(vhost - configs for most distributions untested\)
Signed-off-by: Florian Aders <eleras@froxlor.org>
2016-02-18 21:43:44 +01:00
Florian Aders
b002d687c0 Fixed typo
Signed-off-by: Florian Aders <eleras@froxlor.org>
2016-02-18 14:56:18 +01:00
Florian Aders
ef3ab72082 Explain more stuff in the logmessages
Signed-off-by: Florian Aders <eleras@froxlor.org>
2016-02-17 15:50:09 +01:00
Stefan Heid
c229c11bdf Edited warning for letsencrypt to show domain instead of ssl_redirect 2016-02-17 12:07:19 +01:00
Michael Kaufmann (d00p)
7b29d43c66 Merge branch 'logging' of https://github.com/nachtgeist/Froxlor into nachtgeist-logging 2016-02-17 08:41:17 +01:00