#nginx #dockerfile #lets-encrypt
Вопрос:
Я добавляю SSL-сертификат с Letsencrypt на свой веб-сайт. Итак, я использую Dockerfile для сборки nginx и установки в него certbot. Но во время сборки я столкнулся с проблемой при выполнении этой команды sudo certbot certonly --webroot --webroot-path=/user/share/nginx/html -d mydomain.com -d www.mydomain.com
. Это всегда выдает ошибку типа Invalid response from http:// www.mydomain.com/.well-known/acme-challenge/Bc22IaBafBrDwKrk-46qVV8UPlPwFUQz5MvZkngcPmA
.
Это мой конфигурационный файл nginx:
server {
listen 80;
client_max_body_size 100M;
server_name mydomain.com www.mydomain.com;
location ~ /.well-known {
allow all;
}
}
server {
listen 443;
server_name mydomain.com www.mydomain.com;
ssl on;
# Use certificate and key provided by Let's Encrypt:
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH AESGCM:EDH AESGCM:AES256 EECDH:AES256 EDH';
location ~ /.well-known {
allow all;
}
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
root /usr/share/nginx/html;
expires 3d;
add_header Cache-Control "public";
access_log off;
}
location / {
root /usr/share/nginx/html;
expires 0;
index index.html index.htm;
try_files $uri /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
location /ping {
return 200 'PONG';
}
location /api/ {
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 $scheme;
# Out-of-the-box, nginx doesn't support environment variables inside most configuration blocks
proxy_set_header Host $http_host;
proxy_pass mybackend.ip;
}
}
Как я могу решить эту проблему? Буду признателен за любые предложения для меня. Большое спасибо.