2017-02-14 17 views
0

У меня есть веб-сайт, например. domain.net и успешно выполнили установку certbot/letencrypt на моем сервере nginx/centos.Будет ли использование proxy_pass влиять на установку letencrypt?

Домен безопасный и выглядит великолепно. Теперь я добавил блог-призрак на сайт, который я хотел бы зашифровать, например. blog.domain.net.

Этот блог настроен на другую корневую папку, чем на исходном веб-сайте, но на том же сервере. Я использую proxy_pass в: 2000 для настройки субдомена.

Теперь единственное, что я изменился, я добавил

location ~ /.well-known { 
allow all; 
} 

в файл blog.domain.net.conf в моих сайтах-доступных Nginx. Я также попытался добавить это в файл conf.d/domain.net.conf, а также без каких-либо безрезультатно :(

Всякий раз, когда я бегу certbot в соответствии с инструкциями по установке, она выводит эту ошибку.

Failed authorization procedure. blog.domain.net (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://blog.domain.net/.well-known/acme-challenge/FVQmSHuCmeiOObPDOCiD2OFP8Ivvst5n2ZwIZoeXGU8: "<html> 
<head><title>404 Not Found</title></head> 
<body bgcolor="white"> 
<center><h1>404 Not Found</h1></center> 
<hr><center>" 

IMPORTANT NOTES: 
- The following errors were reported by the server: 

    Domain: blog.domain.net 
    Type: unauthorized 
    Detail: Invalid response from 
    http://blog.domain.net/.well-known/acme-challenge/FVQmSHuCmeiOObPDOCiD2OFP8Ivvst5n2ZwIZoeXGU8: 
    "<html> 
    <head><title>404 Not Found</title></head> 
    <body bgcolor="white"> 
    <center><h1>404 Not Found</h1></center> 
    <hr><center>" 

    To fix these errors, please make sure that your domain name was 
    entered correctly and the DNS A record(s) for that domain 
    contain(s) the right IP address. 

Любая помощь очень ценится!

Спасибо

  • EDIT *

Код внутри сайтов-доступных/blog.domain.net.conf

server { 
    listen  80; 
    server_name blog.domain.net www.blog.domain.net; 

    # note that these lines are originally from the "location /" block 
    root /var/www/blog.domain.net/html; 
    index index.php index.html index.htm; 

    location/{ 
     try_files $uri $uri/ =404; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header HOST $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_pass http://127.0.0.1:2000; 
     proxy_redirect off; 
    } 

    error_page 404 /404.html; 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root /usr/share/nginx/html; 
    } 

    location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 
} 

Код внутри conf.d/blog.domain.net.conf

# upstream ghost { 
# server 127.0.0.1:2000; 
# } 

server { 
    listen  80; 
    server_name blog.domain.net; 

    access_log /var/log/nginx/ghost.access.log; 
    error_log /var/log/nginx/ghost.error.log; 

    proxy_buffers 16 64k; 
    proxy_buffer_size 128k; 

    location ~ /.well-known { 
     /var/www/blog.domain.net/html; 
    } 

location/{ 
     proxy_pass http://127.0.0.1:2000; 
     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; 
     proxy_redirect off; 

     proxy_set_header Host   $host; 
     proxy_set_header X-Real-IP  $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto https; 
    } 

} 

ответ

1

Я думаю, что вы работаете Letsencrypt установки с опцией --web-root, если это так, установите корень сети до /var/www/html/ или путь, где размещается HTML-контент; Затем блок

location ~ /.well-known { 
    root /var/www/html; 
} 

это место должно располагаться над всеми другими, как location /, где вы можете указанный proxy_pass вариант, я уже ответил на вопрос letsencrypt here, проверить его с помощью команды установки.

+0

Hi @ сторонаeffect0! Спасибо за помощь! Я пробовал вашу рекомендацию и, к сожалению, это ничего не изменило :( Я опубликовал редактирование на свой вопрос с кодом прокси-прохода в каталоге nginx/sites-available, а также nginx/conf.d directory – user3648969

+0

Первый каталог с поддержкой сайта используется для обработки активной конфигурации nginx, запускает перезагрузку nginx, а также комментирует, как вы запускаете установщик let'sencrypt. –

+0

Это не «доступная сайтам», а папка «sites-available», хотя я предполагаю, что они привязаны/связаны правильно. В любом случае, я побежал sudo nginx -t, и он дает мне «неизвестную директиву» /var/www/blog.domain.net/html «in /etc/nginx/conf.d /blog.domain.net.conf ' – user3648969

 Смежные вопросы

  • Нет связанных вопросов^_^