Ich habe eine Domain mit einer IP-Adresse und eine Subdomain mit einer anderen IP-Adresse. Ich habe die Nginx-URL für FE konfiguriert: http://subdomain/ und für BE: http://subdomain/api. Und ich brauche SSL für die Verwendung der SubdomainCertbot, dabei habe ichReact-App für FEUndphp laravel für BEalles inDocker, aber ohne Erfolg.
nginx.conf
server {
listen 8888;
server_name subdomain;
index index.php index.html;
root /var/www;
client_max_body_size 256M;
error_log /var/log/nginx/fe/error.log;
access_log /var/log/nginx/fe/access.log;
## config path for API
location ^~ /api {
error_log /var/log/nginx/api/error.log;
access_log /var/log/nginx/api/access.log;
alias /var/www/api/public;
if (!-e $request_filename) {
rewrite ^ /api/index.php last;
}
location ~ \.php$ {
if (!-f $request_filename) {
return 404;
}
fastcgi_pass api:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
location ~ /.well-known/acme-challenge {
allow all;
default_type "text/plain" ;
alias /var/www/certbot/index.html; <-- #here only static file html with "HelloWorld"
}
## Load staic file for FE
location / {
try_files $uri /index.html;
}
}
Und wenn ich „Verify“ ausführeSSL für NginxvonCertbot:
certbot --nginx -d <subdomain> -m <email>
Ich habe den folgenden Fehler:
Domain: <subdomain>
Type: unauthorized
Detail: Invalid response from
http://<sudomain>/.well-known/acme-challenge/88C3jgQzqOTXDqBbDX_XLZRR0Sw5RGaNUaGyCgedwVs
[IP]: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n
<meta charset=\"UTF-8\">\n <title>HelloWorld</title>\n</head>\n<body>\n\n</body>"
Wenn ich den Block /.well-known/acme-challenge
in nginx nur mit setze allow all;
oder allow all; root /certbot/index.html;
ich habe einen Fehler
Domain: <subdomain>
Type: unauthorized
Detail: Invalid response from
http://<subdomain>/.well-known/acme-challenge/bfp9WEdPO1eb4NPTSPuQCD2jpakgn2-aIUVF62nrwLs
[IP]: "<html>\r\n<head><title>404 Not
Found</title></head>\r\n<body>\r\n<center><h1>404 Not
Found</h1></center>\r\n<hr><center>nginx/1.15.12</c"
Wie kann ich Nginx für SSL konfigurieren?
Danke für die Unterstützung.
Antwort1
AKTUALISIERT:
Ich habe es behoben. Weil ich nginx und certbot in Docker eingestellt und den Container ohne Port 443 ausgeführt habe. Öffnen Sie die Karte 443 und den Port 80, es funktioniert wie am Schnürchen.