CERTBOT - http challenge: Difference between revisions
From Wiki.IT-Arts.net
imported>Z No edit summary |
imported>Z No edit summary |
||
Line 5: | Line 5: | ||
<nowiki> | <nowiki> | ||
certbot certonly --dry-run --webroot -w /var/www/acme-challenge -d example.org</nowiki> | certbot certonly --dry-run --webroot -w /var/www/acme-challenge -d example.org</nowiki> | ||
= Vhost = | = Vhost = | ||
<nowiki> | |||
server { | |||
listen W.X.Y.Z:80; | |||
server_name _; | |||
# Let's encrypt snippet | |||
include /etc/nginx/snippets/letsencrypt.conf; | |||
root /var/www/acme-challenge; | |||
index index.html; | |||
location / { | |||
return 301 https://$server_name$request_uri; | |||
} | |||
}</nowiki> | |||
Line 13: | Line 33: | ||
<nowiki> | <nowiki> | ||
############################################################################# | ############################################################################# | ||
# /etc/nginx/snippets/letsencrypt.conf | |||
# | |||
# Configuration file for Let's Encrypt ACME Challenge location | # Configuration file for Let's Encrypt ACME Challenge location | ||
# This file is already included in listen_xxx.conf files. | # This file is already included in listen_xxx.conf files. |
Revision as of 19:52, 13 April 2020
Command
certbot certonly --dry-run --webroot -w /var/www/acme-challenge -d example.org
Vhost
server { listen W.X.Y.Z:80; server_name _; # Let's encrypt snippet include /etc/nginx/snippets/letsencrypt.conf; root /var/www/acme-challenge; index index.html; location / { return 301 https://$server_name$request_uri; } }
Snippet
############################################################################# # /etc/nginx/snippets/letsencrypt.conf # # Configuration file for Let's Encrypt ACME Challenge location # This file is already included in listen_xxx.conf files. # Do NOT include it separately! ############################################################################# # # This config enables to access /.well-known/acme-challenge/xxxxxxxxxxx # on all our sites (HTTP), including all subdomains. # This is required by ACME Challenge (webroot authentication). # You can check that this location is working by placing ping.txt here: # /var/www/letsencrypt/.well-known/acme-challenge/ping.txt # And pointing your browser to: # http://xxx.domain.tld/.well-known/acme-challenge/ping.txt # # Sources: # https://community.letsencrypt.org/t/howto-easy-cert-generation-and-renewal-with-nginx/3491 # ############################################################################# # Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx) # We use ^~ here, so that we don't check other regexes (for speed-up). We actually MUST cancel # other regex checks, because in our other config files have regex rule that denies access to files with dotted names. location ^~ /.well-known/acme-challenge/ { # Set correct content type. According to this: # https://community.letsencrypt.org/t/using-the-webroot-domain-verification-method/1445/29 # Current specification requires "text/plain" or no content header at all. # It seems that "text/plain" is a safe option. default_type "text/plain"; # This directory must be the same as in /etc/letsencrypt/cli.ini # as "webroot-path" parameter. Also don't forget to set "authenticator" parameter # there to "webroot". # Do NOT use alias, use root! Target directory is located here: # /var/www/common/letsencrypt/.well-known/acme-challenge/ root /var/www/letsencrypt; } # Hide /acme-challenge subdirectory and return 404 on all requests. # It is somewhat more secure than letting Nginx return 403. # Ending slash is important! location = /.well-known/acme-challenge/ { return 404; }
Source