как добавить поддомен в letsencrypt? Я использую docker, nginx, WordPress - PullRequest
0 голосов
/ 25 марта 2020

Я только что добавил один поддомен и попытался расширить свой существующий сертификат. Но при обновлении сертификата произошла ошибка. Я уже добавил свой поддомен в записи DNS. Я пробовал и CNAME, и A, но ни одна из них не работает. мне нужно попробовать AAAA ???

certbot | Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log

certbot | Выбранные плагины: Authenticator web root, Установщик отсутствует

certbot | Продление действующего сертификата

certbot | Выполнение следующих задач:

certbot | http-01 вызов для edu.mrtrobotics.com

certbot | Использование сети root path / var / www/html для всех несопоставленных доменов.

certbot | В ожидании подтверждения ...

certbot | Ошибка вызова для домена edu.mrtrobotics.com

certbot | http-01 вызов для edu.mrtrobotics.com

certbot | Устранение проблем

certbot | Некоторые проблемы не удалось.

certbot | ВАЖНЫЕ ЗАМЕЧАНИЯ:

certbot | - Сервер сообщил о следующих ошибках:

certbot |

certbot | Домен: edu.mrtrobotics.com

certbot | Тип: несанкционированный

certbot | Подробно: Неверный ответ от

certbot | https://www.mrtrobotics.com/content-18/ [149.28.180.33]: "

certbot | html> \ n \ n \ n

certbot | charset = \" UTF-8 \ "> \ ncontent - MRT Робототехника | Кодирование,

certbot | Робототехника и STEM Edu "

certbot |

certbot | Чтобы исправить эти ошибки, убедитесь, что ваше доменное имя было

certbot | введен правильно и записи DNS A / AAAA для этого домена

certbot | содержат правильный IP-адрес.

nginx .conf

server {
    listen 80;
    listen [::]:80;

    server_name mrtrobotics.com www.mrtrobotics.com;

    location ~ /.well-known/acme-challenge {
        allow all;
        root /var/www/html;
    }

    location / {
        rewrite ^ https://$host$request_uri? permanent;
    }
}

server {
    listen 80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name edu.mrtrobotics.com;

    ssl_certificate /etc/letsencrypt/live/mrtrobotics.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mrtrobotics.com/privkey.pem;

    include /etc/nginx/conf.d/options-ssl-nginx.conf;

    location / {
        proxy_pass https://127.0.0.1/edu$request_uri;
        proxy_set_header Host mrtrobotics.com;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mrtrobotics.com www.mrtrobotics.com;

    index index.php index.html index.htm;

    root /var/www/html;

    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/mrtrobotics.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mrtrobotics.com/privkey.pem;

    include /etc/nginx/conf.d/options-ssl-nginx.conf;

    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
    # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    # enable strict transport security only if you understand the implications

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location ~ /\.ht {
        deny all;
    }

    location = /favicon.ico {
        log_not_found off; access_log off;
    }
    location = /robots.txt {
        log_not_found off; access_log off; allow all;
    }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
}

# Set client upload size - 100Mbyte
client_max_body_size 100M;

# to avoid 504 time out error - defalut is 60s
proxy_send_timeout 180s;
proxy_read_timeout 180s;
fastcgi_send_timeout 180s;
fastcgi_read_timeout 180s;

docker -compose.yml

version: '3'

services:
  db:
    image: mysql:8.0
    container_name: db
    restart: unless-stopped
    env_file: .env
    environment:
      - MYSQL_DATABASE=wordpress
    volumes:
      - ./db-data:/var/lib/mysql
    command: '--default-authentication-plugin=mysql_native_password'
    networks:
      - app-network

  wordpress:
    depends_on:
      - db
    image: wordpress:5.1.1-fpm-alpine
    container_name: wordpress
    restart: unless-stopped
    env_file: .env
    environment:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=$MYSQL_USER
      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD
      - WORDPRESS_DB_NAME=wordpress
    volumes:
      - ./wordpress/:/var/www/html
      - ./wordpress/php.ini:/usr/local/etc/php/conf.d/uploads.ini
    networks:
      - app-network

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin:latest
    restart: unless-stopped
    ports:
      - '8080:80'
    env_file: .env
    environment:
      - PMA_HOST=db
      - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
    volumes:
    - ./wordpress/php.ini:/usr/local/etc/php/php.ini
    networks:
      - app-network

  webserver:
    depends_on:
      - wordpress
    image: nginx:1.15.12-alpine
    container_name: webserver
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./wordpress:/var/www/html
      - ./nginx-conf:/etc/nginx/conf.d
      - ./certbot-etc:/etc/letsencrypt
    networks:
      - app-network

  certbot:
    depends_on:
      - webserver
    image: certbot/certbot
    container_name: certbot
    volumes:
      - ./certbot-etc:/etc/letsencrypt
      - ./wordpress:/var/www/html
    command: certonly --webroot --webroot-path=/var/www/html --email elearning@wemakerobot.com --agree-tos --no-eff-email **--expand** -d mrtrobotics.com -d www.mrtrobotics.com **-d edu.mrtrobotics.com**

volumes:
  certbot-etc:
  wordpress:
  db-data:

networks:
  app-network:
    driver: bridge
...