하위 도메인의 Reactjs 앱 및 laravel 하위 디렉터리가 있는 Nginx용 SSL에 Certbot을 사용할 수 없습니다.

하위 도메인의 Reactjs 앱 및 laravel 하위 디렉터리가 있는 Nginx용 SSL에 Certbot을 사용할 수 없습니다.

1개의 IP에는 도메인이 있고 다른 IP에는 하위 도메인이 있습니다. FE: http://subdomain/ 및 BE: http://subdomain/api에 대한 구성 nginx URL이 있습니다. 하위 도메인을 사용하려면 SSL이 필요합니다.인증서봇, 나는 이것에FE용 리액트 앱그리고BE용 PHP 라라벨모두도커, 그러나 성공하지 못했습니다.

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;
    }
}

그리고 확인을 실행하면nginx용 SSL~에 의해인증서봇:

certbot --nginx -d <subdomain> -m <email> 

다음과 같은 오류가 있습니다.

   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>"

/.well-known/acme-challengenginx에서 블록을 설정하거나 오류가 발생한 allow all;경우allow all; root /certbot/index.html;

   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"

SSL용 nginx를 어떻게 구성할 수 있나요?

지원 주셔서 감사합니다.

답변1

업데이트됨:

나는 그것을 고쳤다. Docker에 nginx와 certbot을 설정하고 443 포트 없이 컨테이너를 실행하기 때문입니다. 맵 443 및 80 포트를 열면 매력적으로 작동합니다.

관련 정보