Skip to content

Commit

Permalink
Avoid permissions errors for chown .well-known
Browse files Browse the repository at this point in the history
When acme.sh is run as a non-root user different from the owner of the
webroot directory it is unable to change the owner of the files in
.well-known to that user, causing permissions errors.  Avoid this by
making the files world-readable.

These files should pose no disclosure risk since they are sent in
cleartext during the HTTP Identifier Validation Challenge[1] and may
already be exposed by directory enumeration, depending on server
settings.  AFAIK they should be safe to expose as world-readable in all
cases.

1.  https://ietf-wg-acme.github.io/acme/#rfc.section.7.2

Fixes #32
Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
  • Loading branch information
kevinoid committed Nov 30, 2024
1 parent fca53a0 commit 22dfedf
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions acme.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5002,9 +5002,11 @@ $_authorizations_map"

_debug "Writing token: $token to $wellknown_path/$token"

mkdir -p "$wellknown_path"

if ! printf "%s" "$keyauthorization" >"$wellknown_path/$token"; then
# Ensure .well-known is visible to web server user/group
# https://github.com/Neilpang/acme.sh/pull/32
if ! (umask ugo+rx &&
mkdir -p "$wellknown_path" &&
printf "%s" "$keyauthorization" >"$wellknown_path/$token"); then
_err "$d: Cannot write token to file: $wellknown_path/$token"
_clearupwebbroot "$_currentRoot" "$removelevel" "$token"
_clearup
Expand Down

0 comments on commit 22dfedf

Please sign in to comment.